1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-15 23:59:37 +02:00

57 Commits

Author SHA1 Message Date
lllucius
41083f74cc Another round of effects bashing.
I've added some of the new plugin stuff to LV2, Nyquist, and
Vamp so that they play better in the new system.  They no
longer get bunched in with the Audacity effects when sorting
or grouping the menus.  They have not been fully converted
but they should be good for 2.1.0.

Nyquist plugins now include ";author" and ";copyright"
statements.

Added the 4 new Nyquist plugins to the Windows build.

Audiounits are still coming...had to push them to the back
burner to get this other stuff out of the way.

Scanning for new plugins has been improved so that newly
discovered ones will be shown to the user when Audacity starts.

Effects menu sorting has been fixed and improved.

Disabling effect types in Preferences works again and you
no longer have to restart Audacity for them the change to work.

Effect usage in chains works again.

Plugin registration dialog code simplified a bit.

Group names in the pluginregistry are now base64 encoded.  I
never really thought about it, but wxFileConfig group names
are case insensitive and since I was using the group name as
the plugin ID, I ran into a conflict on Linux where there
were two plugins with the same name, just different case.  (And
they were different plugins.)  Hoping all of this will change
when/if the config file gets converted to XML.  (wx3 if finally
including XML support)

A fair amount of cleanup of this new code has been done and
will continue as more stuff is converted.
2014-11-19 06:58:44 +00:00
lllucius
31081470cf Fixes disappearing focus as reported by David and cleans things up a bit. 2014-11-16 06:52:36 +00:00
lllucius
ad92e8c4bf One more round of effects changes.
The big thing is the common efffects UI.  Right now Ladspa and VST
have been converted to use it and Audiounits will be next.  It makes
everything nice and consistent while reducing the clutter in the
dialog.

Other goodies are:

Ladspa effects now show output controls when supplied by the effect
Ladspa effects now work fine as Analyze type effects
Ladspa now has user presets
VST effects dialog is now less cluttered...leaving more room for the effect
Ladspa and VST effects now share a common UI
Ladspa and VST effects are now usable in chains
Ladspa and VST effects now handle user presets the same way
Currently active effects settings automatically saved and reloaded
Can now do numeric range checking on input fields.

And, as always, plenty of critter squashing.
2014-11-14 03:03:17 +00:00
james.k.crook@gmail.com
8a9987a0d9 From: martin@steghoefer.eu [PATCHES 02-15 of 15] Fix runtime problem with wxWidgets 3.0:
Correct string formatting for:
2/15  %d + enum => %d + int
3/15  %lld + int64_t => %lld + long long
4/15  %d + int64_t => %lld + long long
5/15  %d + double => %f + double
6/15  %d + int32_t => %d + int
7/15  %d + intptr_t => %p + void*
8/15  gint, guint
9/15  %d + long => %ld + long
10/15 %n + int => %d + int
11/15 %x + int => %x + unsigned int
12/15 %f + int => %d + int
13/15 %S + wxChar* => %s + wxChar*
14/15 %d + size_t => %d + int
15/15 %d + size_t => %lld + long long

"The functions wxString::Format, wxString::Printf (and others indirectly) have become stricter about parameter types that don't match (format specifier vs. function parameters). So the bugs (that were already present in audacity before) become visible in wx3.0 as error message dialogs. I've checked all occurrences of Printf, wxPrintf, PrintfV, Format, FormatV, wxLogDebug and wxLogError systematically and made the type match."

Note (9/15): In TrackPanel.cpp, ExportMP2.cpp and CompareAudioCommand.cpp this patch supersedes related change done in r13466 because the new solution requires fewer casts and therefore simplifies the code.

Note: Many .po files are affected, and we need to be very careful about this.  Incorrect "%d" and similar in translation files may lead to crashes in those languages (only).  This is something we should actually have been more careful about in the past.  We need to write a script to check that the "%d" and similar format specifiers match between English and translation.
2014-11-08 16:42:34 +00:00
lllucius
7bb4b7c941 More effect changes to new format and realtime preview
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.
2014-11-07 09:54:04 +00:00
lllucius@gmail.com
126152a756 Converts the ladspa effects to the new format and adds realtime support
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.
2014-11-05 07:06:38 +00:00
lllucius
4583e91621 More fixes for the realtime stuff.
Nothing new added in this one.  Should fix the odd behavior
with a single track not really working correctly.
2014-11-03 22:47:55 +00:00
lllucius
cae6669275 Round 3 of realtime changes.
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...
2014-11-03 06:48:54 +00:00
lllucius
d50e9fee52 Realtime preview round 2
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.
2014-10-30 14:04:48 +00:00
lllucius
d48f03518f Fixing some typos and makes effects added to rack OFF by default
That's going to solve some doubling up of effects while playing I think.
2014-10-29 03:46:53 +00:00
lllucius
1eeb4d979a The fabled realtime effects...
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.  ;-))
2014-10-26 03:24:10 +00:00
lllucius
bdcefb4850 Preliminary changes for wxWidgets 3.0.1
We can't go to 3.0.1 yet as there are still build issues on
Linux and OSX.  You can get Windows to build, but there's
still some display issues.

These changes should work with wxWidgets 2.8.12 as well, so
we can take our time to get things working properly before
switching over.
2014-10-06 08:10:50 +00:00
richardash1981
d2b4eca65b Patch by Martyn Shaw to fix a crash when the output of the VST effect does not have exactly two channels - we can now have any reasonable number of outputs from the plugin. This has been crashing windows builds of Audacity. 2014-08-26 21:51:28 +00:00
v.audacity
c8ea76b80e rewordings based on Gale's suggestions, and a few of mine 2014-08-20 02:44:27 +00:00
lllucius
de68121d79 This fixes bug #740 and another crash.
I can't believe two things...

I can't believe I didn't test the textual display!  I'm really ashamed about that.

And I can't believe that we've never had anyone report a crash when attempting to
using the textual display with plugins that do not supply textual parameters.  Some
examples are the ones from BBE Sound.

I went back to Audacity 2.0 and they would crash there as well.  I'd wager they
probably always caused Audacity to crash.

Not much can be done except to fall back to the graphical display.
2014-08-05 05:35:57 +00:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
benjamin.drung@gmail.com
5308169b20 Include <wx/dynlib.h> on Linux for wxDynamicLibrary. 2014-05-31 20:30:39 +00:00
lllucius
e77ad86b8d Misplaced include broke Windows build... 2014-05-31 12:16:38 +00:00
lllucius@gmail.com
5b18fe3347 Enable VST support on Linux 2014-05-28 06:45:03 +00:00
lllucius
de27ef14c9 Restore preset behavior until a better solution is devised. 2014-05-27 07:08:10 +00:00
lllucius
c79bf9b1fa Bug fixes and additions to VST plugins
Bugs fixed:

1)  When scanning for VSTs on Mac, bogus lines could show up in the list if the .vst
    file had more than one Info.plist in the bungle.  GRM and TAL plugins exhibited
    this issue.
2)  When scanning for VSTs on Mac, reuse of a variable caused the plugin to be
    accepted even though it was a synth.  So it would show up in the Generate menu.
3)  I recently disabled the the plugin list dialog once the OK button was clicked
    to prevent clicking it again.  This was overkill and prevented clicking Cancel
    while the scan was running.  So, changed it to only disable the OK button.
4)  The new Settings dialog would save the settings even if you clicked Cancel.
5)  Detecing the overlay window on Mac didn't work in all cases.  Did more research
    and I believe the revised method is correct. (Window list is z-order sorted)
6)  When changing the preset from the top combo, the return value from the
    plugin was not check when getting the current preset (program).  It assumed
    that there was always an active program.  This is not at all correct.

Most of the new additions are an attempt to be more compatible with more plugins.
I have not found any plugins that crash Audacity anymore, so I'm not sure how to
really give these changes a good workout.  However, Guitar Rig 5 and Reaktor 5
are now quite usable since one of the additions was window resizing.

1)  Refreshed the aeffectx.h header from the LMSS project and merged in some
    additional changes from Ardour.
2)  Changed the method prototypes to reflect the new aeffectx.h header.
3)  Plugin scan dialog now has a "Select All" and "Clear All" buttons.  (On a
    personal note, this was a major boon while testing...way easier to include
    a single VST.)
4)  Uses a timer now instead of the wxIdleEvent to send effIdle messages to the
    plugin.  Idle could be all many times more than was necessary.
5)  Process level is now reported when requested by the plugin.  Don't know how
    useful it is, but many plugins request it.
6)  Two new events are sent to the dialog from the audioMaster callback to support
    window updating and resizing.  Figured it was safer this way since the callback
    "might" be called from a different thread (as far as I could figure out anyway).
7)  Current sample rate is now returned to the plugin when requested.
8)  The dialog now resizes when the plugin informs us of a size change to its window.
    This was one of the major drawbacks to using Guitar Rig and Reaktor as their
    window would resize and pretty much be useless since the dialog didn't adjust to
    the new size.  Kontakt was another that even includes a draggable resizer in the
    bottom right corner which the dialog supports just fine now.  (Not that Kontakt
    is actually supported though.)
9)  The preset bar is now updated when the plugin informs us of "major" changes with
    the UpdateDisplay opcode.  I noticed that when changing presets within Guitar
    Rig, the preset bar didn't change.

Discovered limitation:

Guitar Rig and, it seems, other plugins will only report a maximum of 128 presets (or
rather programs) even if they support more.  I'd figure out a way to populate the
combo with all of the presets via some major hackage, but it didn't do any good since
Guitar Rig simply refused to set any program number above 128.

Not much can be done about this...just a heads up.
2014-05-26 01:36:14 +00:00
lllucius
8a5d31588a Rework some strings for consistency as suggest by Gale. 2014-05-23 07:52:56 +00:00
lllucius
a2d7b626fd Sven Giermann's FXP support changes 2014-05-23 06:07:27 +00:00
lllucius
631f6a119d Fix another loading issue with VST XML files. 2014-05-23 04:41:19 +00:00
lllucius
8b1d71c657 Fix VST XML file loading if it contained "chunks" 2014-05-23 04:18:43 +00:00
lllucius@gmail.com
31d23fdf3f Add some compatability for some Mac effects
Mac effects that use overlay windows should now work correctly.

And I made some minor changes to the settings dialog as suggested
by Gale.
2014-05-22 23:00:24 +00:00
lllucius
680896b1b9 Fix loading of VST XML programs. 2014-05-20 07:30:23 +00:00
lllucius
001c8a80f7 Add buffer delay compensation and settings dialog
The buffer delay compensation resolves the issue where an effect
may add a delay to the output.  This would cause the output to shift
and the final samples to get chopped off.

The settings (click Settings on any VST dialog) dialog allows the user
to enable/disable the BDC and to set their desired buffer size (within
reason) to help improve performance.

In addition it fixes a bug in the plugin scan list were you could click
OK twice and have two scans going, eventually asserting.
2014-05-20 05:30:41 +00:00
windinthew
c7a82c3972 Clarify we are saving / loading a preset, not a program. 2014-04-07 21:41:30 +00:00
benjamin.drung@gmail.com
7d4bc6917b Fix build failure caused by undefined PATH_MAX.
Use PATH_MAX for PLATFORM_MAX_PATH only if it is defined and replace all
instances of PATH_MAX by PLATFORM_MAX_PATH.
2013-11-21 20:52:17 +00:00
lllucius
95215dd0e1 Bug 646 - VST List of Plugins - Residual Issues
Corrects a width problem on the Mac.
2013-10-31 13:39:12 +00:00
lllucius
a53defedf3 Bug 646 - Additional fix the Cancel button
It now interrupts the scan if the user clicks OK first.
2013-10-30 02:42:51 +00:00
v.audacity
a1fe886b43 Audacity convention is hyphen for "plug-in". Patch from Gale. 2013-10-11 19:58:35 +00:00
lllucius
d2b65de318 Fix remaining issue with #646
Good catch David!!!
2013-10-09 13:55:44 +00:00
lllucius
78bb88f169 Fix for bug # 646
http://bugzilla.audacityteam.org/show_bug.cgi?id=646
2013-10-07 23:33:59 +00:00
martynshaw99
4ce2643d5f Remove the
// Indentation settings for Vim and Emacs
etc. lines from all files, as Campbell's patch (except for other changes to Languages.cpp)
2013-09-24 00:14:37 +00:00
james.k.crook@gmail.com
ba187bbafc Bug 368: No longer look at plugins.cfg to decide whether to rescan. Just use the rescan preference. 2013-08-31 14:24:55 +00:00
james.k.crook@gmail.com
557885770b Bug 646: PAGEUP and PAGEDOWN disabled for now. 2013-08-27 17:42:10 +00:00
james.k.crook@gmail.com
863e9aecb5 Bug 646 Handling of HOME and END keys. (Thanks David Bailes). 2013-08-27 17:26:11 +00:00
james.k.crook@gmail.com
db26dad623 Change visual and audible labels for 'Install VST Effects' too. 2013-08-27 14:56:41 +00:00
james.k.crook@gmail.com
774b8e9598 "Install VST Effects" in place of "Install VST Plugins" 2013-08-27 11:27:16 +00:00
james.k.crook@gmail.com
8678bbc88c Bug 646:
1) Following request from Gale scanning for VSTs will be prompted for every time you start, until it completes successfully OR you ask for it not to happen in preferences.  Also it will happen if the plugns.cfg is empty.
2) UP and DOWN no longer toggle the checkmark too.  SPACE does.
2013-08-27 10:26:06 +00:00
james.k.crook@gmail.com
dba81b3f1c Cleanup: Fixed lots of trivial MSVC warnings. 2013-08-25 21:51:26 +00:00
james.k.crook@gmail.com
25f2206205 Fix for small arrow on wxMac. This is done blind, based on a guess that wxWin resizes the icons and wxMac does not. 2013-08-25 11:35:01 +00:00
james.k.crook@gmail.com
53032f04f8 Fixed missing include <listctrl.h> and fixed warning on LabelArray from DLL exporting. 2013-08-24 22:16:47 +00:00
james.k.crook@gmail.com
8ebe966a8b Bug 646: Small gap now between icon and text. 2013-08-24 16:45:32 +00:00
james.k.crook@gmail.com
1706aaca69 Bug 646: PluginRegistrationDialog now centred on screen rather than on (not-yet-existent) parent 2013-08-24 16:31:21 +00:00
james.k.crook@gmail.com
4c2544874d Bug 368: VST plugins now have a dialog that gives a list of plugine to choose from. 2013-08-24 15:38:26 +00:00
james.k.crook@gmail.com
077e18372b Fix bug where empty plugins.cfg causes a rescan. 2013-08-22 17:54:58 +00:00
v.audacity
c26b3c6b49 Campbell Barton's further patch to turn many, many tabs to our 3-space convenbtion 2013-02-23 04:33:20 +00:00