1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-13 15:17:42 +02:00

379 Commits

Author SHA1 Message Date
David Bailes
74ca312067 updated TrackPanel::OnTrackMoveUp etc so that MoveTrack is only called when track can be moved, and so history is correct 2015-04-24 16:19:29 +01:00
David Bailes
593197c2db add commands for moving focused track up, down, to top, and to bottom 2015-04-24 16:19:28 +01:00
Leland Lucius
ed79e13fbf Merge pull request from DanWin/performance
Performance improvements
2015-04-24 07:52:38 -05:00
David Bailes
0b2d5729c5 added two commands to move to first or last track 2015-04-24 11:38:55 +01:00
James Crook
593cc6ee5e Bug 855 - Data loss sample editing (Do/Undo)
I've added code that now treats sample editing as another kind of mouse capturing activity (IsAdjustingSample).  We will now not undo or redo whilst mouse is captured.  Does not depend on what key binding is used for redo/undo.
2015-04-24 09:55:03 +01:00
Daniel Winzen
92d522132e Variable cleanup 2015-04-23 18:30:38 +02:00
Daniel Winzen
759ff8cd0d Performance improvements 2015-04-23 16:07:25 +02:00
Paul-Licameli
1c919c1d4d Scrubbing may not start during recording. You must Stop recording first. 2015-04-21 20:48:29 -04:00
Paul-Licameli
10e35bb6bb Add user interface for scrubbing and Experimental.h switches
EXPERIMENTAL_SCRUBBING_BASIC enables middle-click-drag to scrub, or to seek
when shift is down.

EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL adds middle-double-click-drag to
scrub or (with SHIFT down) to seek while keeping the playhead at the midline
of the track display.

EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL allows control wheel to vary the speed
limit, while scrubbing (not seeking).

All three are enabled in this commit.

Also notice the changes to status bar messages and the Mouse Preferences dialog.

Scrubbing works only in Select and Multi tools.
2015-04-17 14:09:35 -04:00
Steve Daulton
702d9d75e5 Timeline Quick Play bug fixes and enhancements 2015-04-17 17:52:13 +01:00
Paul-Licameli
2b85d0edb4 Preliminary function argument list changes and comments, for scrubbing project
In particular, use an options structure for AudioIO::StartStream to simplify
calls

ControlToolBar::PlayPlayRegion also takes that structure as an argument, and a
SelectedRegion instead of two times

And other changes
2015-04-17 02:25:39 -04:00
Paul-Licameli
21fd4ab374 Remove the unsuccessful scrubbing experiment of 2.0.6. 2015-04-17 02:25:26 -04:00
david avery
0319f6ea51 merging wx3 changes 2015-04-12 23:52:32 -06:00
Paul-Licameli
69729c2960 ESC key aborts selection drag, restores time, frequency selection, selected tracks 2015-04-12 12:39:11 -04:00
Paul-Licameli
db1cb406e0 ESC key aborts resizing of mono track, stereo track, or channels of stereo track
Resizing may un-minimize a track; I was careful to be sure ESC restores
minimized state too and then that un-minimizing restores correct height
2015-04-11 23:53:34 -04:00
Paul-Licameli
82fe9a162c Refresh display after ESC aborts a drag, as James suggested.
Otherwise zoom lines did not disappear if you hit ESC while the cursor is
outside the main window.
2015-04-09 22:26:34 -04:00
James Crook
f80db283b5 Use ReleaseMouse not ReleaseCapture
Change made to fix broken build under Linux.
2015-04-09 23:43:28 +01:00
Paul-Licameli
903fcb1fc2 ESC key can abort certain dragging actions
For now, let it abort vertical scale zoom
(any mouse button in any tool, in the vertical ruler)
and horizontal zoom
(any mouse button in the zoom tool or right mouse button in the multi tool,
in the wave display)

Should any other drags be escapable too?
Time shifting?  That would need some more work to restore initial state.
2015-04-09 15:50:04 -04:00
Chris Diamand
01c346fe91 Don't capture the mouse if it's already captured.
Otherwise the following assertion gets triggered:
../src/common/wincmn.cpp(3271): assert "!wxMouseCapture::IsInCaptureStack(this)" failed in CaptureMouse(): Recapturing the mouse in the same window?

Based on the fix provided for an identical assertion triggered elsewhere,
described here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765779
2015-04-08 22:52:24 +01:00
Leland Lucius
2457579091 Bug 765 - Delays using Edit commands and Draw Tool in long projects
A 4hr track used to take about 20s to cut a few samples. This is now significantly improved, to around 3s. Leland did this by

(a) moving the size calculation to when we examine the undo history, so it isn't slowing down the edits.
(b) in size calculation, using sizes that are cached rather than going to disk to find the sizes.
(c) writing the autosave file which is to an FFIle to a string first, i.e. using XMLStringWriter as a buffer for XMLFileWriter.

Step (c) may also make autosave marginally safer, as the risk of a partially updated autosave file is reduced.
2015-04-07 12:20:50 +01:00
lllucius
7aa81bc34d Attempt to correct the size of the Set Rate dialog 2015-01-03 10:36:42 +00:00
lllucius
f5f3c5135f Make sure display refreshes after audio I/O stops
What looked simple in r13811 was not so simple apparently.
(We REALLY need a gAudioIO->IsCapturing())
2014-12-29 22:28:32 +00:00
lllucius
c305724561 Fix for bug
This was my bad.  I'd reset the number of capture channels
in AudioIO when the stream was stopped.  Unfortunately, two
methods depended on it being valid AFTER the stream had
stopped.

Those methods, TrackPanel::OnTimer and AudacityProjecT::OnCloseWindow,
were using it as an indicator if recording had been taking place
before they stopped the stream.  They then flushed the tracks, pushed
the state onto the undo stack and did some other post-recording tasks.

Turns out that the tracks are already flushed as part of the normal
AudioIO::StopStream processing, so that was redundant.

And, instead of duplicating the process, I've relocated most of each
methods processing to AudacityProject::OnAudioIOStopRecording.
2014-12-28 08:53:57 +00:00
lllucius
2c6401b564 Committing Paul's spectral nagivation commands patch
From:

http://audacity.238276.n2.nabble.com/Patch-spectral-peak-snapping-navigation-commands-td7565648.html
2014-12-22 08:03:41 +00:00
lllucius@gmail.com
db5118255b Fix for bug
See bug for more info
2014-12-14 16:01:21 +00:00
lllucius@gmail.com
bfb1284573 Fix for unwanted cursor persistence outside of project window
This seems to only happen on the Mac and has to do with
how wx2.8.12 handles cursor setting.
2014-12-12 21:56:49 +00:00
lllucius@gmail.com
d1a1c7877d Fix for bug #s 602 and 603.
When undoing not only should the capture state be checked to
see if it safe to undo, but the captured track should be
checked as well since some activities only set the captured
track and not the state.
2014-12-06 12:28:10 +00:00
lllucius
d10d2bdedc Fix for bug
The problem was that the mouse capture was not being reset
when the pointer left the track panel.  In that case, as
long as no buttons are down, the capture state needs to be
reset so that when the mouse re-enters the track panel it
figures out what is going on from a clean slate.
2014-12-06 10:15:18 +00:00
james.k.crook@gmail.com
c71397beae Changes to seeking and scrubbing from Paul Licameli.
These are mostly under an EXPERIMENTAL_ #ifdef.  Also has a change for the prompt string for preferences so the displayed keybinding is adjusted when in multitool mode.
2014-11-29 22:09:57 +00:00
james.k.crook@gmail.com
30500b2e85 Fix for http://bugzilla.audacityteam.org/show_bug.cgi?id=792 "Right end of selection cannot be adjusted with a mouse when left end is behind zero" by Paul Licameli. 2014-11-29 17:10:56 +00:00
james.k.crook@gmail.com
2131568876 Spectral Selection Toggle (using q key) by Paul Licameli. 2014-11-29 16:53:28 +00:00
martynshaw99
bc6583b62d Paul L's patch to remove the 'PlaybackCursor' that he introduced, along with a ststus bar message about it. Also fixes L/R cursors with a point selection. 2014-11-25 23:37:40 +00:00
stevethefiddle@gmail.com
7c3f355c7a Fix for bug 791. 2014-11-24 18:03:33 +00:00
lllucius
ad92e8c4bf One more round of effects changes.
The big thing is the common efffects UI.  Right now Ladspa and VST
have been converted to use it and Audiounits will be next.  It makes
everything nice and consistent while reducing the clutter in the
dialog.

Other goodies are:

Ladspa effects now show output controls when supplied by the effect
Ladspa effects now work fine as Analyze type effects
Ladspa now has user presets
VST effects dialog is now less cluttered...leaving more room for the effect
Ladspa and VST effects now share a common UI
Ladspa and VST effects are now usable in chains
Ladspa and VST effects now handle user presets the same way
Currently active effects settings automatically saved and reloaded
Can now do numeric range checking on input fields.

And, as always, plenty of critter squashing.
2014-11-14 03:03:17 +00:00
james.k.crook@gmail.com
1933070f0d Tweak to spectral selection behavior when one edge is tied.
Idea by Martin.  Implemtation by Paul Licameli.
2014-11-11 15:24:22 +00:00
james.k.crook@gmail.com
8a9987a0d9 From: martin@steghoefer.eu [PATCHES 02-15 of 15] Fix runtime problem with wxWidgets 3.0:
Correct string formatting for:
2/15  %d + enum => %d + int
3/15  %lld + int64_t => %lld + long long
4/15  %d + int64_t => %lld + long long
5/15  %d + double => %f + double
6/15  %d + int32_t => %d + int
7/15  %d + intptr_t => %p + void*
8/15  gint, guint
9/15  %d + long => %ld + long
10/15 %n + int => %d + int
11/15 %x + int => %x + unsigned int
12/15 %f + int => %d + int
13/15 %S + wxChar* => %s + wxChar*
14/15 %d + size_t => %d + int
15/15 %d + size_t => %lld + long long

"The functions wxString::Format, wxString::Printf (and others indirectly) have become stricter about parameter types that don't match (format specifier vs. function parameters). So the bugs (that were already present in audacity before) become visible in wx3.0 as error message dialogs. I've checked all occurrences of Printf, wxPrintf, PrintfV, Format, FormatV, wxLogDebug and wxLogError systematically and made the type match."

Note (9/15): In TrackPanel.cpp, ExportMP2.cpp and CompareAudioCommand.cpp this patch supersedes related change done in r13466 because the new solution requires fewer casts and therefore simplifies the code.

Note: Many .po files are affected, and we need to be very careful about this.  Incorrect "%d" and similar in translation files may lead to crashes in those languages (only).  This is something we should actually have been more careful about in the past.  We need to write a script to check that the "%d" and similar format specifiers match between English and translation.
2014-11-08 16:42:34 +00:00
james.k.crook@gmail.com
67d2b274e2 Frequency Selection toolbar from Paul Licameli.
Linux/Mac will need new files adding to project, SpectralSelectionBar.cpp, NumericTextCtrl.cpp.
2014-11-08 15:18:43 +00:00
james.k.crook@gmail.com
6112a2a8c1 Spectral selection cursor and mode selection changes from Paul Licameli.
This also now shows a new green 'play cursor' when ctrl is held down on wave track, and shift being held down is signalled by a cursor change to finger-pointer too.

I also accidentally enabled EXPERIMENTAL_MIDI_OUT.  We may disable that in December for release.  Leaving it in for now.
2014-11-08 14:30:19 +00:00
james.k.crook@gmail.com
f26746a5a2 Removed prompt about ESC being a toggle.
(a) Paul would like to indicate how to toggle the mode some other way.  (b) You only see the prompt if you are already in this mode.  (c) We may no longer use ESC in the future.
2014-11-02 21:57:14 +00:00
james.k.crook@gmail.com
e9ba00ff6d New behaviour for shift when moving mouse reinstated.
This addition was lost by me in a change I made to Paul's code.
2014-10-26 13:35:17 +00:00
james.k.crook@gmail.com
31fa2be749 Clean up of some spectral selection code making it shorter, clearer and easier to check.
Also added non-shift behaviour for shift and drag center line, that previously asserted.
2014-10-26 10:11:35 +00:00
james.k.crook@gmail.com
290a0107c9 Patch from Paul Licameli Improving Spectral Selection
ESC Key toggles snapping of center frequency to peaks (no visual indication of snap to yet)
Description added to mouse prefs - fix later.

Shift now required to keep top/bottom frequency pinned whilst (re)dragging the other one.

Code for status bar messages simplified and made more consistent, and no longer hard codes assumption that preferences is Ctrl-P when prompting user about it.
2014-10-25 22:05:45 +00:00
lllucius@gmail.com
1b993ccd08 Patch provided by Rob (RPM) to resolve many of the wx3 format string assertions
He wanted to help so I asked if he wanted to track them down.  He agreed and
found more than I probably would have.  And he said there were more, but the
rest were questionable and since he works on Windows, wasn't able to actually
test.

I give a few of the ones he did find a go and they do indeed get rid of the
assertions.

(Basically, a 64-bit/32-bit issue, easily resolved with a typecast.)
2014-10-19 03:08:10 +00:00
lllucius@gmail.com
97639c4620 Get rid of build OSX build errors:
/Users/yam/tl/audacity/mac/../src/TrackPanel.cpp:1746: error: '<anonymous enum>' is/uses anonymous type
/Users/yam/tl/audacity/mac/../src/TrackPanel.cpp:1746: error:   trying to instantiate 'template<class A, class B, class DIST> bool within(A, B, DIST)'
2014-10-19 02:46:44 +00:00
james.k.crook@gmail.com
a6f9f6bc58 Spectral Editing: Using subroutines to shorten code, and more comments in the code. 2014-10-18 16:01:50 +00:00
james.k.crook@gmail.com
37608c2290 Paul Licameli's Spectral Editing Patch.
This relies on three new nyquist scripts to actually do the editing.  The peak-snapping code in FrequencyWindow has been extracted into a new class, SpectrumAnalyst, to provide peak-snapping in spectrogram too.
2014-10-18 14:19:38 +00:00
lllucius
c512822138 Additional changes for wx3
These are mostly for getting it to build on Linux, but I've
also created new configs in Visual Studio to make it easier
to switch between wx2 and wx3.

For Linux, you have to tell configure where to find the wx3
version of the wx-config script and, since some distros build
wxWidgets v3 against GTK+ v3, you may also need to enable
gtk3 with something like:

./configure --enable-gtk3 WX_CONFIG=/usr/bin/wx-config-3.0

On Windows, I've added "wx3-Debug" and "wx3-Release" to the
existing "Debug" and "Release" configurations.

They depend on you having your WXWIN environment variable
pointing to your wx2 directory and a new WXWIN3 environment
variable pointing to your wx3 directory.  For instance, I
have:

WXWIN=C:\Users\yam\Documents\wxWidgets-2.8.13
WXWIN3=C:\Users\yam\Documents\wxWidgets-3.0.2

Doing this allows you to switch freely among the 4 configurations
without having to get out of Visual Studio and monkey around with
the environment.

The project files will also add the location of the wxWidgets DLLs
to the PATH when running Audacity from within Visual Studio.  They
add %WXWIN%\lib\vc_dll or %WXWIN3%\lib\vc_dll at the beginning
of the PATH variable as appropriate.

I expect that once we convert to wx3 we'll just drop back down to
the normal Debug and Release configurations, but this should make
switching between wx2 and wx3 much easier during the transition.
2014-10-16 16:18:04 +00:00
lllucius
bdcefb4850 Preliminary changes for wxWidgets 3.0.1
We can't go to 3.0.1 yet as there are still build issues on
Linux and OSX.  You can get Windows to build, but there's
still some display issues.

These changes should work with wxWidgets 2.8.12 as well, so
we can take our time to get things working properly before
switching over.
2014-10-06 08:10:50 +00:00
james.k.crook@gmail.com
f5e593cc4c Paul L's new SelectedRegion class replacing use of t0 and t1. Also LabelTrack.h no longer in TrackPanel.h includes.
This change is believed to be a direct refactoring that does not change functionality.  It paves the way for more complex kinds of selection, such as selections involving frequency as well as time.  It also reduces risk of left and right edges being swapped in future code using SelectedRegion, as the default is to swap on assignment if needed.
2014-10-05 17:10:09 +00:00
james.k.crook@gmail.com
2dc9325133 Two more unneeded 'SetPlay()'s commented out for consistency. 2014-08-17 13:06:54 +00:00