Scriptlet for making the VU meters respond on channels 1 to 8 of my XTouch

Gift for Christmas !!

Created by SAS EVSN (Frank)

Methodology for making the VU meters respond on channels 1 to 8 of my XTouch (perhaps Icon, Presonus, Mackie …also)

  1. Create a Scriptlet block in the wiring. Insert the code below.

  2. Create an “Envelope Follower” block (found in the internal “MIDI Processing and Monitoring” plugins).
    Input the audio you want to display on the XTouch LEDs into this Envelope Follower block.

  3. Create two Knob widgets and group them using “widget link” (e.g., A).
    Link the first widget to the Envelope Follower plugin and set parameter 18 to “Audio Level Channel 0”.
    Link the second widget to the Scriptlet plugin you created and select the channel on which you want to display the LEDs on the XTouch.

That’s it!

The XTouch LEDs will light up on the channel selected in the second widget and will follow the audio input to the Envelope Follower.

Note: If you output the audio to both the Left and Right channels, you will only see the Left channel.

The scriptlet :slight_smile:

Var
Canal1 : Parameter 0 .. 15 = 0
Canal2 : Parameter 0 .. 15 = 0
Canal3 : Parameter 0 .. 15 = 0
Canal4 : Parameter 0 .. 15 = 0
Canal5 : Parameter 0 .. 15 = 0
Canal6 : Parameter 0 .. 15 = 0
Canal7 : Parameter 0 .. 15 = 0
Canal8 : Parameter 0 .. 15 = 0
last1 : Integer = -1
last2 : Integer = -1
last3 : Integer = -1
last4 : Integer = -1
last5 : Integer = -1
last6 : Integer = -1
last7 : Integer = -1
last8 : Integer = -1

On ParameterValueChanged matching Canal1
Var v : Integer
v = Canal1
If v != last1 Then
SendNow(MakeMidiMessage2(208, v))
last1 = v
End
End

On ParameterValueChanged matching Canal2
Var v : Integer
v = 16 + Canal2
If v != last2 Then
SendNow(MakeMidiMessage2(208, v))
last2 = v
End
End

On ParameterValueChanged matching Canal3
Var v : Integer
v = 32 + Canal3
If v != last3 Then
SendNow(MakeMidiMessage2(208, v))
last3 = v
End
End

On ParameterValueChanged matching Canal4
Var v : Integer
v = 48 + Canal4
If v != last4 Then
SendNow(MakeMidiMessage2(208, v))
last4 = v
End
End

On ParameterValueChanged matching Canal5
Var v : Integer
v = 64 + Canal5
If v != last5 Then
SendNow(MakeMidiMessage2(208, v))
last5 = v
End
End

On ParameterValueChanged matching Canal6
Var v : Integer
v = 80 + Canal6
If v != last6 Then
SendNow(MakeMidiMessage2(208, v))
last6 = v
End
End

On ParameterValueChanged matching Canal7
Var v : Integer
v = 96 + Canal7
If v != last7 Then
SendNow(MakeMidiMessage2(208, v))
last7 = v
End
End

On ParameterValueChanged matching Canal8
Var v : Integer
v = 112 + Canal8
If v != last8 Then
SendNow(MakeMidiMessage2(208, v))
last8 = v
End
End
1 Like

This is very clever. I had never explored the Envelope Follower plugin before and hadn’t considered this mechanism to convert an audio signal level to a widget value.

The code of the main ‘detector’ of the Envelope Follower started out to create the ‘magnitude’ plugin for @David-san so to use the Envelope Follower for feeding VU meters doesn’t seem that strange.

I believe at that time he was using an iCon Platform M+ (an MCU clone) to control GP stuff and his RME interface (through RME TotalMix FX). He may have been doing this all along and holding out on us.

But that’s some time ago :grinning_face:

Wow. Somehow I missed that entire thread. I must have been on vacation.

I am still using the magnitude plugin from @Frank1119 and I am also indeed still using an Icon Platform M+ to control an internal GP Mixer and TotalMix Fx, the Mixer of my RME Audio Interface. And with this, I OWN THE STAGE !!! :winking_face_with_tongue::winking_face_with_tongue::winking_face_with_tongue:

5 Likes

Hi vindes, i’’ve made also script for changing color on my 8 screens of my Touch. Have you done this in your MCU extension ?
I also wonder if there is a type for the push button on the knobs and the indicator light that comes on when you press it? Tx

I have not. I don’t have an x-touch and don’t have the info for coloring the screens. I can look into adding it, though.

Yes, the tags for those are “mc_push_[bankname]_[0..7]”.

Thank you,
I had already read it somewhere but I couldn’t find it anymore.

On an X Touch, the best way is to change them on all 8 screens at the same time. So here’s the SysEx that does it…
F0 00 00 66 14 for MCU
72 to change the colors
03 03 07 07 07 07 02 02 for the 8 screen colors

Which gives:
F0 00 00 66 14 72 03 03 07 07 07 07 02 02 F7

01 red
02 green
03 orange
04 navy blue
05 purple
06 cyan blue
07 white
08 no color

By the way, Merry Christmas and Happy new year !

Screen by screen

F0 00 00 66 14 72 xx yy F7

Xx the screen number 00 to 07

Yy color 01 to 08

For information, I haven’t succeed to use Screen by screen…Only the 8 screens in one time.

Hi. i write a little script who change colors of my X-TOUCH’ screen when I change Indicator Widgets. It works fine.