New project. New track. Generate sound -- do not cancel. Select all,
generate sound again -- this time, do cancel the progress dialog.
Undo, so you see one, empty track again. Save. Close. Reopen.
The cause of these orphans is different from the first case. The previous
commit is necessary but not sufficient to fix this.
This fixes the first of two related memory leak bugs:
New project. Make a new track. Select the track and use any generator, such
as white noise, specifying a long enough length that a progress dialog appears.
Cancel the progress dialog.
Save the project. Exit and restart Audacity. Reopen the project.
Orphans!
Fix, which is to disable that aspect, was agreed between Paul, Bill, Steve (and OI agree too) and as a TL I'm putting it into action so as not to hold up release with a P1.
If latency was introduced by an effect, the input position could
get offset by the amount of latency, such that the same input
would be processed twice for the number of sample of latency.
There was an issue in AUs where a "latency done" flags wasn't
being reset and so the second and subsequent uses of an effect
could not latency correct.
And in research that, I found that you need to set the sample rate
on all 3 scopes (global, input, and output) instead of just the
global scope.
Some hosts (like Ardour) use the "user" field and some use
the resvd2 field. In 2.0.6 I'd switced from resvd2 to user.
This fix puts it back to resv2 since at least one plugin,
Audiocation Phase, uses the "user" field for its own purposes
and rightly so.
Steps to reproduce:
1) Launch Audacity
2) File > New
3) Generate a sound in the new project
4) Open a LADSPA effect
5) In second project: File > Close, don't save changes.
6) In first project, generate a sound.
7) Click "Play" button - crash :-(
The RealtimeProcessStart/Stop methods are used to process the
samples for the master effect (the one the user interacts with),
it should be bypassed as well if suspended.
When building for wx3 on Linux, the backported number validators
and formatter conflicts with the wx3 version because I never
renamed them. Crashes during termination would occur because
the wx3 version and our version had different vtables.
I was thinking that we would just be able to delete the
backported version when upgrading to wx3, but since
we've made Audacity specific changes to them we can't
simply start using the real wx3 versions anymore.
Therefore, I needed to rename then to prevent the crashes.
1) Shell VSTs were completely unrecognized...that is no longer the case
2) All VSTs will now ALWAYS be initialized and cleaned up from the main
GUI thread. I found that some Waves VSTs would freeze Audacity when
initialized in the audio thread and closed in the GUI thread.
3) While realtime previewing, it was possible that the wrong slave
could be used to process new blocks of audio.
4) I found that the Waves AUs don't crash on a real Mac (instead of a
virtual machine), so I removed the "black list" I'd put in just for
them. (Something to do with needing full 3D support I think.)
Anyway, #2 and #3 were quite intrusive, so as much RTP testing as possible
would be a good thing.
This should allow the new Spectral edit plugins to work on systems that use comma as the decimal separator.
Also removes the *F0* and *F1* definitions that are no longer used (superseded by lowHz and highHz properties).
Makes the tooltips display the action that is going to
be performed rather than a generic description.
Disables transport buttons when the effect dialog is
initially displayed if another project has using the
audio device.
It corrects several "multiple project" problems with the
meter toolbars and meters.
In addition, there was a "multiple project" issue where
the transport buttons didn't disable properly in the
non-active project.
This bit the textual mode plain old text based buttons
and retains the bitmap buttons for graphical mode.
It also allowed me to remove the manual accelerator table
building (no access keys in GUI mode) which was a good
thing as I really didn't know if the was gonna work for
non-English keyboards anyway.
1) Play now respects play region
If there is a play region it will always play that no matter
what the selection is and it will always "rewind" to the start
of the region even if stopped in the middle.
2) i18n-hints added to the labels and tooltips to let translators
know that the access keys should be the same for the different
labels/tips for a specific button.
3) (ALT+...) removed from the Mac tooltips
4) You now get a message if nothing is selected and Apply is pressed
I thought this was simply the best way...nothing fancy.