summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
AgeCommit message (Collapse)Author
2018-07-10Fix lv2-state templates with external files.Robin Gareus
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-06-09Hide designated LV2 freewheeling port.Robin Gareus
2018-02-03Make sure that 'libardour-config,h' only gets #included when building with ↵John Emmas
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-01-30Update plugin classificationRobin Gareus
* dedicated API for classes (effect, instrument, util) * prepare for tags (rather than categories) * prepare removal of per-plugin in_category() API
2017-10-23lv2 compat for liblilv < 1.10.0Robin Gareus
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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-09LV2/midnam tweaks - fix race conditionsRobin Gareus
* 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-08Add LV2 extension to notify host about midi-bank/pgm state.Robin Gareus
2017-08-11yet another Windows build fix (LV2 preset 89475b2c9)Robin Gareus
2017-08-11Fix Windows builds (amend 89475b2c)Robin Gareus
2017-08-11Fix LV2 Preset path for windowRobin Gareus
2017-07-31Signal wish to show inline display in gui by lv2:optionalFeatureJohannes Mueller
... in .ttl file rather than by extension_data() in code. That's more in the spirit of LV2.
2017-07-31Indicate whether to show plugin's inline display in GUIJohannes Mueller
This is currently done by an extension data similarly to LV2_INLINEDISPLAY__interface.
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-01Fix thinko in dd3f922788Robin Gareus
2017-06-30Tweak LV2 float parameter printingRobin Gareus
2017-06-22Remove locale_guard.h from ardour/ardour.h headerTim Mayberry
Add to source files that use LocaleGuard Results in far less recompiling when pbd/locale_guard.h changes
2017-06-21Consolidate ParameterDescriptor settings+rangesRobin Gareus
2017-06-21remove min/max unbound -- LADSPA special case.Robin Gareus
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-11a-EQ: Tweak knob layout to be less confusingDamien Zammit
2017-04-19Use PBD::to_string to set state-dir property in LV2PluginTim Mayberry
To prevent issues with numeric grouping with formatting used by string_compose template/stringstream when global C++ locale != "C"
2017-04-19Use PBD::to_string() in LV2Plugin instead of string_compose for state_dirTim Mayberry
To prevent issues with numeric grouping with formatting used by string_compose template/stringstream when global C++ locale != "C"
2017-04-19Use XMLNode::get/set_property in ARDOUR::LV2PluginTim Mayberry
2017-03-21Improve plugin Ccategory consistency somewhatRobin Gareus
2017-03-21Relax LV2 plugin filter to substring (e.g. "Utility", "MIDI Utility")Robin Gareus
2017-02-21Implementations for Plugin-Preset-Load to set automationRobin Gareus
2017-01-19Scale default Atom Ringbuffer size with samplerateRobin Gareus
This increases the safe-margin for plugins producing more messages sent to the plugin GUI (usually fixed ~25Hz updates)
2016-12-19Fix minimum/maximum discovery for integer params (from Hanspeter Portner)Paul Davis
2016-12-05set AtomObject body ID to zero (as per spec when unused)Robin Gareus
2016-12-03Remove Evoral::MIDIEventDavid Robillard
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-11-14fix LV2 state versioning with session-templatesRobin Gareus
2016-11-11rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.nick_m
- 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-11remove public pulse methods from TempoMap.nick_m
- the only object whose musical position is not expressed in quarter notes is MetricSection. there is now no need to expose this.
2016-11-10NO-OP, explanatory commentsRobin Gareus
2016-11-10Parse PortGroups into Plugin::IOPortDescriptionRobin Gareus
2016-11-07Fix LV2 state:StateChanged URIDavid Robillard
2016-10-30Fix midnam replacement:Robin Gareus
Unloading before update may otherwise reset the patch to generic midi (when the current patch is no longer available)
2016-10-30Update prototype API (3f739738) for windows/dll compatRobin Gareus
memory allocated by a .dll must be free()d by the given dll.
2016-10-30avoid C++11 (and remove debug output)Robin Gareus
2016-10-29Prototype LV2 extension for plugins to provide MidnamsRobin Gareus
2016-10-19Use official LV2 state:StateChanged URIRobin Gareus
http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e
2016-10-13Allow a LV2 plugin to mark the session dirtyRobin Gareus
If some plugin-internal state changes (GUI <> Plugin e.g. load a sample) no ports change and the host does not know that the plugin state has changed. The session may be closed without save. This is a prototype using an ardour.org URI, pending upstream lv2plug.in
2016-09-21add a static flag to force writing LV2 stateRobin Gareus
This is needed for save-as and archiving, LV2 state may not be saved otherwise if lilv_state_equals() returns true. Also if thestate is saved as part of save-as or archiving or template, the state-version did increase. Upcoming normal save will reference a plugin state that does not exist in the current session bundle.
2016-09-18add support for LV2 #coarseBlockLength and #enabledRobin Gareus
this deprecated previously non-standard extensions
2016-08-27Add automatable click-free bypass/enable feature to a-eqRobin Gareus
2016-08-23fix threaded state restore (duplicate calls to restore during init)Robin Gareus
and also allow immediate work during use latency-compute runs. At session load, Ardour calls a plugins "set default" state (GUI thread). Some plugins may schedule work during state-restore. Ardour immediately proceeded to restore the actual session plugin state without processing the already scheduled work and without calling run() for a plugin to apply state synchronously.
2016-08-17fix LV2 BPM report (use ramped tempo)Robin Gareus
2016-08-16Also send lv2:timePosition whenever BBT or Tempo changesRobin Gareus
This mostly fixes an issue with notifying plugins about tempo-ramps and BPM changes. remaining to be fixed (in tempo.h): ``` _session.tempo_map().metric_at(frame_position).tempo().beats_per_minute() ``` currently returns the most recent *fixed* tempo at or before `frame_position`. All other Plugin types are affected by this as well.
2016-07-31Fix state features arrayDavid Robillard
2016-07-31Support thread-safe LV2 state restorationDavid Robillard
The original LV2 state extension required that run() is suspended during restore(). Ardour violates this rule, which can lead to crashes and other issues. The state extension has been updated to allow restoring state in a thread-safe way by using the worker to enqueue state changes. This commit supports that new specification, i.e. supports dropout-free state restoration properly. However, the bug with old plugins that do not use this facility is still not fixed.