Main effect host processing extended to support generate
effects and sync locked tracks.
Ladspa updated to utilize new generate support.
I'll address Analyze plugins when I get to the SBSMS ones.
Shared and private config changes are flushed immediately.
Cancel button restored to VST and Ladspa dialogs. This
also restores the ESC button functionality.
Current parameters saved with Apply or Ok clicked...not
when Audacity ends.
Ladspa and VST effects with that reports no input and
no outputs are now ignored.
Ladspa effects providing a latency value is now handled.
Ladspa generator effects now use the TimeTextCtrl for
specifying duration.
Fixes race condition on Audio thread state by using a mutex, so can play and use . (scrubbing forward) and SPACE (play/stop) safely. Previously crashed. Patch by Paul Licameli.
This also (hopefully) corrects some additional problems in general
realtime support. Particular focus should be given to the handling
of various combinations of stereo, left channel mono, right channel
mono, and true mono as this has been a particularly troublesome
area.
Current options:
Publisher: name (the closest to what we have now)
Name (doesn't include the publisher, just a straigt up alpha sort
Publisher (creates submenus based on the publisher)
Type (creates submenus based on the type, VST, Nyquist, etc.)
And the Linux method of creating submenus based on number of items
is available to all and you can choose how menu you want per submenu.
I had to bring this back since I'd removed it when for the new effects
and I figured why limit it to only Linux...
Check it out in Preferences (effect page).
You'll also notice that the effects page is starting to talk about
plugins. That will progress further (baby steps) so bare with me
for just a bit more.
I've added another project to the Audacity solution called
wxWidgets-2.8.12. And updated the compile.txt file with
instructions on how to build everything.
It automatically copies our setup.h and the fixed window.h
to the proper locations in the wx build tree.
It uses NMAKE to build wxWidgets using the makefile in the
wx tree. (No, I did not try to duplicate the wx project
files. ;-))
Give it a try. I think you'll be surprised how easy it will
be for new users.
This is quite an involved piece of code, and to check it is OK it should be checked with mixtures of stereo and mono, looped and non looped, selected region, no selected region. (I did, but no harm trying variations on that). Real time effects, if enabled, could also potentially interact with this, and are subject to change in this area of code.
This gets meter type VST effects working again by extending the
The master now maintains his own internal buffers and sums (mixes) all
playing tracks into those buffers. The buffers are then fed into the
VST effect that is presented to the user. This allows the effect to
provide feedback to the user if it support it. Such effects may display
meters or clipping indicators.
Several issues with treading have also been corrected (hopefully ;-)).
These showed up mostly on Linux, but could have happened on the others
as well.
The realtime support is no longer limited to 2 channels per logical
track. Once support for more channels is added, this should be ready
for it.
The rack dialog can now be toggled via the edit toolbar button. It
doesn't stay pressed because the closing of the dialog would have to
be communicated back to the toolbar.
As the rack is updated with new or removed effects or active state
changed, all effects in the active list were shutdown and all effects
in the updated list were initialized. This now shuts down only the
effects no longer in the list and initializes only new ones.
The rack now uses wxBitmapButton instead of Audacity's AButton. The
AButton has a timing issue that prevents it from being deleted while
processing the click event. I looked into it, but gave up and switched
to the wxBitmapButton. Unfortunately, there's a problem with the
wxBitmapButton as well...at least on my setup here. Either the bitmaps
are being scaled or antialiased. Will have to get feedback on this.
I finally figured out why some VSTs didn't seem to do anything in
realtime, at least in my case anyway. I've installed a lot of demo
VSTs and while they work in "batch/offline" mode, some of them will
not work in realtime since vendors tend to remove automation as one
of the demo limitations.
More changes coming shortly...
(a) Paul would like to indicate how to toggle the mode some other way. (b) You only see the prompt if you are already in this mode. (c) We may no longer use ESC in the future.
This changes the realtime preview from using 1 effect for all tracks
to an effect per track (logical track). This should clear up the
bad audio when more than one track (or a stereo track) is present.
An unfortunate side effect is that meter effects no longer work since
the one presented to the user is not the one doing the actual work.
Suggestions on how to remedy this are welcome.
In r13510 I had neglected to build with all local libraries and some of
them needed attention.
So, I also took the opportunity to work out the locale directory and
how to keep it unmolested as well. As a result, all locales are rebuilt
as expected, but into the "build" directory.
As a bonus you may now test Audacity from the "build" directory and have
Nyquist plugins and message catalogs available (so you can test other
languages again without havint to install).
So, again:
mkdir buildme
cd buildme
../configure
make
./audacity
You may now do:
mkdir build
cd build
../configure
./audacity
And all but one directory will remain unmolested...no more object files
in "src".
And if you look carefully, you'll see that the newly built "audacity" is
copied to the top of the build tree...no more having to use "src/audacity"
to run.
You can of course still do the configure from the top and get all of the
objects strewn about the tree.
I still haven't figured out how to keep the locale directory from getting
soiled. I'm not really sure there's a way around it really.
The meters are back to the length they used to be (with a little space lost for the grabber). If we want to increase their default lengths then we should look at the space saver idea (make them less tall) or else widen the initial size of Audacity main screen.
I've made it where you can enable and disable via experimentals:
EXPERIMENTAL_REALTIME_EFFECTS
EXPERIMENTAL_EFFECTS_RACK
You will notice that, as of now, the only effects currently set up for
realtime are VSTs. Now that this is in, I will start converting the
rest.
As I start to convert the effects, the astute of you may notice that
they no longer directly access tracks or any "internal" Audacity
objects. This isolates the effects from changes in Audacity and makes
it much easier to add new ones.
Anyway, all 3 platforms can now display VST effects in graphical mode.
Yes, that means Linux too. There are quite a few VSTs for Linux if
you search for them.
The so-called "rack" definitely needs some discussion, work, and attention
from someone much better at graphics than me. I'm not really sure it should
stay in as-is. I'd originally planned for it to be simply a utility window
where you can store your (preconfigured) favorite effects. It should probably
revert back to that idea.
You may notice that this DOES include the API work I did. The realtime effects
were too tied to it and I didn't want to redo the whole thing. As I mentioned
elsewhere, the API stuff may or may not be very future proof.
So, let the critter complaints commence. I absolute KNOW there will be some.
(I know I'll be hearing from the Linux peeps pretty darn quickly. ;-))