1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-29 14:48:39 +02:00

247 Commits

Author SHA1 Message Date
Paul Licameli
e60057fd85 Bug924, addendum: pause scrubbing when Audacity loses focus...
... And it resumes if Audacity regains focus.

Actually this fix causes pausing and resuming depending on whether Track Panel
has focus, so clicks in other parts of the Audacity window may also pause the
scrubbing.  I hope that is acceptable.
2015-05-27 20:14:32 -04:00
Paul Licameli
f07a487e47 Bug977: Enable new scrolling limits as a Tracks preference, default off. 2015-05-27 18:47:03 -04:00
Paul Licameli
41abedf09c Bug972, again: Recording into empty project aligns time 0 with left edge.
Also has this effect:  Generate sound, scroll left, then delete the (sole)
track.  Create new track from menu.  Formerly, the track did not align 0
to left edge.  Now it does.
2015-05-26 20:23:18 -04:00
Paul Licameli
e9830e727b Disable scrollwheel when there are no tracks. (Used to change the time ruler.) 2015-05-26 11:28:35 -04:00
Paul Licameli
4ee482dbd9 Bug973: don't use transcription toolbar setting in scrubbing 2015-05-25 10:12:38 -04:00
Paul Licameli
4b76db56b7 Bug972, partial fix: recording in new project, record head begins at left edge 2015-05-25 10:06:05 -04:00
Leland Lucius
8f77334286 Fix for bug #949
This removes the TrackInfo's slider "cache".

Originally, the cache would build to the maximum number of tracks you
had created in an Audacity session.  So, if you created 128 tracks
and then reduced that to 1, you'd still have 256 sliders, 1 gain and
1 pan per track.

But, the only real thing the cache did was prevent continuous allocations
of sliders since the allocated sliders position and values wer still
being updated nearly with ever interaction since they were redrawn each
time.

In April 2010, the slider cache was changed to reduce its size by
creating a sort of ring buffer based on how many tracks were displayed
and how many tracks were in the project (I guess).  Unfortunately, it
didn't really handle large number of tracks and this bug was born.

While trying to find the proper fix for this, I realized that the
cache really wasn't saving anything.  Maybe a little when dragging
the thumb, but during normal track redraws and interaction, it really
didn't serve a purpose, other than use additional memory.

So, I've removed the cache and have allocated a single gain and a
single pan slider.  As before, their position and value are changed
as needed when drawn and manipulated.
2015-05-24 22:54:10 -05:00
Paul Licameli
3c88f8ce4d Bugs 925, 926, 928 fixed again, better, for double click and shift too 2015-05-24 17:31:00 -04:00
Paul Licameli
5c62b80bc4 Defined EXPERIMENTAL_SCROLLING LIMITS
When it is enabled, the project can scroll up to one-half of a screenful
beyond time zero or the maximum track time.  I was careful to disable selection
of negative times.

This is motivated by the smooth scrolling scrub.  It behaves more sensibly at
the extremes.  It can still keep the play indicator centered.

Also removed an unused member of ViewInfo.
2015-05-24 13:38:54 -04:00
Paul Licameli
51fc1c96db Bugs 961, 962 fixed
Bug 961 - Play cursor broken after double-click scrub play

Bug 962 - Scrubbing gesture during recording places Audacity in scrubbing mode
when recording stops
2015-05-23 23:22:38 -04:00
Paul Licameli
2ce350dd20 Bug928, and probably Bug925, when trying to scrub left of time zero 2015-05-19 21:45:19 -04:00
Paul Licameli
51930f0cdd Bug926 -- do not scrub past right end of tracks 2015-05-19 21:13:36 -04:00
Paul Licameli
35ac843baf Scrub with ctrl-left clicks, not middle drags; also fix bug 937
Bug 937 was a consequence of mouse capture for drag, which no longer happens.

Scrubbing starts with ctrl- (or cmd-) left- (double-) click, after which mouse
movement and shift key and scroll wheel (undepressed) govern scrubbing.  No
buttons need be held.  Another ctrl/cmd-left click can stop scrubbing, and so
can SPACE or Stop button or other commands that stop normal playback.
2015-05-19 12:03:04 -05:00
David Bailes
f458df1c7b Changes to a number of dialogs so that the NVDA screen reader can read the titles. Missed these in my last patch. The accessibility name of the dialog is set to the title. 2015-05-18 13:57:05 +01:00
James Crook
b51d3b2055 Fix Red and Green in Scrubbing
We have a policy in how we use red and green in the UI, so these colors in scrubbing were changed to 'orange' and 'lime'.
2015-05-17 09:47:38 +01:00
Leland Lucius
ffc41f0f10 Fix bug #898 2015-05-16 04:55:34 -05:00
Steve Daulton
b9dd3e64c6 Fixes for bug 844 2015-05-15 21:17:24 +01:00
Steve Daulton
423bc8ac4d Fix for bug 851
Fix for bug 851
2015-04-30 00:34:32 +01:00
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 #36 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 #806
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 #759
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 #756
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