... consistently with the drop-down menu, and now the Tracks Preferences too.
Only distinguish Waveform and Spectrogram and nil.
See also commit e3d9fd9.
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,
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().
... 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.
... 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.
commit 48b6a9a8594c072de0849f33ad554e7f60980bb4
Author: Steve Daulton <SteveDaulton@users.noreply.github.com>
Date: Wed Dec 18 20:28:04 2019 +0000
Update init.lsp
*NYQ-PATH* is not required (and not currently used).
Use *RUNTIME-PATH* instead (already defined in Nyquist, but not previously documented).
commit f99d564fd6dbddfa995ff16ae18aef3429aee2ed
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Tue Jul 2 15:02:00 2019 +0100
Fix bug 2148
Ensure that backslashes in GetInfo data are escaped.
commit 5a7b6a7323a12591f79176588581e7dd84a49038
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Thu Dec 27 19:44:05 2018 +0000
Fix multiple selection Nyquist file widget
Wx "Style" flags are 4 bytes, not 1 byte.
Also update a couple of comments in passing.
commit 26e19bfd5a2485aaa8aa1554b9d45c248b4c134b
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Fri Nov 9 16:35:37 2018 +0000
Add aud-do-support.lsp for Linux build
Provides Nyquist (LISP) wrapper functions for macro "Commands".
commit 46a3f91d5946a0248631d590a05073911f7f87cc
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Mon Oct 29 15:20:36 2018 +0000
Add some useful path definitions for Nyquist
commit 37ec7da3c33efbd7e804b59e8b3cbfec8ece8b8e
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Thu Oct 11 02:43:07 2018 +0100
Throw error if Nyquist *LOCALE* is malformed
Partial translations are allowed.
commit 297bf442a45b4e7fd7831a35102585ac2d50cbc3
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Tue Oct 9 01:13:48 2018 +0100
Fix typo in 665e2d0
commit 665e2d0e9c72335911a8572393d0b30ee38b1662
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Tue Oct 9 01:04:05 2018 +0100
Correction to translation of rms.ny
Update Russian translation in rms.ny and make variables local to
underscore function.
commit 5d34d022a5cc7c4efa631a3a815121584dd2e9c6
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Sun Oct 7 18:40:41 2018 +0100
Add rms.ny to Audacity bundle
Tidy translation code in init.lsp
Include rms.ny in Makefile.am
Add rms.ny to Linux package
Update Makefiles with: autoreconf --force --no-recursive
Add rms.ny to mac build
Add rms.ny to Windows build
commit ae2bbb327613ed35ddc1e37d5f9fd443180b06c2
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Mon Sep 3 16:57:06 2018 +0100
AUD-GET-INFO function added to init.lsp
Provide built-in Nyquist function to call scripting command
GetInfo, and return result as LISP list.
commit 367d15a0b0695f0aa29bc4500c6702bd17c3ce6f
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Sun Aug 26 20:07:47 2018 +0100
Add a couple of helpers for parsing string
Provides a convenient function and macro, intended specifically for
parsing strings returned by (aud-do "GetInfo: ...
commit 504cf0fe8553a60aee5557e820c43ca6aa51a47a
Author: Steve Daulton <stevedaulton@gmail.com>
Date: Sun May 6 17:08:12 2018 +0100
Runtime translation for 3rd party Nyquist plug-ins
3rd party plug-ins may provide their own translations for runtime
messages (return strings and debug messages).
... when you shrink a sub-view then toggle it, or toggle all views off then
exit multi-view
Fix it by making GetSubViews more robust to contents of mPlacements
... you use the prompt, and you enter a complete script with control comments
that are reinterpreted to put up a second dialog.
This simplifies Effect::Delegate() and avoids mutual recursion of ShowInterface
with DoEffect.