43bed39d30
Reset MIDI-control when a given ctrl is not available
...
This fixes an issue with "/route/eq/freq/0 S1":
When a newly select strip that does not have a EQ
(e.g. mixbus or master), the control from the previously
selected strip is used. -- Reported by tavasti on IRC.
2020-02-20 19:13:58 +01:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
9ac18a8e0f
Generic-MIDI ctrl: tweak pitch-bend message behavior
...
Add support for smoothing, ignore message when controllers are
not in sync to avoid discontinuous jumps.
This is mainly useful for Mackie-like devices that use pitch-bend
messages for faders.
see also https://discourse.ardour.org/t/feature-lazy-sliders/100961
2019-05-09 16:06:00 +02:00
5bde8f4456
Tweak initial generic-midi sync/smoothing
...
"last_controllable_value" is using midi value range (0..127).
It is used to compare received midi-value with the actual controllable
for non-motorized surfaces, and this change allows the first
event to already be in_sync.
Previously the first MIDI-event was usually ignored (because
last_controllable_value was out of bounds or didn't match the 0..127
range.
2019-05-05 02:49:53 +02:00
3448f3151e
NO-OP: whitespac
2019-03-23 17:35:26 +01:00
c97116083f
Fix generic-midi controllable race-condition
...
Continued work after e9b36f2bea
. Prefer a shared_ptr<>.
MIDIControllable::write_feedback() runs in realtime context, directly
from the main process-thread. Synchronizing weak-pointers and deletion
across threads does not work reliably. Retaining a shared_ptr<> for
controllables that are in use can solve this.
2019-03-23 16:32:48 +01:00
73029d45ba
Re-add global lookup for generic-midi ctrl state
2019-03-23 04:24:39 +01:00
e9b36f2bea
Update GenericMidiControlProtocol to use shared/weak Controllable pointers
...
This fixes a race-condition when a controllable is deleted
while sending feedback to the device.
Previously there was a race-condition MIDIControllable::write_feedback()
triggered from rt-thread, processed in Surface-thread and deleting
a route or processor.
This is a first step, currently state-restore is not fully functional
session->controllable_by_id() does not cover all Controllables.
2019-03-23 02:09:39 +01:00
8725ed5bd1
add Ctl_Dial to get better behaviour when binding a MIDI controller KNOB/DIAL to a toggled controllable.
...
No intent to change Ctl_Momentary or Ctl_Toggle behaviour, plus I tried to document what they are intended to support
2018-06-21 22:28:11 -04:00
8a18929d57
remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
...
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
Jan Lentfer
a2af019c95
generic_midi: add proper handling of midi controll toggles
2018-03-03 14:04:12 +01:00
567c0a8f53
Switch to PBD control-math and prefer Controllable API
...
Note: Control-surfaces should always use interface_to_internal()
and internal_to_interface().
2017-06-21 18:12:04 +02:00
f82cb87f0c
Use XMLNode::get/set_property API in MIDIControllable class
2017-04-19 09:36:54 +10:00
cdddf79bcf
Generic MIDI controls should affect group members too, if they exist
2017-01-31 15:33:13 +01:00
93f837b43e
generic MIDI: put controllables into touch mode (if appropriate) when data is received
2017-01-23 13:25:56 +01:00
f05a07837b
MIDI leaks -- the Controllergate conspiracy debunked
2017-01-20 11:40:53 +01:00
81123a774a
amend 3afe3f32df
(remove unused global feedback option)
...
That commit accidentally removed unrelated code in generic-midi surface
which just happened to have the same name (get/set_midi_feedback) as the
unused preference.
Regardless, there was more cruft there. GMCP midicontrollables now use
the control surfaces' feedback option.
2016-12-31 15:20:07 +01:00
5156b8aeb5
White space fix only. (Spaces to tabs)
2016-07-10 08:20:05 -07:00
d5127001bb
move ControllableDescriptor from libpbd to libardour; add support for describing VCAs
2016-05-31 15:30:42 -04:00
dd05f1e257
Fix bug #5633 , Don't drop all midi bindings when a track is removed
...
Only drop the controllable that is being destroyed, not all of them.
2016-02-03 22:30:41 +10:00
0ddbf665d8
generic MIDI: if a CC is bound to a toggled controllable, toggle the controllable only when the incoming CC value > 0x40
...
See comment in code for more details
2016-02-02 22:28:36 -05:00
ddb362fe17
Generic MIDI: add ToggleRecEnable action, and change all maps to use that instead of separate rec-enable, rec-disable, which didnt work
2016-01-14 16:37:54 -06:00
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
634321ba45
Fix Trim control range does not match control (issue #6696 )
2015-12-13 15:53:24 -08:00
3c9b71b50e
allow use of (N)RPN messages in generic MIDI binding maps (UNTESTED)
2015-11-23 12:27:51 -05:00
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
1a51f19493
Clean up extra white space added by editor.
2015-07-27 16:17:38 -04:00
8b4a237ee3
Handle the 4 common encoder types.
2015-07-27 16:17:38 -04:00
d3b4ef4eed
Add enc to midi map for mcp style encoders.
2015-07-27 16:17:38 -04:00
ae3d4efce0
Make program change toggle or 1 only.
2015-07-27 16:17:38 -04:00
6ab04a27c3
Allow any one midi event to control only one thing.
2015-07-27 16:17:38 -04:00
ed8ab2c80a
Fixed pb in toggle mode to switch at half way ( fixes #6424 )
2015-07-10 16:52:43 -04:00
a29b050883
Fixed generic MIDI program change event size to two bytes ( fixes #6426 )
2015-07-10 16:52:43 -04:00
6349570fb2
Add debug for generic midi control
2015-07-10 16:52:43 -04:00
8c9749e42f
merge with master and fix 4 conflicts by hand
2014-06-02 11:32:13 -04:00
af0c42ec4f
midi-controller, support log parameters - fixes #5890
2014-03-23 18:59:24 +01:00
bb826f4bee
incomplete merge of master into windows (requires upcoming changes to master to be complete)
2013-09-12 11:28:50 -04:00
7b5d72eabd
'surfaces/generic_midi' - Specify 'MIDI::byte' instead of 'byte' so the compiler knows which one we mean
2013-09-05 09:50:58 +01:00
1ab61b8564
major redesign of MIDI port heirarchy and management (part 2)
2013-08-07 22:22:11 -04:00
1f9b0a86bd
fix crash when deleting a processor with a controllable ( #5284 )
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13943 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-21 13:20:43 +00:00
5adcb61f60
a few small fixes that help pitchbend control of things, notably the shuttle controller. but note that basically, teh shuttle controller is completely and hopelessly broken through excess complexity and incorrect design
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13870 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-17 14:48:17 +00:00
37906d067e
feedback for toggled MIDI controls now sends 0 or 127, not various in-between values (should fix #5117 , without any bad side-effects
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13680 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-19 01:28:41 +00:00
b2bbc44eaa
forward-port generic MIDI and transport controllable changes from 2.X
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13066 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-23 13:31:51 +00:00
Carl Hetherington
b97a1bfb97
Connect to controllable->Destroyed in all cases; fixes crash on route removal.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12959 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-28 15:38:07 +00:00
266030b79c
some generic midi debugging plus an assert
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12950 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-26 20:49:52 +00:00
dde521f2c6
fix up some issues introduced by lifecycle tracking of Controllable in Generic MIDI control code
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12947 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-26 19:10:11 +00:00
a054a74dd2
disconnect from a Controllable when it is destroyed
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-26 01:55:53 +00:00
92469df6ab
add late/lazy binding between generic MIDI bindings and controllable elements in the session. this allows you to load a binding map that refers to elements that have not yet been created in the session, and when they are created, the binding will work
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12921 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-25 12:33:13 +00:00
Carl Hetherington
72642335d1
Slightly tweaked patch from royvegard to add optional threshold for catch-up of non motorised controls in generic MIDI surfaces ( #4828 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12716 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 21:53:50 +00:00