1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-05 06:09:47 +02:00

6839 Commits

Author SHA1 Message Date
David Bailes
b2d8f36969 Fix for bugs in keyboard clip commands due to rounding errors
When When two clips are immediately next to each other, the GetEndTime() of the first clip and the GetStartTime() of the second clip may not be exactly equal due to rounding errors. The existing code assumed they were equal, and this lead to the wrong clip boundaries or clips being found.

There are a number of ways of fixing this which could be explored. The current solution involves changing only the code for the keyboard interaction with clips.

The fix:
1. The test used for two clips being immediately next to each other is that GetEndSample() on the first clip is equal to to GetStartSample() on the second clip.
2. When searching for the start/end times of clips, the cases where GetEndTime() and GetStartTime() are not equal are taken into account. This is done in the two functions AudacityProject::AdjustForFindingStartTimes and AudacityProject::AdjustForFindingEndTimes.
2017-05-10 09:24:25 +01:00
Paul Licameli
85e984de63 More envelope fixes, including some for 1643, 1644 2017-05-09 09:23:45 -04:00
Paul Licameli
327e5d8557 Correct envelope update for Join that includes a gap between clips 2017-05-09 09:22:07 -04:00
Paul Licameli
a9160cf803 Envelope::InsertSpace preserves limiting values of the split point 2017-05-09 09:22:06 -04:00
Paul Licameli
8c4dc38047 WaveTrack::SplitAt no longer needs to insert envelope points...
... because partial-copy construction of the new WaveClip, and CollapseRegion
within WaveClip::Clear, handle it.
2017-05-09 09:22:06 -04:00
Paul Licameli
aba52bc79e Update envelope properly for TimeTrack and WaveTrack editing...
... Formerly this was done correctly only for cut and delete from WaveTrack,
paste into WaveTrack, and sync-lock adjustment of WaveTrack (either lengthening
or shortening).

Now also properly done for TimeTrack cut and paste, and also for:

Split cut
Split delete
Trim
2017-05-09 09:22:06 -04:00
Paul Licameli
2d84c65c94 When Envelope domain is shortened, evaluation inside won't change...
... It doesn't happen in practice yet, all present calls to SetTrackLen
make the track the same length or longer.  But this is for completeness.
2017-05-09 09:20:31 -04:00
Paul Licameli
945e411e2c Partial range copy of Envelope will not leave coincident points 2017-05-09 09:20:31 -04:00
Paul Licameli
f5a7e4ce7c Define private Envelope evaluator functions taking relative time...
... To be very sure we can avoid roundoff errors from adding mOffset and
subtracting it again; so that evaluation exactly at a control point time gives
the exact value of that point.
2017-05-09 09:20:31 -04:00
Paul Licameli
01b99f2849 Remove pointer back to Envelope from EnvPoint 2017-05-09 09:20:31 -04:00
Paul Licameli
2e7f806e90 Fix EqualRange for case of zero tolerance 2017-05-09 09:20:31 -04:00
Paul Licameli
a26b79d9fb Merge branch 'master' into HEAD 2017-05-09 09:19:55 -04:00
Paul Licameli
ebd1de4ffc Interim fixes for envelopes 2017-05-09 09:19:01 -04:00
James Crook
f859bf62c7 Remember Start/Center setting on SelectionToolbar
I mistakenly had it always set to ShowStart = true
Also tidied up a hastily written comment.
2017-05-09 13:29:15 +01:00
James Crook
52509d4bbd Add option of Start/Center to SelectionBar
We now have Start/Center and End/Length, per Robert and Martyn's suggestion
I've also tidied up the code here that was repetitive/messy.
2017-05-09 12:37:55 +01:00
James Crook
94c43773fc Bug 1641 - Don't use the 'space trick' on Linux/Mac menus.
The 'added space trick' to disable menu accelerators and still show them hides the accelerators completely on Linux/Mac.  Linux/Mac rejects the invalid accelerators.  Fortunately we don't need to disable the menu accelerators on Linux/Mac.  These menu accelerators causing a problem (in bug 1637) only happens on Windows.  So the 'space trick' is now used only on Windows.
2017-05-09 08:44:39 +01:00
windinthew
5b36f5d6a9 Fix missing access keys 2017-05-08 20:20:05 +01:00
Paul Licameli
5dfb47132e Interim fixes for Envelopes 2017-05-08 13:19:39 -04:00
James Crook
09607c278d Fix position of wxASSERTs
Moved one ASSERT that was in the wrong place and added a new one.  This might give a little more information in mac debug builds about Bug 1636 - (Mac) Equalization: Crash selecting the "RIAA" or "Telephone" curves.  This is NOT a fix.
2017-05-07 19:22:44 +01:00
James Crook
927c500acd Bug 1626 - Preview of non-RTP effects fails if all the track is selected
A length of zero for silence to insert is allowed.  It means 'do nothing'.
2017-05-07 19:09:37 +01:00
Paul Licameli
b6d43e4954 Various fixes involving Envelope. More to come later. 2017-05-07 11:16:50 -04:00
Paul Licameli
d2acf1f3e5 Bug842: rescale clip offsets, envelope times when setting track rate 2017-05-07 11:12:24 -04:00
Paul Licameli
e36070e671 Small fix to envelope operations in Equalization user interface 2017-05-07 11:12:07 -04:00
Paul Licameli
7ad910c0a6 Simplify envelope binary search and uses of it 2017-05-07 11:00:55 -04:00
Paul Licameli
30e67bcb8e some reindentation 2017-05-07 11:00:55 -04:00
Paul Licameli
26c4d65bd4 Public Envelope methods all take & return ABSOLUTE time values...
... rather than some of them being relative to the Envelope's offset.

In case of the envelopes used in TimeTrack or Equalization, offset was
always zero, so this doesn't matter, except to make the contract of the
Envelope class more explicit and sensible in isolation.

In case of InsertSpace at least, this does fix an obscure bug, which could
only happen when you have a clip, with an envelope, that starts before zero,
and you select a region overlapping that clip and some other clip, with a void
between, and you use the Join command.

Aren't you relieved that's fixed now?
2017-05-07 11:00:55 -04:00
Paul Licameli
9c683a4f19 Rename some member functions of Envelope 2017-05-07 11:00:55 -04:00
Paul Licameli
4be19128c0 Better constructors for Envelope 2017-05-07 11:00:55 -04:00
Paul Licameli
3ba1ebc5c0 Remove unused members of Envelope 2017-05-07 11:00:54 -04:00
James Crook
f0bdfc10b5 Move record-new-track option
It's now in recording-prefs rather than track-behavior-prefs, and to make room latency options (which are related to device) ar enow in device-prefs.  Naming of new tracks has also been made slightly more compact.
2017-05-07 13:22:04 +01:00
James Crook
6a33e8303a Bug 1641 - Follow up. NUMPAD_ENTER, Backspace, Delete
3 Keys that were already illegal now added back with a space before them.
This should fix these keys in 1641 too.
2017-05-07 11:17:18 +01:00
James Crook
6e65596b47 Bug 1641 - Panel navigation accelerators don't appear in the menus
This attempted fix applies the 'space' trick to make accelerators invalid, so "Left" is added as " Left" into the menus, and appears normal but does not act as an accelerator.  This is now only done for the problematic accelerators rather than for all accelerators.  It's believed that doing it for all accelerators caused the problem.

In debug builds users will see messages like the one below in the console:

"Unrecognized accel key ' right', accel string ignored."

This fix additionally adds 0..9 to the specially handled accelerators.  This should address:
Bug 1260 - Cant type "1" in the Project Rate text box

The fix has been developed and tested on Window only.  Theoretically the space might cause problems on Mac and if it does the 'space' trick could be applied just on Windows and Linux, since Mac did not seem to have the problem reported in 1260.
2017-05-07 10:59:50 +01:00
James Crook
6491aed13c Fix build failure from absent gettext 2017-05-04 22:18:51 +01:00
James Crook
c0f835b67b Add border around theme Images. Do fixups.
Adding an orange border around the images in a theme makes it much easier to cut and paste in the correct position.  I've also expanded the internal images and fixed up a few image details - the pins/bobbins on darker themes, and the light blue rather than dark blue for negative times.
2017-05-04 21:41:18 +01:00
James Crook
ef62bd70df Bug 1637 - Keyboard interaction with many controls in toolbars broken
This progresses this bug.  Specifically on Windows, Left and Right arrows and Enter (non keypad version) should now no longer be a problem.  The fix is to not show these shortcuts in menus, because otherwise the menus will catch the events.  Unfortunately attempts to show these specific shortcuts in the menus bring back the bug.

Steps to reproduce for 1637 will need to be updated.
2017-05-04 17:14:44 +01:00
James Crook
e7f95e2be0 A small step towards HiDPI
The image cache that users work with should now have 'pixels' that are 4x4.   This will in time allow us to have large or small versions of all buttons, and also means we have hi resolution images for HiDPI screens.  The actual cost of the extra size should be small, as compression will see lots of repetition.

The main point of doing this now is so that new contributed themes can be HiDPI from the start.
2017-05-04 16:56:32 +01:00
James Crook
a2ba221554 Bug 1640 - Reset Toolbars reduces Selection Toolbar to a stub 2017-05-04 16:49:02 +01:00
James Crook
78135d25fd Use blue for negative Numbers
The time ruler previously used blue for negative numbers, when scrolling left of zero was enabled.  This was broken by adding the dark-theme code.  Fixed now, and with a new configurable colour for it which defaults to blue if non provided.
2017-05-03 16:11:05 +01:00
James Crook
a53e3010f8 Tooltips for unmodified Play and Record. 2017-05-03 09:34:30 +01:00
Paul Licameli
d4726c26ca Revert "Enable EXPERIMENTAL_MIDI_OUT for all platforms..."
This reverts commit c07caade9f0165e07c0a59700c789fedf3e19406.
2017-05-02 09:00:14 -04:00
Paul Licameli
f51e4d81c1 Some MIDI editing and display enhancements, not dependent on playback 2017-05-02 00:41:37 -04:00
Pokechu22
77db2e7113 Transpose notes even when channel isn't visible
As mentioned by PRL
(https://sourceforge.net/p/audacity/mailman/message/35763043/),
WarpAndTransposeNotes didn't transpose, but _did_ wrap, notes that were on
channels that were hidden.  This behavior is inconsistent with all other
operations, and thus has been changed to always transform and wrap
regardless of visibility.
2017-05-02 00:37:32 -04:00
Pokechu22
3de3e7cd4d Add call to MakeParentModifyState for note track controls 2017-05-02 00:37:32 -04:00
Pokechu22
1daf22c638 Fix Fit to Height not resizing note tracks 2017-05-02 00:37:32 -04:00
Pokechu22
298bb3fde8 NoteTrack: Implement Silence and InsertSilence
Additionally, fix the UI portions of these, and fix Trim for note tracks
(the code already existed, but due to flags would not work).  As PRL
requested, this is gated only behind USE_MIDI.
2017-05-02 00:37:31 -04:00
Pokechu22
e707f6a263 Use static_cast instead of c-style casts for the velocity sliders 2017-05-02 00:37:31 -04:00
Pokechu22
8db7e65505 Get rid of SetStyle for sliders
It's no longer used, and the new set up for MixerTrackCluster makes them
unable to change the type of the slider (so it should also no longer need
to be used).
2017-05-02 00:37:31 -04:00
Pokechu22
a76ad22c91 Fix midi channel toggling
This reintroduces the buttons to toggle display of individual midi
channels, and cleans up the code behind that feature.

This functionality has actually been present in production versions of
audacity for a while, at least for clicking.  However, the buttons
themselves were not drawn, making it exteremly painful (but possible) to
use.

As requested by PRL, this is always enabled if USE_MIDI is defined.
2017-05-02 00:37:31 -04:00
Paul Licameli
c07caade9f Enable EXPERIMENTAL_MIDI_OUT for all platforms...
... at least during the development cycle.  This may be reverted if the
enhancement remains unready.
2017-05-02 00:37:30 -04:00
James Crook
7c9c74de94 Remove logging left in by mistake. 2017-05-01 23:09:42 +01:00