1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-09-19 09:30:52 +02:00

750 Commits

Author SHA1 Message Date
Paul Licameli
d631697321 Reorganize "Wave Color" and "Spectrogram Settings" in TCP menu...
... Now they are treated more alike:

Each is shown or hidden (not enabled or disabled) as the corresponding sub-view
of the wave track is shown or not.

Each has separator lines above and below.

They are shown (one or the other or both) after the choices for sub-views, and
not near the bottom of the menu.

This makes the TCP menu one item shorter in the default case that you view only
waveform.
2020-02-06 17:52:58 -05:00
Paul Licameli
99e3dd5d3f Require an identifier for each popup menu item 2020-02-06 00:52:54 -05:00
Paul Licameli
f68da05c1d PopupMenuTable ctor requires an identifier 2020-02-06 00:52:54 -05:00
Paul Licameli
08b1be5514 Macros describe popup menus' sections, not their separators 2020-02-06 00:52:54 -05:00
Paul Licameli
3517b900b1 PopupMenuTable need not publicize its wxMenu subclass 2020-02-06 00:52:54 -05:00
Paul Licameli
9435e97fb8 Store popup sub-menu caption with its item table 2020-02-06 00:52:53 -05:00
Paul Licameli
1e37172e6d Popup sub-menus don't require ids 2020-02-06 00:52:53 -05:00
Paul Licameli
127eb56d4e EnumValueSymbols for scale names 2020-02-03 15:34:48 -05:00
Paul Licameli
6e57428e47 PopupMenuTable does not need TranslatableArray...
... because the strings in it are TranslatableString, not translated
2020-02-02 17:32:23 -05:00
Paul Licameli
4d43967add Restore commit c1d129ec9863a877cdd678695fff54a5dab5a191 2020-01-31 23:51:12 -05:00
Paul Licameli
2c25a37994 Revert to a465ce0046e1726b3d2d926091b91714e154a91e 2020-01-31 22:34:25 -05:00
Paul Licameli
ffe101f9a2 TransportMenus not link dependent on SelectMenus or Scrubbing 2020-01-31 21:22:47 -05:00
Paul Licameli
9639ba84f4 Reimplement commit 512c27d, fixing menus & shortcut keys on Windows 2020-01-29 13:39:19 -05:00
Paul Licameli
ef41b8f2ee Fix static initialization order problem for more ReservedCommandFlags 2020-01-29 11:24:25 -05:00
Paul Licameli
9093364b8c Fix other problems since commit f6e5696...
... Problem with static initialization order of ReservedCommandFlags, caused
wrong enablement of menu items (at least on Mac), such as Plot Spectrum or
Contrast enabled when there was no selection
2020-01-28 17:49:07 -05:00
Paul Licameli
393a098b69 Store a string identifier in each menu item...
... which is not yet used for anything.

It could be used to describe textual paths for attaching plug-in menu items.

Strings are only path local, not necessarily globally unique, and may be
left empty for separators and for groups that should be transparent to
path identification.

It may also be empty for certain sub-menus, such as those that group effects
according to the changeable criteria in Preferences.
2020-01-24 18:05:56 -05:00
Paul Licameli
f6e5696146 Most functions defining menus compute once and cache the result...
... Except a few where project or plugin manager state or preferences are
needed to compute the items, so evaluation is delayed, often inside lambdas

Comment "Delayed evaluation" wherever there are exceptions
2020-01-24 18:05:56 -05:00
Paul Licameli
93c2bb9322 Delay evaluation of checkmark states...
... so that more menu item descriptions can be statically constructed once only
2020-01-24 18:05:56 -05:00
Paul Licameli
512c27d422 Simplify the FN macros in src/menus/*.cpp...
... Eliminate repetitious passing of the finder function into each of the
calls to Command and CommandGroup.
2020-01-24 18:05:56 -05:00
Paul Licameli
21306d6186 Remove indirection storing number scale in Ruler 2020-01-23 13:27:05 -05:00
Paul Licameli
10eb5864ac Don't quit update of vertical ruler of short spectrogram views...
... This caused visible anomalies, for instance when dragging the stereo track
separator between channels.  Numbers from one channel used to be drawn over
the ruler of the opposite channel.
2020-01-22 20:21:45 -05:00
Paul Licameli
0ca5775234 Eliminate one of the ## macro hacks in LoadCommands 2020-01-19 19:21:12 -05:00
Paul Licameli
2ec2ad378d Break dependency cycle introduced at a69fba9 2020-01-19 14:36:28 -05:00
Paul Licameli
7cff170cf7 Sub-view objects report their complete type, not just an enum value 2020-01-18 20:28:53 -05:00
Paul Licameli
36aad4d1c6 Don't hard-code the exhaustive list of sub-view types...
... in Wave track context menu and SetTrackVisualsCommand

Instead, discover them through a registry.

This eliminates some duplication of string constants and prepares for
non-intrusive generalization to more kinds of sub-views.

This makes the command agnostic about which subview types are known, but the
context menu still has special case treatment for Spectrogram Settings and
Wave Colors.
2020-01-18 20:26:12 -05:00
Paul Licameli
fb8ba0ce43 Some briefer type aliases for wave track display type 2020-01-18 19:35:17 -05:00
Paul Licameli
96f29e0cd0 Don't forget to modify undo state when toggling a sub-view 2020-01-18 14:40:24 -05:00
Paul Licameli
6eb0f3aca1 Move SpectrumAnalyst into its own files...
... It's the pure calculation common to the Plot Spectrum window and
to spectral editing

This removes some dependencies on FreqWindow
2020-01-18 13:38:19 -05:00
Paul Licameli
72f20d9129 Change cursors for rearranging of tracks...
... To be consistent with the rearranging of sub-views, and with general UI
guidelines.

The hover cursor is an open hand, and the dragging cursor is the closed hand.
2020-01-18 13:03:11 -05:00
Paul Licameli
000d63c95e Widen the hot zone for sub-view rearrangement...
... so it's wider than the close button
2020-01-17 16:14:23 -05:00
Paul Licameli
f10b303279 A close box button for sub-views 2020-01-17 16:10:46 -05:00
Paul Licameli
0f3f13502c Fix hot zones of sub-view cursors...
which got broken at 876cd92ed3a1729a4211938ab3c67c649df4cb3e

And remove duplicate function
2020-01-17 16:04:45 -05:00
Paul Licameli
851b49d912 Avoid churn of handles for sub-view adjustment and rearrangement 2020-01-17 15:53:33 -05:00
Paul Licameli
b45e3e8aac Separate default waveform scale choice in Tracks preferences...
... Some complications in handling correct migration of preferences from
config files in older versions
2020-01-17 12:28:52 -05:00
Paul Licameli
6c3731061f Switch priority of adjust and rearrange hit tests for sub-views 2020-01-17 11:03:25 -05:00
David Bailes
64079c3f55 Keyboard scrubbing: faster change of direction
If one of the keyboard scrubbing keys is being held down, and the other keyboard scrubbing key is pressed:
1. With current behaviour, scrubbing in the other direction only starts when the original key is released - scrubbing stops and then starts in the other direction.
2. With the new behaviour, scrubbing immediately changes direction, and does not stop when the original key is released - scrubbing does not stop and then start again.

New behaviour:
If one of the keyboard scrubbing keys is being held down,
2020-01-17 09:32:17 +00:00
Paul Licameli
6fd29ad863 Restrict y coords of the hot zone for the new sub-view rearrangement 2020-01-16 15:01:52 -05:00
Paul Licameli
a95838a3e8 Better cursors for sub-view rearrangement 2020-01-16 12:06:59 -05:00
Paul Licameli
a1ef73398b Implement click and drag to rearrange sub-view permutation...
... The hot zone is 15 pixels wide at the left of the track contents, and the
cursor is a hand.  Those particular choices can be easily amended.
2020-01-15 13:50:28 -05:00
Paul Licameli
1fa41808c2 Some refactoring of SubViewAdjustHandle 2020-01-15 13:44:10 -05:00
Paul Licameli
94af81b9f7 Fix Ubuntu build 2020-01-15 11:08:17 -05:00
David Bailes
6b9c8e79cc Bug 1954: Clicks may occur starting/pausing play-at-speed or Scrub
Problem:
On Windows, after 50ms, there is a short period of roughly zero introduced into the output. On Linux, there is also a spike which sounds like a crackle.

In AudioIO::FillBuffers(), Mixer::SetTimesAndSpeed() is called, which sets mT0 and mT1 to a small interval.
In Mixer::MixVariableRates(), all the samples in the interval are used, which means the Resample::Process() is called with last equal to true.
So when Mixer::MixVariableRates() is called again, the resampler is being reused after a call to Process() in which last is true.
It is not stated in the soxr documentation if the resampler will produce valid results in this case, and it's only the scrubbing code which does this.
I think this is the problem, and so the partial fix below avoids this happening.

Partial fix for play-at-speed and keyboard scrubbing:
For these, there is no need to reset the values of mT0 and mT1. (There is no need to allow for the sample position being used to potentially jump around.)
So for these cases, Mixer::SetSpeed() is called, rather than Mixer::SetTimesAndSpeed().
2020-01-15 11:12:40 +00:00
Paul Licameli
cbe4a46af2 Bug2265: Should save and restore track heights...
... Regression happened at 3f1fd8ced0fb5fe617ad2dd7808cd1ae2ca2c0f3

The heights were written to file, but not read back again.

This fix was done carefully to avoid making dependency cycles.  We don't want
Track to depend on TrackView or TrackControls.

It's not great that LabelTrack, NoteTrack, TimeTrack, and WaveTrack now have
those dependencies, but at least they don't make cycles.

It would be better to figure out how to attach the view and controls to the
track with ClientData, then just invoke BuildAll to repopulate the view and
controls, so that they are non-null when you reach
Track::HandleCommonXMLAttribute.
2020-01-14 20:04:32 -05:00
Paul Licameli
9e0372cbea Bold, clickable, butting clip boundaries also in spectrum view 2020-01-14 15:16:30 -05:00
Paul Licameli
97b7572504 Stroke clip edges in spectrum views too, improving split appearance 2020-01-14 14:37:54 -05:00
Paul Licameli
98bd937389 Add the multi-view menu item only if there are multiple sub-views...
... anticipating possible subtraction of all spectrogram code into an optional
plug-in in a later release
2020-01-14 14:06:22 -05:00
Paul Licameli
caf36b42ca 886c80b: Add a comment referencing the correct bug number, 2275 2020-01-13 17:51:27 -05:00
Paul Licameli
886c80bbca Bug2267 residual: do something about un-checking the last sub-view...
... when in Multi View mode.

And what we do here is disable the menu item.  The visible check indicates
which view is enabled, but you are not allowed to un-check it.  While the
Multi View item appears enabled and with a check mark.  That should be
suggestive enough to let the user discover how to exit multi view.
2020-01-13 17:48:18 -05:00
James Crook
1176b61953 Wording changes, per wiki:
https://wiki.audacityteam.org/wiki/Wording
2020-01-10 17:02:31 +00:00
Paul Licameli
d28967b7ad Bug2275 residual: don't get into state where you can't select audio...
... if you enter multi-view, then (try to) toggle both sub-views off.

Now instead, the second toggling will have no effect.
2020-01-09 15:15:11 -05:00