Adding Touch Sensitivity to Faders on a Mackie compatible (EG Behringer X-Touch or ICON QCON Pro) Control Surface

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:
					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)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

Up ↑

Create your website with
Get started
%d bloggers like this: