Commit Graph

6140 Commits

Author SHA1 Message Date
Robin Gareus
1e5bcc4f76 re-map lv2-port (symbol) with Controllable ID
LV2 plugin port indices can change, so we need to save the symbol name
with the controllable and look up the port-index on load.
2016-01-03 18:15:59 +01:00
Paul Davis
9e3299f97d change Controllable::set_value() API to include grouped control consideration.
This also removes Route::group_gain_control() and associated machinery.
Not yet tested with Mackie or other surfaces. More work to done to
start using the group capabilities, and also potentially to add
or derive more controls as RouteAutomationControls
2016-01-02 04:58:30 -05:00
Paul Davis
b5ed8495fb remove debug output 2016-01-01 06:58:56 -05:00
Paul Davis
b390d8c8a6 possible extra housekeeping for control protocol modules.
Currently this code isn't reached because we never call ControlProtocolManager::teardown() on inactive protocols. But at some point it might be appropriate to unload modules (.so/.dll/.dylib) even if the protocol was never instantiated
2015-12-30 04:11:14 -05:00
Paul Davis
2c6d92ec96 safer housekeeping for control protocol descriptors 2015-12-30 03:51:00 -05:00
Robin Gareus
75021abfd6 some good practice. 2015-12-30 00:45:24 +01:00
Robin Gareus
d58f68ae97 fix control surface discovery crash:
On OSX unloading a module deletes all references to it and
the descriptor becomes invalid.
2015-12-30 00:41:33 +01:00
Robin Gareus
2c95cb0652 keep AU cache in cache-dir 2015-12-29 23:11:01 +01:00
Paul Davis
6a8b8c8523 add check for descriptor when deciding whether to register a control surface request buffer factory 2015-12-29 05:20:50 -05:00
Robin Gareus
6f347d325a prepare VST window resize
(this only triggers resizing the parent container window (like user
resizes), which is not sufficient for all plugins.
2015-12-28 23:43:59 +01:00
Robin Gareus
be3d8bc3d0 add midi-track mute automation 2015-12-28 18:30:46 +01:00
Paul Davis
0d9efc1148 redesign cross-thread registration/signalling system
This new design will work even when threads that need to receive
messages from RT threads are created *after* the RT threads. The
existing design would fail because the RT thread(s) would never
be known the later created threads, and so signals emitted by the
RT thread and causing call_slot() in the receiver would end up
being enqueued using a lock-protected list. The new design ensures
that communication always uses a lock-free FIFO instead
2015-12-28 10:14:17 -05:00
Robin Gareus
dd9e0e49a0 proper display name for Monitor Processor 2015-12-27 18:36:20 +01:00
Robin Gareus
435dd4e98f fix samplerate initialization. 2015-12-26 04:52:08 +01:00
Robin Gareus
81a3ae985d Keep plugin presets in sync across plugin-instances. 2015-12-25 22:38:48 +01:00
Robin Gareus
b92f208b52 don't assume plugin presets start their numbering at zero. 2015-12-25 17:12:37 +01:00
Robin Gareus
a8159326b8 add a PluginPreset struct: combined plugin-info + preset-record
...in preparation to allow adding presets directly.
2015-12-25 14:38:31 +01:00
Robin Gareus
9cddc7cda0 add monitor-processor pre-fader (not at the top) 2015-12-23 14:35:31 +01:00
Edgar Aichinger
751e6a3dbc Update German Translation for libardour 2015-12-23 12:43:54 +01:00
Nil Geisweiller
742d176479 Fix overlapping resolution (see issue #177)
It assumes that a note ending at the same time of another one starting
is not considered overlapping.
2015-12-22 04:52:50 +01:00
Nil Geisweiller
3a6f62d238 Fix indentation (whitespace -> tab) 2015-12-22 04:52:50 +01:00
Robin Gareus
dc20611933 add signal for Plugin Status Changes (Hidden/Favorite) 2015-12-22 04:25:37 +01:00
Robin Gareus
66bc06051b add monitor-section processor limitations. 2015-12-21 14:38:16 +01:00
Robin Gareus
d9eb5e00c5 cont'd work on plugin-state templates - #6709
Refactor and consolidate code and re-use it for session-templates.
This avoids recursive copying of the plugin-dir()
2015-12-19 14:46:15 +01:00
Robin Gareus
ec9a8f022c open Finder/Explorer/File-manager in case of session-dir ambiguity. 2015-12-18 17:46:08 +01:00
Robin Gareus
6e7ce525f7 cleaner version of 7383ea6a (duplicate plugin state) 2015-12-18 14:55:33 +01:00
Robin Gareus
3eb04c3c23 save/restore plugin state with track-template 2015-12-18 14:27:15 +01:00
Robin Gareus
7b6ef41f0c leave some todo-notes #6709 (track templates & state) 2015-12-17 23:48:06 +01:00
Robin Gareus
7383ea6a35 properly copy plugin state when duplicating routes. #6709
This is not a really elegant solution. Something had to come up and
ruin the neatness of the thread-private regenerate_xml_or_string_ids :)
2015-12-17 23:47:50 +01:00
Paul Davis
cfff528ae9 expose the right panning parameters for ardour 2015-12-16 11:05:11 -05:00
Alexandre Prokoudine
90f64364cb Update Russian translation 2015-12-16 12:47:24 +01:00
Paul Davis
11f069f118 add new automation types for EQ and compression 2015-12-16 06:30:43 -05:00
Paul Davis
ab3f0f75a8 new route API to discover/access well-known automation controls for panning, EQ and compression.
The EQ and compression parts do nothing for Ardour, where there is no identifiable and understood plugin to perform their
roles. They do work on mixbus, which also serves as a model for how to do this.
2015-12-16 06:00:56 -05:00
Robin Gareus
f05afd973b update URI (see lv2-dev email list) 2015-12-15 09:07:00 +01:00
Robin Gareus
a168d8b75e explicitly disallow looping with external-sync
amend 939808a7
2015-12-15 08:39:09 +01:00
Robin Gareus
756a4cd85f API consistency 2015-12-13 18:32:55 +01:00
Robin Gareus
03ed30ac9b update LV2 URI 2015-12-13 18:29:44 +01:00
Len Ovens
7ffeb70b1b Fix ff->stop->play not at speed 1.0 on Mackie Control and some key bindings. 2015-12-13 09:16:57 -08:00
Robin Gareus
dac57703cc correct name of Midi-UI thread memory-pool and request-queue 2015-12-12 14:45:17 +01:00
Robin Gareus
5630332797 fix LV2 plugin state for copied plugins. 2015-12-10 19:31:00 +01:00
Robin Gareus
699f9b097d LV2 specific instrument-plugin check 2015-12-10 17:20:08 +01:00
Len Ovens
e18ea188f4 Fix Mackie control Gain while in flip mode (vpot control of gain) 2015-12-09 09:21:36 -08:00
Edgar Aichinger
ba3936391a update german translation 2015-12-09 13:22:25 +01:00
Robin Gareus
8bfa7d95c1 fix/workaround OSX "No Memory Pool"
fixes issue on MacBookPro11,1 OSX 10.10

* Coreaudio: internal speaker + internal Mic
* start recording
* plug-in headphone
* stop recording 
-> crash
  process_callback -> [..] stop_transport -> no RT memory pool
  for realtime event.
2015-12-09 11:13:18 +01:00
Ben Loftis
43d3bf5696 Set_self_solo should always set the mute_master state as well.
This fixed a bug in mixbus when a session was reopened with a soloed bus.
This may not be necessary in Ardour but I think it is more correct.
2015-12-08 15:44:11 -06:00
Robin Gareus
2f5c4c29c6 2K? that's micro -- use macrosoft for lots a files, please! 2015-12-08 18:39:56 +01:00
Paul Davis
1c8ad40339 touch peakfile after closing a SndFileSource
libsndfile (can|may) update the headers at close, which can lead to the file being marked newer than the peakfile,
thus causing a rebuild of the peakfile at session (re)load.

Originally detected by Grygorii
2015-12-08 09:07:51 -05:00
Robin Gareus
de877cb497 add config variable to en/disable opening the plugin gui after adding a plugin 2015-12-08 13:44:05 +01:00
Paul Davis
41b2de41d6 change API for accessing session MIDI ports so that (1) boost::shared_ptr<> is used all the time (2) we avoid using multiple functions to return different subclass versions of some ports 2015-12-07 12:38:17 -05:00
Robin Gareus
065d7c852a outline a "NoSampleAccurateControl" LV2 feature:
Since control-ports have a fixed value for the current process-block,
Ardour splits a plugin's run() process cycle on every automation event
to facilitate sample-accurate automation.

Since automation is interpolated between events, this ensures that each
explicit automation point is reached (not interpolated).

Plugins where this is not required and which favor a fixed block-size,
can now specify an optional Feature: NoSampleAccurateControl.

One example: a convolution plugin with smoothed gain control.
2015-12-06 14:27:24 +01:00