@@ -181,11 +181,34 @@ KAOSSDJ.scratchMode = function(channel, _control, value, _status, _group) {
181181} ;
182182
183183KAOSSDJ . fxToggleButton = function ( channel , _control , value , _status , _group ) {
184- KAOSSDJ . updateDeckByChannel ( channel , "fx " , value === MIDI_ON ) ;
184+ KAOSSDJ . updateDeckByChannel ( channel , "isFx " , value === MIDI_ON ) ;
185185} ;
186186
187- KAOSSDJ . fxKnob = function ( _channel , _control , _value , _status ) {
188- // TODO
187+ KAOSSDJ . fxKnob = function ( _channel , _control , value , _status , _group ) {
188+ if ( KAOSSDJ . shiftLeftPressed ) {
189+ // If Left Shift is pressed, cycle the effects chains on EffectUnit1
190+ if ( value === MIDI_UP ) {
191+ engine . setValue ( "[EffectRack1_EffectUnit1]" , "next_chain" , 1 ) ;
192+ } else if ( value === MIDI_DOWN ) {
193+ engine . setValue ( "[EffectRack1_EffectUnit1]" , "prev_chain" , 1 ) ;
194+ }
195+ } else if ( KAOSSDJ . shiftRightPressed ) {
196+ // If Right Shift is not pressed, cycle the effects chains on EffectUnit2
197+ if ( value === MIDI_UP ) {
198+ engine . setValue ( "[EffectRack1_EffectUnit2]" , "next_chain" , 1 ) ;
199+ } else if ( value === MIDI_DOWN ) {
200+ engine . setValue ( "[EffectRack1_EffectUnit2]" , "prev_chain" , 1 ) ;
201+ }
202+ } else {
203+ // If no shift is pressed, cycle through both QuickEffectRack filters
204+ if ( value === MIDI_UP ) {
205+ engine . setValue ( "[QuickEffectRack1_[Channel1]]" , "next_chain" , 1 ) ;
206+ engine . setValue ( "[QuickEffectRack1_[Channel2]]" , "next_chain" , 1 ) ;
207+ } else if ( value === MIDI_DOWN ) {
208+ engine . setValue ( "[QuickEffectRack1_[Channel1]]" , "prev_chain" , 1 ) ;
209+ engine . setValue ( "[QuickEffectRack1_[Channel2]]" , "prev_chain" , 1 ) ;
210+ }
211+ }
189212} ;
190213
191214KAOSSDJ . fxTouchMoveVertical = function ( _channel , _control , value , _status , _group ) {
0 commit comments