Robin Gareus
5a79782ef3
Generalize owner->RPC() API from VST3 to plugin.h
2025-11-22 17:51:09 +01:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
...
the rest from `tools/convert_boost.sh`.
* replace boost::function, boost::bind with std::function and std::bind.
This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Robin Gareus
2d7cce44f1
Replace PBD::Signals (1/2)
2024-10-18 20:41:08 +02:00
Robin Gareus
520bbfe515
Add proper API to expose plugin tailtime
...
This is in preparation to display current tail time,
and allow a user to override it.
This is similar to existing processor latency API.
2024-08-31 02:55:04 +02:00
Robin Gareus
15c7603fdd
Add API to query plugin tail duration
...
So far only VST3 plugins have an actual implementation.
2024-08-17 16:47:30 +02:00
Robin Gareus
b4fca7bc1c
Refactor API to allow VST2 plugins to callback to I/O and RegionFx
2024-08-17 16:47:26 +02:00
Robin Gareus
828d45c6fa
Disambiguate In/Out etc for translations (2/2) #9512
2023-10-28 14:46:04 +02:00
Robin Gareus
b51cf0ed95
Plugin: fix additive note resolution
...
When stopping transport in the middle of a note, each plugin
will resolve the note, resulting in multiple duplicate note-off
events.
2023-06-30 17:12:16 +02:00
Robin Gareus
9242e615ce
Plugin: track only events for current cycle
2023-06-30 17:12:15 +02:00
Robin Gareus
ee0693d121
Properly clear preset-list (compare to invalidate_preset_cache)
2023-06-28 19:16:16 +02:00
Robin Gareus
10d12599dd
Sort plugin presets by default
2022-12-19 16:41:41 +01:00
Robin Gareus
c991016021
Consolidate plugin API to access parent insert
...
Previously this was special cased only for VST for callbacks
from the plugin (e.g. check pin connections), but it is generally
useful.
2022-08-05 01:17:59 +02:00
luz paz
36ae8e7022
Fixed typo that may also be a bugfix
2022-05-11 00:14:28 +02:00
Paul Davis
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
Robin Gareus
4bd1e2e184
NO-OP: consolidate code (VST ID by name)
2021-07-03 19:07:27 +02:00
Robin Gareus
23c9d1b732
AU: Support loading sessions using numeric AU IDs
2021-07-03 19:07:26 +02:00
Robin Gareus
2f68656679
Update API to send immediate events
...
This is to allow passing the EventType to the Buffer, using a
consistent {[Time], Type, size, data} API, that is equivalent
for all classes.
This is particularly useful for Lua scripts and plugin UIs
than can call `write_immediate_event()` while being ignorant
where the data is routed to (MIDI tracks, plugins, processors).
2020-09-20 19:16:43 +02:00
Robin Gareus
0ca0b4f335
VST3 skeleton
2020-09-16 22:49:19 +02:00
Robin Gareus
c5014d9d9e
Remove unused LV2 ifdef 1/3
...
LV2 has been mandatory since 6.0 (04ccd328dc )
2020-09-15 17:01:32 +02:00
Robin Gareus
68b23b9f82
Skip presets lookup for empty prest URI
2020-09-14 23:37:22 +02:00
Robin Gareus
1a50b6b8ea
Update Plugin API to allow timestamped parameter changes
...
This is in preparation for VST3 automation.
2020-09-14 23:37:21 +02:00
Robin Gareus
6d83e47860
Fix Plugin-preset saving when preset exists
...
Previously the GUI explicitly called remove_preset() before
saving a plugin-preset. This functionality is now moved
into the backend.
This fixes a case when a user tries to save/replace factory presets
and works around https://github.com/lv2/lilv/issues/37
2020-06-24 23:59:09 +02:00
Robin Gareus
1674261f89
On plugin internal-state change, mark preset as modified
2020-06-21 17:36:01 +02:00
Robin Gareus
0e37759495
Synchronize preset changes of plugin-instances
...
When adding or removing a plugin preset, all instances
of the same plugin need to be notified to update their
preset list.
2020-06-11 19:42:37 +02:00
Paul Davis
5948d14012
plugins should NOT resolve MIDI notes at loopend
...
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
2020-01-07 19:27:04 -07:00
Paul Davis
bd509bba49
fix questionable and not entirely intended change that was a part of dad47e445c
2019-11-15 20:40:23 -07:00
Paul Davis
dad47e445c
remove debug output
2019-11-06 23:54:47 -07:00
Paul Davis
625b8297ea
fix unconditional note resolution during DiskReader::realtime_locate()
...
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-06 22:12:40 -07:00
Paul Davis
febaa1ff2d
fix unconditional note resolution during DiskReader::realtime_locate()
...
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-06 16:00:31 -07:00
Robin Gareus
a5140f4558
Handle Lua DSP script load failure (unknown plugin)
...
This handles a very specific edge-case: A script that was
successfully parsed before, fails load on session state restore.
2019-11-01 15:54:36 +01:00
Robin Gareus
7e5120e7c9
NO-OP: indent, comments and consistency
2019-10-15 12:26:14 +02:00
Robin Gareus
7fb259ece2
Fix fan-out channel-assignment
2019-10-13 23:12:38 +02:00
Paul Davis
f470d3e856
remove all use of NO_PLUGIN_STATE #ifdef
...
We determined several years that we should never ever do this,
and changed the basis for the free/demo copy because of that.
2019-10-02 18:04:40 -06:00
Robin Gareus
08644d8f2a
No-OP: move doxygen doc into header files
2019-08-29 17:57:22 +02:00
Robin Gareus
a22f918d9d
Update libardour GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
Robin Gareus
dba3ff5236
Assume default plugin bussing is stereo
...
This changes fan-out to prefer stereo tarcks unless specified otherwise
by a plugin (LV2 port-groups, or AU busses)
2019-06-03 16:28:10 +02:00
Robin Gareus
d2b73141af
Fix analysis plugin when using plugin-presets
2019-02-28 04:49:27 +01:00
Robin Gareus
5d4fbcb1ea
Allow to special case plugins used for IR analysis
...
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-28 04:49:00 +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
Robin Gareus
53a0199a06
Restore actual plugin-preset on session-load
...
This checks if the preset is actually available on the given system
and also sets the user-flag correctly.
2018-12-02 01:36:32 +01:00
Robin Gareus
cbef72b8a1
Optimize Plugin connect & run API, use const maps
2018-11-04 02:16:34 +01: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
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
2ca3009143
Allow to send MIDI data directly to a plugin
2017-09-09 03:08:46 +02:00
Tim Mayberry
d972fa431c
Remove unnecessary LocaleGuard header include
2017-06-23 09:12:53 +10:00
Tim Mayberry
a5836e2922
Remove LocaleGuard from Plugin::get_state
...
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-22 10:48:38 +10: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
c3390a2c4b
Add an API to conveniently query plugin-parameter labels
2017-04-25 14:01:00 +02:00
Tim Mayberry
64e1bf5ab7
Use XMLNode::get/set_property API in ARDOUR::Plugin class
2017-04-19 09:36:49 +10:00
Robin Gareus
64f40c09fa
Fix setting Plugin-Owner (route) for analysis plugins
2017-04-12 17:37:26 +02:00