View Issue Details

IDProjectCategoryView StatusLast Update
0006657ardourbugspublic2022-12-24 21:21
Reporteryfkar Assigned To 
Status newResolutionopen 
Product Version4.X git (version in description) 
Summary0006657: NanoKONTROL2 does not get feedback from track record control and toggled controls in plugins
DescriptionTested on revision 4.4-145-g3e3a5e1 with a nanoKONTROL2 in CC mode.

Issue: Pressing a button on the nanoKONTROL2 sends a CC message. The nanoKONTROL2 expects to receive the new status as a feedback CC message to update the corresponding status LED. This works on solo and mute for tracks but not for the record button. Feedback fails also when a nanoKONTROL2 button is bound to a toggled control in a plugin. However, the feedback is sent correctly if the control is toggled in Ardour instead of the midi device.
Additional InformationLooking at, the previous control value from/to the midi device is stored in last_value. When writing midi feedback, if the value being sent is the same as last_value, feedback is aborted. What this means that none of the buttons should get feedback since the device expects to receive the same value it sent.

Why do the solo and mute buttons work then?

It turns out that MIDIControllable::midi_sense_controller sets the new value using controllable->set_value() and then uses controllable->get_value() to update last_value. However, Route::SoloControllable::set_value() and Route::MuteControllable::set_value() both put the new value in an asynchronous queue, which is why controllable->get_value() called immediately after set_value() usually returns the unchanged value instead of the new value. Now the current value is different from last_value and Ardour happily sends it as feedback.

TagsNo tags attached.


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2015-10-28 01:09 yfkar New Issue
2022-12-24 21:21 sollapse Issue cloned: 0009183