I noticed that one of the features of the newer control surfaces (QCON Gen 2 and SSL UF8) was the ability to select a track just by touching a fader. I wondered if the recent inclusion of Python Scripting in FL Studio would allow me to add similar functionality to my Behringer X-Touch and extender?
A little digging and head scratching followed before I came up with something that appears to do the job. I should say before I go any further that this doesn’t magically add a new touch sensitivity hardware feature to the existing mixer controllers – it just leverages a side effect of existing functionality to give the impression of touch sensitivity. It is surprisingly effective and a useful addition to many older Mackie compatible control surfaces.
This modification appears to work nicely with the existing track selection mechanism (as shown in the video). I haven’t noticed any side effects or undue performance overhead as yet so fingers crossed this will become another useful feature.
Like my previous “mod” my hope is that Scott or Miro (or someone else) from Image Line will pick up on this functionality and “do it properly” – perhaps improving on my limited Python knowledge and then including it as functionality in the “official” python script for Mackie controllers?
Meanwhile, if anybody wants to try it they simply need to find the existing piece of script and replace it with the following (the new functionality is highlighted):
elif self.ColT[event.midiChan].SliderEventID >= 0: if self.ColT[event.midiChan].TrackNum >=0: # if this track is not already selected then select it if mixer.trackNumber != self.ColT[event.midiChan].TrackNum: mixer.setTrackNumber(self.ColT[event.midiChan].TrackNum) event.handled = True mixer.automateEvent(self.ColT[event.midiChan].SliderEventID, self.AlphaTrack_SliderToLevel(event.inEv + 0x2000), midi.REC_MIDIController, self.SmoothSpeed) # hint n = mixer.getAutoSmoothEventValue(self.ColT[event.midiChan].SliderEventID) s = mixer.getEventIDValueString(self.ColT[event.midiChan].SliderEventID, n) if s != '': s = ': ' + s self.OnSendTempMsg(self.ColT[event.midiChan].SliderName + s, 500)