summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin.cc
AgeCommit message (Collapse)Author
2020-01-07plugins should NOT resolve MIDI notes at loopendPaul Davis
Their data will come from (1) disk, in which case the DiskReader will do the resolve (2) live input in which case the player/user will do the resolve
2019-11-15fix questionable and not entirely intended change that was a part of ↵Paul Davis
dad47e445cb349
2019-11-06remove debug outputPaul Davis
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-01Handle Lua DSP script load failure (unknown plugin)Robin Gareus
This handles a very specific edge-case: A script that was successfully parsed before, fails load on session state restore.
2019-10-15NO-OP: indent, comments and consistencyRobin Gareus
2019-10-13Fix fan-out channel-assignmentRobin Gareus
2019-10-02remove all use of NO_PLUGIN_STATE #ifdefPaul Davis
We determined several years that we should never ever do this, and changed the basis for the free/demo copy because of that.
2019-08-29No-OP: move doxygen doc into header filesRobin Gareus
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-06-03Assume default plugin bussing is stereoRobin Gareus
This changes fan-out to prefer stereo tarcks unless specified otherwise by a plugin (LV2 port-groups, or AU busses)
2019-02-28Fix analysis plugin when using plugin-presetsRobin Gareus
2019-02-28Allow to special case plugins used for IR analysisRobin Gareus
This is relevant for some VST specifics (e.g connected pins) or similar audioMasterCallbacks that use either global or plugin-insert specific data.
2019-02-17Clean up Latency API (Processor vs Plugin)Robin Gareus
Plugins are only a source of Latency (Plugin delay). The API to query, signal and override Latency is managed by PluginInsert.
2018-12-02Restore actual plugin-preset on session-loadRobin Gareus
This checks if the preset is actually available on the given system and also sets the user-flag correctly.
2018-11-04Optimize Plugin connect & run API, use const mapsRobin Gareus
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-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-09Allow to send MIDI data directly to a pluginRobin Gareus
2017-06-23Remove unnecessary LocaleGuard header includeTim Mayberry
2017-06-22Remove LocaleGuard from Plugin::get_stateTim Mayberry
Let the plugin implementation of Plugin::add_state use a LocaleGuard if it is necessary (VST/LV2). This puts the LocaleGuards where they are required but the LocaleGuards in Session::set/get_state will mean these LocaleGuards are a noop. They are still useful for documentation purposes and in case the code is called from a non-Session context at some point.
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-04-25Add an API to conveniently query plugin-parameter labelsRobin Gareus
2017-04-19Use XMLNode::get/set_property API in ARDOUR::Plugin classTim Mayberry
2017-04-12Fix setting Plugin-Owner (route) for analysis pluginsRobin Gareus
2017-03-12Fix issue with automation-playback constantly marking a session dirty.Robin Gareus
2017-01-20Fix oddities when replacing VST-presets.Robin Gareus
VST used the count of available of presets as URI: - add 2 presets (1,2) - remove first, add another one -> two presets with same URI (2,2) PluginInfo::get_presets() simply lists all (name only) in a vector. Plugin::find_presets() uses the URI in a map (unique by URI). ..various ensuing bugs: eg. Plugin::remove_preset() looked up by name, but didn't check for NULL.
2016-11-13Mac VST-2.x supportRobin Gareus
2016-10-07Clean up is_instrument vs needs-midi-in APIRobin Gareus
The latter is only really relevant for Audio Units. This fixes an issue with vocoders or audio-plugins that simply have a MIDI input for other purposes to be wrongly categorized as Instruments.. .. and thereby override strict-i/o rules (prefer stereo)
2016-09-13change all MIDI read-from-source to map all events into the loop-range for ↵Paul Davis
seamless looping (if using)
2016-08-06mark session dirty when changing plugin presetsRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
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-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-04-29don't special case lua processors, use plugin-managerRobin 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)
2016-04-03add Plugin API to query port-labels and side-chain property.Robin Gareus
2016-03-19fix plugin preset listingRobin Gareus
2016-02-23Implement Lua DSP processor/pluginRobin Gareus
2016-01-09and again.Robin Gareus
2016-01-09fix typo in ce7d18bc16Robin Gareus
2016-01-09don't allow to delete factory presetsRobin Gareus
2016-01-08remove default implementation to query plugin-preset namesRobin Gareus
2016-01-07Add API to allow querying plugin-presets without instantiating the pluginRobin Gareus
2015-12-25Keep plugin presets in sync across plugin-instances.Robin Gareus
2015-11-29fix seamless midi-looping - fixes #5438Robin Gareus
well, now... - Midi-Ports have a midi-buffer. - Midi-Tracks have a midi-buffer. - Midi-tracks have a diskstream. - Midi-diskstream has a midi-ring-buffer. - Midi-tracks have a delivery - The delivery can get a reference to the actual backend-ports - The delivery calls the Midi-Port's flush() buffer to send out queued events at the end of a cycle all clear ? :) - when splitting the process-cycle: only the Ports are informed. all other objects see a "normal" short process cycle starting at "0". The offset needs to be applied early on, so that internally routed buffers push the event at the correct time when combining the buffer with immediate and async events. Luckily Port::port_offset() is a static member, available to all, objects, which allows to bridge the conceptual gap between the diskstream and the delivery. There's a snag: When there's a note-on directly at the beginning of the loop it coincides with the panic message sent when looping. The panic comes before note events, so it *should* be good. Also the final note-offs (state tracker end of loop/region) are sent 1 sample too early (smells like an off-by-one), and are hence dropped. (no matter we send a panic right after it). It should really be at the same time, just before the panic.
2015-10-20rename Plugin::ParameterChanged to ParameterChangedExternally to reflect its ↵Paul Davis
intent, and clean up the libardour side of result. The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST) has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.
2015-10-20Revert "rename ParameterChanged signal in Plugin to ↵Paul Davis
ParameterChangedExternally to reflect its intent, and clean up the result." This reverts commit 336b2eb9a4a8634bae84a15e952d20335aa28c12.