Robin Gareus
e398656940
Prevent crashes when copying LV2 plugin state
...
LV2 plugin state-loading is generally safe to perform concurrently
with running the plugin (as per LV2 spec). However concurrent run()
is not.
2019-03-22 14:09:03 +01:00
Robin Gareus
484e0d0fb2
Remove generic parameter-printer
...
This has been superseded by value_as_string() along with meta-data
from parameter-descriptor, which is supported by all standards, except VST.
2019-03-11 02:10:50 +01:00
Robin Gareus
4397ec9ce6
Properly copy LV2 plugin instances on replication
...
This fixes issues for stateful plugins and plugins with
previously loaded preset.
2019-02-28 04:48:32 +01:00
Robin Gareus
2ec28f3ce7
Clean up Latency API (Processor vs Plugin)
...
Plugins are only a source of Latency (Plugin delay).
The API to query, signal and override Latency is managed
by PluginInsert.
2019-02-17 01:51:49 +01:00
David Robillard
560054dfd6
Use lilv_world_get()
...
Leaves the now-trivial get_value() helper there since it keeps the call sites
shorter and nicer to read.
2018-12-19 20:08:47 -05:00
David Robillard
79c9c62154
Remove conditional support for ancient versions of Lilv
...
This updates the dependency to 0.24.2, which was released in January 2017 and
is the most recent version in Debian 9 (stretch).
2018-12-19 20:08:47 -05:00
Robin Gareus
e4304f3bf2
Wouldn't it be nice if plugin presets had a description/comment?
2018-12-18 14:13:15 +01:00
Robin Gareus
0a3fc4a87f
Add LV2 option/extension for plugin thread sched priority
...
This allows plugins that need threads to process to configure their
thread priority to not interfere with the host's process threads.
2018-12-18 13:30:31 +01:00
Robin Gareus
f795462100
Save LV2 Port Property values locally
...
This keeps track of lv2:Parameter properties modified with Port:Set,
currently file-paths.
2018-11-22 14:58:44 +01:00
Robin Gareus
cbef72b8a1
Optimize Plugin connect & run API, use const maps
2018-11-04 02:16:34 +01:00
Robin Gareus
333f59a53f
Fix lv2-state templates with external files.
...
This forces liblilv to collect external files in the template-folder
and symlink to the original file instead of re-using the external-file
folder of the session that was used to create the template.
2018-07-10 00:58:18 +02:00
Robin Gareus
59a3b040a3
Hide designated LV2 freewheeling port.
2018-06-09 14:40:46 +02:00
John Emmas
2124fb72ea
Make sure that 'libardour-config,h' only gets #included when building with waf (as it only gets generated when building with waf)
...
When building with MSVC this was getting #included in a few places which had the effect of making my session files get generated in a very old format.
2018-02-03 13:58:22 +00:00
Robin Gareus
b8491014a5
Update plugin classification
...
* dedicated API for classes (effect, instrument, util)
* prepare for tags (rather than categories)
* prepare removal of per-plugin in_category() API
2018-01-30 01:33:48 +01:00
Robin Gareus
d6a3db1ac7
lv2 compat for liblilv < 1.10.0
2017-10-23 19:22:16 +02:00
Paul Davis
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus
7872e4033f
LV2/midnam tweaks - fix race conditions
...
* Emit signal once midnam was actually updated
* only re-read midnam if was it changed. This allows idempotent calls to
read_midnam() - from the same thread.
At session-load a synth-plugin may load a soundfont in the background
and emit midnam_update() after the synth was initialized but before the
GUI thread connects to the signal. By making the call idempotent the
GUI can call read_midnam() after connecting to the signal to catch up.
2017-09-09 03:08:46 +02:00
Robin Gareus
e452ba0fe1
Add LV2 extension to notify host about midi-bank/pgm state.
2017-09-08 23:35:00 +02:00
Robin Gareus
acd73a9bf8
yet another Windows build fix (LV2 preset 89475b2c9)
2017-08-11 17:33:44 +02:00
Robin Gareus
ee839bda3d
Fix Windows builds (amend 89475b2c)
2017-08-11 17:19:45 +02:00
Robin Gareus
89475b2c95
Fix LV2 Preset path for window
2017-08-11 16:54:39 +02:00
Johannes Mueller
6663a26755
Signal wish to show inline display in gui by lv2:optionalFeature
...
... in .ttl file rather than by extension_data() in code. That's more in the
spirit of LV2.
2017-07-31 21:31:23 +02:00
Johannes Mueller
2716ce41e0
Indicate whether to show plugin's inline display in GUI
...
This is currently done by an extension data similarly to
LV2_INLINEDISPLAY__interface.
2017-07-31 21:31:23 +02:00
Robin Gareus
fde0e293a3
Remove unused "mark" parameter from stop_touch() API
2017-07-24 01:59:18 +02:00
Robin Gareus
f413b83cb9
Fix thinko in dd3f922788
2017-07-01 18:31:55 +02:00
Robin Gareus
dd3f922788
Tweak LV2 float parameter printing
2017-06-30 01:56:49 +02:00
Tim Mayberry
6d35b3c4e4
Remove locale_guard.h from ardour/ardour.h header
...
Add to source files that use LocaleGuard
Results in far less recompiling when pbd/locale_guard.h changes
2017-06-22 10:48:38 +10:00
Robin Gareus
7ab15def2b
Consolidate ParameterDescriptor settings+ranges
2017-06-21 18:13:26 +02:00
Robin Gareus
cb48bb0e1c
remove min/max unbound -- LADSPA special case.
...
This explicit case should never have existed in the first place.
Plugins can always implicitly exceed the range and are expected to
cope with out-of-range values (e.g. meters when fed with a peaking signal
may return an out-of-bounds value)
2017-06-21 18:12:20 +02:00
Damien Zammit
3d2bbf93ef
a-EQ: Tweak knob layout to be less confusing
2017-06-11 16:25:26 +10:00
Tim Mayberry
baa1bff5ec
Use PBD::to_string to set state-dir property in LV2Plugin
...
To prevent issues with numeric grouping with formatting used by string_compose
template/stringstream when global C++ locale != "C"
2017-04-19 09:37:01 +10:00
Tim Mayberry
19f9158dc6
Use PBD::to_string() in LV2Plugin instead of string_compose for state_dir
...
To prevent issues with numeric grouping with formatting used by string_compose
template/stringstream when global C++ locale != "C"
2017-04-19 09:37:01 +10:00
Tim Mayberry
74301a5063
Use XMLNode::get/set_property in ARDOUR::LV2Plugin
2017-04-19 09:36:49 +10:00
Robin Gareus
a199477cf6
Improve plugin Ccategory consistency somewhat
2017-03-21 22:21:02 +01:00
Robin Gareus
1fe10c0e3e
Relax LV2 plugin filter to substring (e.g. "Utility", "MIDI Utility")
2017-03-21 19:44:22 +01:00
Robin Gareus
bdf41b0bf5
Implementations for Plugin-Preset-Load to set automation
2017-02-21 15:24:20 +01:00
Robin Gareus
7617477609
Scale default Atom Ringbuffer size with samplerate
...
This increases the safe-margin for plugins producing more messages
sent to the plugin GUI (usually fixed ~25Hz updates)
2017-01-19 21:35:22 +01:00
Paul Davis
0a167f5c99
Fix minimum/maximum discovery for integer params (from Hanspeter Portner)
2016-12-19 23:10:36 +00:00
Robin Gareus
3cc644b467
set AtomObject body ID to zero (as per spec when unused)
2016-12-05 15:43:54 +01:00
David Robillard
08fffeffec
Remove Evoral::MIDIEvent
...
It is slightly questionable whether type specific methods like
velocity() belong on Event at all, these may be better off as free
functions. However the code currently uses them as methods in many
places, and it seems like a step in the right direction, since, for
example, we might some day have events that have a velocity but aren't
stored as MIDI messages (e.g. if Ardour uses an internal musical model
that is more expressive).
In any case, the former inheritance and plethora of sloppy casts is
definitely not the right thing.
2016-12-03 15:18:21 -05:00
Robin Gareus
37137d5b3c
fix LV2 state versioning with session-templates
2016-11-14 01:40:57 +01:00
nick_m
33e95a1577
rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
...
- adds quarter_notes_per_minute(), note_divisions_per_minute (double)
pulses_per_minute() and frames_per_quarter_note()
- this should be a no-op except for the use of tempo by
the vst callback which definitely uses quarter notes per minute.
- the XML node for TempoSection named 'beats-per-minute'
has been renamed.
2016-11-11 03:37:08 +11:00
nick_m
594137f5cc
remove public pulse methods from TempoMap.
...
- the only object whose musical position is not expressed in
quarter notes is MetricSection.
there is now no need to expose this.
2016-11-11 03:37:08 +11:00
Robin Gareus
d253d49739
NO-OP, explanatory comments
2016-11-10 01:45:00 +01:00
Robin Gareus
ef3fa314f0
Parse PortGroups into Plugin::IOPortDescription
2016-11-10 01:31:56 +01:00
David Robillard
ea10a896c6
Fix LV2 state:StateChanged URI
2016-11-07 07:10:08 -05:00
Robin Gareus
e08c80370c
Fix midnam replacement:
...
Unloading before update may otherwise reset the patch to
generic midi (when the current patch is no longer available)
2016-10-30 21:24:26 +01:00
Robin Gareus
db2d238cec
Update prototype API ( 3f739738) for windows/dll compat
...
memory allocated by a .dll must be free()d by the given dll.
2016-10-30 17:39:55 +01:00
Robin Gareus
0ea9270a4b
avoid C++11 (and remove debug output)
2016-10-30 04:51:31 +01:00
Robin Gareus
3f73973806
Prototype LV2 extension for plugins to provide Midnams
2016-10-29 19:57:43 +02:00