summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
AgeCommit message (Collapse)Author
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.
2016-07-31Support LV2 log trace messagesDavid Robillard
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-15a-EQ: Remove LPF/HPF completely from this pluginDamien Zammit
2016-07-09move LatencyChanged detection from Plugin to Processor (plugin-insert)Robin Gareus
* support all Plugin APIs (not implementation specific) * also check for latency changes when plugins are hard en/disabled
2016-07-08add an plugin API to query generic-gui grid-layoutRobin Gareus
2016-07-05implement lv2:designation processing#enable (for bypass ports)Robin Gareus
2016-07-05add support for http://lv2plug.in/ns/ext/port-props/#rangeStepsRobin Gareus
2016-07-04LV2 render-value: override precisionRobin Gareus
lv2's units.ttl specifies "%f" for many values by default which results in useless high precision
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-06-05plugin support for Controllable::NotAutomatableRobin Gareus
2016-06-05prepare for LV2 non-automatable control portsRobin Gareus
2016-06-05refine self-automating plugin interfaceRobin Gareus
* thin automation at end * allow plugins to disable its internal write state (ctrl port) * Debug messages
2016-06-03allow latent self-automating pluginsRobin Gareus
2016-06-01isspaceRobin Gareus
2016-06-01strip trailing whitespace from lv2 log messageRobin Gareus
2016-05-27Tempo ramps - rename bbt_time() -> bbt_at_frame(), frame_time() -> ↵nick_m
frame_at_bbt()
2016-05-27Tempo ramps - rename for consistency, remove some testing code, add meter ↵nick_m
based bbt->pulse conversions.
2016-05-27Tempo ramps - respect tempo note type and meter note divisor correctly.nick_m
- tempo and meter position is now pulse-based, although meter still has a beat for convenience.
2016-05-27Tempo ramps - api rename, fix various meter and tempo dialog bugs.nick_m
2016-05-07fix LV2 locale guard (missed in 6d343ba search/replace)Robin Gareus
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-28add a debug message for LV2 per port buffer allocationRobin Gareus
2016-04-27tweak LV2 atom buffer allocation strategyRobin Gareus
Allow to re-use Midi buffers for GUI communication. Honor resize-port extension for all Atom Sequence buffers. (following example of http://lv2plug.in/book/#_sampler)
2016-04-24plug some memory leaks in libardourRobin Gareus
2016-04-17don't use lv2plug.in for non-standard URIsRobin Gareus
2016-04-15variable plugin port config.Robin Gareus
* extend plugin API (query IO ports) * collect possible variable plugin configurations (AU, Lua) * prepare semi-automatic configuration (presets: mono, stereo, N)