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

8848 Commits

Author SHA1 Message Date
Paul Licameli
ff98ca5a32 CellularPanel saves and restores focus for each click-drag-release...
... while the project makes note of which window has temporarily given up the
focus; and TrackPanel can detect that, so that the yellow border of the focused
track is still drawn while the panel "lends" the focus.

Why do all this?  So that, when the ruler is another CellularPanel, ESC key
will work to abort drags in the ruler, but TrackPanel appearance won't change
during the drags.
2018-08-05 14:51:58 -04:00
Paul Licameli
7cbe85facf Add CellularPanel::LastCell 2018-08-05 14:34:56 -04:00
Paul Licameli
4e1a80f5ac Move CellularPanel data members into a state structure out of the .h file 2018-08-05 14:33:48 -04:00
Paul Licameli
f6609e5ffb Move class CellularPanel into its own files 2018-08-05 14:02:55 -04:00
Paul Licameli
7f84e71324 Context menu handling is also in CellularPanel 2018-08-05 14:02:55 -04:00
Paul Licameli
c08c17eafa Add a method to find the rectangle of a given cell...
... Cells are not responsible to remember that; the cells' container determines
that.
2018-08-05 14:02:55 -04:00
Paul Licameli
062066eb79 Split base class CellularPanel out of TrackPanel...
... To be reused with the Ruler too.

The new base class does all the handling of hit tests on cells and managing
of UIHandles, and keyboard events and focus.

It has no knowledge of tracks -- that all resides in overriding functions in
TrackPanel.

Still to do, of course, is reorganizing drawing with callbacks to the cell
objects.
2018-08-05 14:02:52 -04:00
Paul Licameli
d76777bef7 Each cell can define cursor, status, and tooltip in default of hit tests 2018-08-05 13:28:36 -04:00
Paul Licameli
98514194a4 ProcessUIHandleResult takes pointers to TrackPanelCell 2018-08-05 13:28:34 -04:00
Paul Licameli
7395e5acbd Remove pTrack from FoundCell; new function hides some casting 2018-08-04 15:35:36 -04:00
Paul Licameli
79067e43f0 ProcessUIHandleResult is a member function of TrackPanel 2018-08-04 15:35:36 -04:00
Paul Licameli
aeece118e8 Rewrite the handling of quick play indicators...
... All updates of position are done in DoGetRectangle().  Ruler need only
expose one function, DrawOverlays().

Don't redraw indicators twice when dragging (hiding and showing again), making
some flicker.  Just do one update.
2018-08-04 15:35:36 -04:00
James Crook
c94df54157 Bug 1856 - Applying Macros to Files is no longer a batch process
This restores the 2.2.2 behaviour, with a subdirectory called 'cleaned'.  The problem was that 2.2.2 used special cases for MP3 Ogg and WAV exports, which were stripped out in favour of using the built-in Export command.  However, the differences in behaviour (prompting) between batch and non batch mode were not taken into account.
2018-08-04 19:16:32 +01:00
James Crook
9f7fa4e1f9 Bug 1914 - Enh: Clean install needed to update effect/generate/analyze/tools menu for changed plug ins
The original fix for this bug deleted pluginregistry.cfg.  That was judged to be too extreme.  This new modified fix updates pluginregistry.cfg, changing the Nyquist Prompt type and removing duplicated Sample Data Import/Export.  In future if we have further menu rearrangements of plug ins, we can make them using the same methods as in this fix.
2018-08-04 12:36:43 +01:00
James Crook
dcd9368af0 Don't load PluginTypeNone.
The code that did this was marked for removal with 2.1.1, and 2.3.0 is time to do so.
2018-08-03 19:11:57 +01:00
James Crook
233b1677dd Bug 1914 - Enh: Clean install needed to update effect/generate/analyze/tools menu for changed plug ins
This code now does the clean out of pluginregistry.cfg.
Nicer for the user would be to preserve the list of hand-added plug-ins.  But a clean restart is easier.
2018-08-03 19:08:40 +01:00
James Crook
4318cb6780 Bug 1886 - Sluggish behaviour caused by the large time taken to draw the Track Control Panel
All backing bitmaps (not just the one in track panel) now are set to 24 bits.
Big thanks to David Bailes for tracking down the root cause of slow BitBlts, and the comments at https://trac.wxwidgets.org/ticket/14403 which led to the fix.

In testing the bitmaps, I also fixed the sizer errors reported for Export.cpp that wxWidgets now reports as ASSERTS when running in debug builds.
2018-08-03 18:29:49 +01:00
James Crook
3ccdde8fdb Bug 1912 - Play/Stop and Set Cursor no longer sets the cursor at the stopped play position 2018-08-03 17:16:31 +01:00
James Crook
d7346751c3 Bug 1900 - Sample Data Import/Export should both be in the new Tools menu
Now in tools menu and marked as generate.
2018-08-03 16:12:04 +01:00
James Crook
e670ee1e07 Bug 1903 - Sample Data Export has duplicate menu entries: Tools & Analyze
Now in tools menu and marked as analyze
2018-08-03 16:12:04 +01:00
James Crook
1192914460 Fix duplication of Nyquist Prompt.
Now just one Nyquist Prompt, and it's in the tools menu.
2018-08-03 16:11:44 +01:00
James Crook
ecd09a19de Preserve selection on exit from Nyquist prompt.
This is required, because AUD-DO could change the selection.
2018-08-02 16:51:23 +01:00
James Crook
37018181a1
Merge pull request #290 from Paul-Licameli/rewrite-aud-do
Rewrite commit 1bc0f0f without further changes to lib-src...
2018-08-02 09:16:27 +01:00
Paul Licameli
06eee27b9a Rewrite commit 1bc0f0f without further changes to lib-src...
... Reuse the external function registration added earlier in 2.3.0
development, for support of internationalization in Nyquist.

This way, we avoid making cyclic static linkage dependencies between the
library and the application.
2018-08-01 23:11:30 -04:00
Paul Licameli
0dddcf44cb Some uses of wxWindowRef, a weak pointer that won't become dangling 2018-08-01 22:49:37 -04:00
James Crook
703bf2b647 Merge branch 'scripting-with-nyquist' 2018-08-01 20:35:50 +01:00
James Crook
c21855bbca Change ";type tool" to not iterate through tracks or selection.
Also adds the options
;type tool
;type tool process
;type tool generator
;type tool analyze

These tools will appear in the Tools menu, but behave as their second argument (if any)
2018-08-01 20:32:30 +01:00
James Crook
1bc0f0f4d0 Make Nyquist support (AUD-DO)
Nyquist AUD-DO calls out to a new function that executes script commands, and returns results in a lisp string.
2018-08-01 20:32:03 +01:00
James Crook
b975956812 Add re-entrancy checks to Nyquist
These changes below are paving the way for aud-do:

Nyquist Effect now detects self reentrancy and skips reentry if so.
Nyquist Effect now detects if another effect has run during effect processing, and does not send Nyquist
output if so.

Neither of these preparatory changes have an effect in absence of AUD-DO (or other function
that allows Nyquist effect to call out to Audacity functions).
2018-08-01 20:31:03 +01:00
David Bailes
d554ea53d2 Fix Travis build
Which I broke with my last commit.
2018-07-30 11:58:16 +01:00
David Bailes
f123624806 Macro dialog: minor accessibility fixes
1. Set accessibility names for the buttons for applying a macro to the project or files. Note that although these names are not read by NVDA 2018.2, they will be read by NVDA 2018.3

2. Remove access keys from wxStaticText controls, as they do not work on this type of control.
2018-07-30 11:34:00 +01:00
Paul Licameli
5f27ae905c Changed misleading terminology in scrubber...
... It was confusing that HasStartedScrubbing() could be true
while also not IsScrubbing()
2018-07-29 14:20:11 -04:00
Paul Licameli
b33d3516f0 Rename a function in AdornedRulerPanel...
... Avoid confustion of "capture" meaning recording, with "capture" of the
mouse during drag
2018-07-29 14:18:08 -04:00
Paul Licameli
8935fa106f Replace deprecated std::mem_fun and mem_fun_ref with mem_fn...
... which is easier to type and works whether you pass object pointers or
references to its operator ().
2018-07-28 10:59:08 -04:00
James Crook
4d24c0249b Use dB, not LUFS by default.
Parameter name to camel-case, not spaced.
Also a wording change on the choice prompt.
2018-07-28 11:17:04 +01:00
James Crook
f13e621bc1 Bug 1906 - Issues with dynamic Play-at-Speed
This fix addresses the remaining issue, issue 4, that the selection was often cleared when Play-at-Speed stopped.
The problem was that Scrubbing 'Set Selection to here' code was not being disabled by the Play-at-Speed state.
2018-07-27 17:13:03 +01:00
Max Maisel
9cbb67acba Fix too low loudness normalization levels.
LUFS are defined as the power of the signal, not as the root mean square.
Accidential use of the RMS caused incorrect normalization to only half
of the LUFS value.
2018-07-27 16:50:27 +02:00
James Crook
487769d2b6 Change more prompts when switching between LUFS and dB in Normalize.
As well as changing more prompts, the choice between prompts is now made in UpdateUI, rather than also doing so in PopulateOrExchange.
2018-07-26 19:05:31 +01:00
James Crook
bcb60d1f6e Fix initial display of dB/LUFS in Normalize Effect.
Previously it could show dB with the LUFS value, on first use.
Also made the VI string LUFS/dB sensitive.
2018-07-26 17:54:08 +01:00
James Crook
afcff49f10 Merge pull #287 by Max Maisel, "Normalize fixes and improvements" 2018-07-26 16:55:48 +01:00
Max Maisel
e68ea1a272 Added missing bias value in Normalize LUFS calculation. 2018-07-26 17:11:10 +02:00
Max Maisel
0ed9b9d34b Separated peak and LUFS normalization presets. 2018-07-26 17:09:44 +02:00
Max Maisel
58929e4c6c Fixed stereo track LUFS calculation according to EBU R128. 2018-07-26 17:09:44 +02:00
Max Maisel
b1598fd214 Fix peak normalize regression introduced by refactoring (bug #1908). 2018-07-26 17:09:44 +02:00
Max Maisel
514c3f897f Improved source reference for EBU R128 sampling rate adaption. 2018-07-26 17:07:01 +02:00
Paul Licameli
98a72acfb8 Remove unnecessary moves of return values 2018-07-24 21:25:22 -04:00
James Crook
e3e2eb99af
Merge pull request #286 from mmmaisel/master
EBU R128 loudness normalization and normalize progress bar bugfix
2018-07-24 20:12:59 +01:00
Max Maisel
ed41183536 Implement EBU R128 loudness normalization.
Please note that normalizing to large LUFS values may introduce clipping
of large peaks. However, the recommended target value in EBU R128 of
-23 LUFS should be totally safe but only uses a small amount of the
possible quantization range. For tracks with normal dynamic range,
normalizing to about -10 LUFS should be possible without clipping.
2018-07-24 17:38:17 +02:00
Max Maisel
d16b4526ce Refactor Normalize extent calculation in preparation of EBU R128 loudness normalization. 2018-07-24 17:29:51 +02:00
Max Maisel
6655f6e38a Fix normalize progress bar in case of stereo tracks.
Before this commit, progress jumped from 0.25 to 0.5,
then from 0.75 to 0.25 and finally from 0.5 to 0.75 when
normalizing a dependent stereo track.
2018-07-24 17:20:52 +02:00