1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-01-17 22:21:30 +01:00
Commit Graph

432 Commits

Author SHA1 Message Date
lllucius
080b67ce9e Adds the ability to sort and group the Effects menus
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.
2014-11-04 01:38:13 +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
stevethefiddle@gmail.com
df7978d5ce Change case RPM to rpm.
Further changes to Change Speed GUI to follow.
2014-10-31 22:13:48 +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
james.k.crook@gmail.com
f0b3367a8a Effects Rack now appears center screen first time it is used. 2014-10-27 21:47:28 +00:00
lllucius@gmail.com
c6ffa89d23 Add (restore?) the ability to build without trashing the source tree
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.
2014-10-27 07:34:17 +00:00
stevethefiddle@gmail.com
2abb46b83d Allow generator effects to use preview without requiring a selection to be made.
Documentation: This does not affect any currently shipped effects. This will need documenting on the wiki for writing Nyquist plug-ins.
2014-10-26 20:30:22 +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
richardash1981
c2c525dcc3 remove commented out code 2014-10-25 21:16:00 +00:00
james.k.crook@gmail.com
67a18f165a MSVC 2013: Code analysis tool & -> &&
Via David Avery.
2014-10-25 08:25:22 +00:00
james.k.crook@gmail.com
d96bbb1f3a Spectral selection effects now prompt for missing frequency fields when used in time selection mode. 2014-10-24 20:27:04 +00:00
stevethefiddle@gmail.com
0ce9f5ad16 Allow all output from Nyquist Prompt effect.
As the Nyquist Prompt is the only direct access to input Nyquist commands, it needs to remain flexible and versatile.
2014-10-24 12:04:06 +00:00
lllucius@gmail.com
1b993ccd08 Patch provided by Rob (RPM) to resolve many of the wx3 format string assertions
He wanted to help so I asked if he wanted to track them down.  He agreed and
found more than I probably would have.  And he said there were more, but the
rest were questionable and since he works on Windows, wasn't able to actually
test.

I give a few of the ones he did find a go and they do indeed get rid of the
assertions.

(Basically, a 64-bit/32-bit issue, easily resolved with a typecast.)
2014-10-19 03:08:10 +00:00
james.k.crook@gmail.com
af649b94e1 c_str()'s for Linux.
[Need to review this for wx3.x]
2014-10-18 18:46:50 +00:00
james.k.crook@gmail.com
37608c2290 Paul Licameli's Spectral Editing Patch.
This relies on three new nyquist scripts to actually do the editing.  The peak-snapping code in FrequencyWindow has been extracted into a new class, SpectrumAnalyst, to provide peak-snapping in spectrogram too.
2014-10-18 14:19:38 +00:00
RichardAsh1981@gmail.com
7bf8f2021e commit Gale's patch to consistently use RMS for Root Mean Square values in the UI. Fixes bug 767 2014-10-10 21:18:18 +00:00
james.k.crook@gmail.com
3da033cdb7 Andrew Hallendorff's multithreaded Equalization effect. 2014-10-09 21:52:19 +00:00
lllucius
c6faffd731 Further Nyquist Prompt bug fixing from Steve
With the addition of the preview button, it became evident
that if an effect were to return text instead of audio, the
processing loop would not stop properly.

And he also found a case where the debug state wasn't reset
after using the debug button.  If this was following by the
preview button the next time the effect was used, the debug
window would reappear before the preview.
2014-10-08 01:47:01 +00:00
lllucius
80c216cccf Reset the selection time after a preview.
Steve found that if you preview an effect and, say, cancel it
before it finishes preparing, an apply will not modify all of
the originally selected audio...just up to the preview length.

This is very easy to reproduce using the Paulstretch on a 30
second clip...just click stop on the "Preparing preview"
dialog and the click apply.
2014-10-06 21:53:58 +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
lllucius
8ecd6b538d Adding preview to Nyquist effects as requested by STF
He also added a new Nyquist control header that gives each
effect the ability to control the presentation of the Preview
button.  This will be used by effects are time based and, therefore,
do not produce the same results in preview as they do when applied.

I expect Steve will be committing changes to the effects that can
take advantage of this shortly.

Testing of this can be accomplished by adding:

;preview enabled

to the "tremelo.ny" effect, just after the ";action" line.

Adding that line will cause the "Preview" button to be shown and
you will then be able to preview, adjust, preview, apply...
2014-10-05 18:22:41 +00:00
james.k.crook@gmail.com
f5e593cc4c Paul L's new SelectedRegion class replacing use of t0 and t1. Also LabelTrack.h no longer in TrackPanel.h includes.
This change is believed to be a direct refactoring that does not change functionality.  It paves the way for more complex kinds of selection, such as selections involving frequency as well as time.  It also reduces risk of left and right edges being swapped in future code using SelectedRegion, as the default is to swap on assignment if needed.
2014-10-05 17:10:09 +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
stevethefiddle@gmail.com
41c3444f37 Fix for incorrect attack/decay time by Paul L and remove unused variable. 2014-08-06 02:19:09 +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
v.audacity
c70c02130a Martyn's patch for Bug 721 - Equalization: Changing language from non-English to English creates two "unnamed" curves. 2014-08-01 20:15:30 +00:00
RichardAsh1981@gmail.com
3f49828d37 Standardise on working oof Recording and Playback rather than Input and Output throughout Audacity. Remove some very old junks strings at the same time. 2014-07-21 21:37:53 +00:00
lllucius@gmail.com
baa8f8a701 Gale found the reason I'd put in the yield during Nyquist processing,
so added it back for the Mac only.  See discussion in:

http://bugzilla.audacityteam.org/show_bug.cgi?id=734
2014-07-15 02:41:21 +00:00
lllucius
fe241e4d23 Implement suggested fix for http://bugzilla.audacityteam.org/show_bug.cgi?id=734. Tested on Windows and Steve tested on Linux. 2014-07-12 14:29:54 +00:00
RichardAsh1981@gmail.com
6605ac07e2 redirect Help button to Audacity documentation, using new infrastructure. Based on a patch from Steve the Fiddle 2014-06-09 19:56:25 +00:00
RichardAsh1981@gmail.com
59b8cdeaa8 separate out Help system functions into their own source file (pending some extra ones) and change the required includes to accomodate this. As a result, some error class definitions have to move from .cpp file to .h file. 2014-06-06 21:34:36 +00:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
stevethefiddle@gmail.com
6003abb21d Bug 713 - remove duplicate "dB" label. 2014-06-01 13:01:42 +00:00
benjamin.drung@gmail.com
5308169b20 Include <wx/dynlib.h> on Linux for wxDynamicLibrary. 2014-05-31 20:30:39 +00:00
benjamin.drung@gmail.com
0fee6939e2 Fix default LADSPA search paths on Linux.
The default LADSPA search paths should be
/home/<user>/.ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa according to
http://www.ladspa.org/ladspa_sdk/shared_plugins.html

Additional search in the ladspa subdirectory of the system library directory
(which could be /usr/lib/x86_64-linux-gnu/ on Debian, for example).

Bug-Debian: http://bugs.debian.org/724836
Bug-Ubuntu: https://launchpad.net/bugs/1261654
2014-05-31 20:01:21 +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@gmail.com
bc6904077f Fixing a crash exposed by the kn0ck0ut LV2 plugin.
After reporting the crash to the kn0ck0ut LV2 maintainer, he pointed out that
Audacity wasn't connecting to all required LV2 ports.  In this case it was the
latency port.  This corrects that oversight.

In addition, since I was fiddling with the latency port, I figured I might as
well go ahead and add the necessary code to compensate for it.
2014-05-27 02:06:00 +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