Robin Gareus
e6e7377cd8
API evolution
...
The Session-reference is only needed to instantiate/load the plugin.
Indexing presets is not supposed to call load() and be const WRT to
PluginInfo
2016-01-09 15:22:16 +01:00
Robin Gareus
ba450aaeaa
Leave a ToDo note: distinguish LV2 user and factory presets.
2016-01-09 00:57:53 +01:00
Robin Gareus
2cddd0d81f
don't re-activate LV2 plugin before cleanup.
2016-01-07 18:11:35 +01:00
Robin Gareus
deb6884a53
LV2 - query presets without instantiating the plugin
2016-01-07 17:23:39 +01:00
Robin Gareus
d9eb5e00c5
cont'd work on plugin-state templates - #6709
...
Refactor and consolidate code and re-use it for session-templates.
This avoids recursive copying of the plugin-dir()
2015-12-19 14:46:15 +01:00
Robin Gareus
3eb04c3c23
save/restore plugin state with track-template
2015-12-18 14:27:15 +01:00
Robin Gareus
7b6ef41f0c
leave some todo-notes #6709 (track templates & state)
2015-12-17 23:48:06 +01:00
Robin Gareus
f05afd973b
update URI (see lv2-dev email list)
2015-12-15 09:07:00 +01:00
Robin Gareus
03ed30ac9b
update LV2 URI
2015-12-13 18:29:44 +01:00
Robin Gareus
5630332797
fix LV2 plugin state for copied plugins.
2015-12-10 19:31:00 +01:00
Robin Gareus
699f9b097d
LV2 specific instrument-plugin check
2015-12-10 17:20:08 +01:00
Robin Gareus
065d7c852a
outline a "NoSampleAccurateControl" LV2 feature:
...
Since control-ports have a fixed value for the current process-block,
Ardour splits a plugin's run() process cycle on every automation event
to facilitate sample-accurate automation.
Since automation is interpolated between events, this ensures that each
explicit automation point is reached (not interpolated).
Plugins where this is not required and which favor a fixed block-size,
can now specify an optional Feature: NoSampleAccurateControl.
One example: a convolution plugin with smoothed gain control.
2015-12-06 14:27:24 +01:00
Robin Gareus
9d867cfd87
add dedicated API to check plugin class
2015-11-18 18:11:19 +01:00
Robin Gareus
3e3a5e1cff
and another LV2-1.0.0 compat ifdef
2015-10-26 13:32:51 +01:00
Robin Gareus
677531addb
amend 311adde (LV2-1.0.0 compat)
2015-10-26 13:24:23 +01:00
Robin Gareus
311adde023
add ifdefs for LV2-1.0.0 compat
2015-10-23 18:58:55 +02:00
John Emmas
3c4f899a4f
Fix a small buffer issue which could sometimes prevent sessions from being able to load
...
In the function 'LV2Plugin::add_state()' the snprintf() call can easily print 19 or even 20 bytes - so a 16-byte buffer wasn't large enough.
2015-10-22 16:37:00 +01:00
Robin Gareus
2397429e99
use quotes for in-tree pbd/glib wrapper include
2015-10-05 22:15:18 +02:00
Robin Gareus
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
Robin Gareus
ed2ce36735
LV2 state cleanup, patch from deva. closes #6607
...
set _impl->state on session load in order to detect state changes
properly (no not save duplicate states).
+ some small mem-leaks (free state)
2015-09-27 14:07:57 +02:00
Robin Gareus
26fdf99a92
copy LV2 options to heap.
...
Stack pointer becomes invalid when the array goes out of scope.
Fixes rare crash in suil_wrapper_new() or GUIs iterating over options.
2015-09-25 19:44:30 +02:00
Robin Gareus
7ac691ec82
use pbd's gstdio compatibility wrapper
2015-09-17 14:37:57 +02:00
Robin Gareus
eb998b3264
plug some memory leaks in libs
2015-09-12 20:05:25 +02:00
Robin Gareus
09caf8336f
allow LV2 plugins to query current block-size.
...
This is akin to VST2's audioMasterGetBlockSize.
It returns the current nominal block size (think jack-buffersize).
It's not the only block size that may be used when calling run(), it's
just the normal one. The actual block sizes used may be larger or smaller
and may vary between successive calls of run().
This change became neccesary after 53e969e9 . Some plugins expected
maxBlockLength to be the /current/ buffer-size and not all-time maxiumum.
Those plugins can now use nominalBlockLength.
2015-09-10 00:55:59 +02:00
Robin Gareus
a46c84d72f
update comment regarding lv2 buffersizes
2015-08-17 00:07:32 +02:00
Robin Gareus
a99fa7170c
use buf-size.h only with lv2-1.2 or later
2015-08-14 22:42:35 +02:00
Robin Gareus
98e991c939
relax LV2 buffersize restrictions
...
check only required features, not optional ones.
2015-08-14 19:24:40 +02:00
Robin Gareus
e72c0b81a7
don't even list LV2 plugins that cannot be used.
2015-08-14 18:13:05 +02:00
Robin Gareus
ac1065b43b
refuse to load LV2 plugins if buffersize requirements cannot be satisfied.
2015-08-14 17:51:26 +02:00
Robin Gareus
53e969e925
pass complete blocksize range to LV2 plugin. fixes #6498
...
the buffersize may change anytime (split cycles),
also plugin analysis uses a 4096 sample window.
2015-08-05 00:02:55 +02:00
Robin Gareus
64af6c880c
Revert "debug/fix LV2 state loading on OSX 10.5/PPC"
...
This reverts commit 22bc62ed43 .
forwarded upstream: http://dev.drobilla.net/ticket/1073
2015-07-28 18:58:17 +02:00
Robin Gareus
fee54fb155
fix LV2 freewheeling port, explicit cast bool to float.
...
http://lv2plug.in/ns/lv2core/#freeWheeling mentions "true"
and http://lv2plug.in/ns/lv2core/#toggled defines true as > 0.
false as <= 0.
2015-07-27 19:08:29 +02:00
Robin Gareus
22bc62ed43
debug/fix LV2 state loading on OSX 10.5/PPC
2015-07-27 17:11:52 +02:00
Robin Gareus
e44e0b2c9a
LV2: delete existing preset before replacing it
2015-05-22 18:25:07 +02:00
David Robillard
18b54e6a85
Fix deleting and re-saving LV2 presets.
2015-05-22 00:24:37 -04:00
David Robillard
de078a04e2
Fix LV2 preset deletion and clash between plugins.
...
Before this, LV2 preset deletion in Ardour was doubly broken: the wrong file
was being removed, and removing the correct file would only result in a broken
preset. This change uses a new version of Lilv which has a more sophisticated
mechanism for preset deletion.
Also, fix "clashing" presets saved with the same name for different plugins, by
prefixing the plugin name to the bundle (this is now a recommendation in the
LV2 preset specification).
2015-03-07 14:54:03 -05:00
David Robillard
429da16b60
Fix sending out of bounds events to LV2 plugins.
2015-02-09 13:45:37 -05:00
Robin Gareus
c11a7a1bd7
allow bundling of lv2core
...
Don’t statically initiate the lv2 world, use explicit call after
scanning bundles.
lilv_world_load_specifications() and lilv_world_load_plugin_classes()
are only ever called after lilv_world_load_all(), so we postpone
the call to it.
2015-01-29 02:13:33 +01:00
Ben Loftis
d2fa2450aa
use C locale, because POSIX locale is not supported on windows, and operation is undefined. C works on all platforms
2015-01-19 07:29:25 -06:00
David Robillard
0274c93eac
Add missing Variant => LV2 Atom case.
...
(Not likely to actually be used any time soon but fixes warning and does
something reasonable if lossy).
2014-12-31 17:16:28 -05:00
Paul Davis
795c5c16f1
no use of GUI parameters in libardour
2014-12-22 13:39:46 -05:00
Robin Gareus
cf859270e0
fix LV2 default port value.
2014-11-30 15:05:39 +01:00
David Robillard
bb12c750bb
Just rename problematic Variant::VOID type.
2014-11-07 17:21:43 -05:00
David Robillard
a54f8141dc
Use format string even for units we understand (print Hz units).
2014-11-03 20:52:14 -05:00
David Robillard
6e16f69c26
Add menu to set frequency controls in beats, and half or double current value.
...
Test with e.g. fomp:cs_phaser1_lfo LFO frequency.
2014-11-03 17:29:11 -05:00
David Robillard
7204702c3f
Reduce coupling between Plugin and PluginInsert.
2014-11-03 13:40:50 -05:00
David Robillard
68507badd9
Fix compilation with old LV2. Maybe.
2014-11-03 11:54:35 -05:00
David Robillard
d02d8337a9
Support pretty display of arbitrary plugin parameter units.
...
Try e.g. fomp:cs_chorus1 which has Hz and ms controls.
2014-11-02 02:10:24 -05:00
David Robillard
47c4929bc2
Display gain and midiNote plugin parameters/properties nicely.
...
Show fancy values on generic GUI controls, automation lane controls, and automation lane verbose cursor.
Fix text display of midiNote values.
Make bigstep of midiNote parameters 12 (one octave).
Add ARDOUR::value_as_string() as a stateless one-stop-shop for value printing.
2014-11-02 02:10:24 -05:00
David Robillard
8a128b33d3
Automation of LV2 plugin properties.
...
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00