Skip to content

Commit d092e5b

Browse files
committed
If you're using Kontrol S MK2/A/M and OSARA, ReaKontrol will now report FX parameter values itself.
OSARA's control surface feedback is still a bit verbose in some cases. Also, ReaKontrol knows which parameter is being adjusted using Kontrol, so it can avoid reporting changes to other values. Contrary to previous guidance, you should now disable OSARA's "Report changes made via control surfaces" setting.
1 parent 57d5b09 commit d092e5b

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Earlier Kontrol keyboards do not officially support non-NKS FX parameters.
5050
However, ReaKontrol provides support for this.
5151
To access them, press the Mixer button on S MK2, or Track button on A/M series keyboards, then press the 4-d encoder.
5252
You then use the knobs to adjust parameters.
53-
If you're using a screen reader, you will need to enable OSARA's "Report changes made via control surfaces" setting to have parameter changes reported.
53+
If you're using a screen reader, you should disable OSARA's "Report changes made via control surfaces" setting, as ReaKontrol will report parameter changes itself.
5454
Note also that touching a knob will not provide any feedback.
5555
Instead, you can quickly turn a knob first to report its parameter and value.
5656
Subsequent turns will adjust the value.

src/niMidi.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,7 @@ class NiMidiSurface: public BaseSurface {
581581
FxMap _fxMap;
582582
int _suppressFxParam = -1;
583583
DWORD _suppressFxParamStartTime = 0;
584+
string _lastFxParamValueOsara;
584585

585586
void _onTrackBankChange() {
586587
if (this->_isUsingMixerForFx()) {
@@ -905,6 +906,11 @@ class NiMidiSurface: public BaseSurface {
905906
this->_selectedFx, param, value, valText, sizeof(valText));
906907
command = isMixer ? CMD_TRACK_VOLUME_TEXT : CMD_PARAM_VALUE_TEXT;
907908
this->_sendSysex(command, 0, numInBank, valText);
909+
if (osara_outputMessage && isMixer && param == this->_lastChangedFxParam &&
910+
this->_lastFxParamValueOsara != valText) {
911+
osara_outputMessage(valText);
912+
this->_lastFxParamValueOsara = valText;
913+
}
908914
}
909915

910916
void _navigateFxBanks(bool next) {

0 commit comments

Comments
 (0)