Icon V1-M Support, colour channels for FL Studio
Icon V1-M Support, colour channels for FL Studio
Hello Paul,
Enjoying the videos, I am on a similar journey working on a script for FL studio, I have no issue extracting anything I want from FL studio but were I am struggling is the Icon V1-M hardware and how the control interprets the code, like the address for row 3+4 text, the pan graphic and I really want to get the colour bands working, I have tried many tests but I am assuming I just don't know the correct address to send the signal, please can you share any information regarding how the hardware interoperates data please? Thank you kindly, Stephen Baker.
Enjoying the videos, I am on a similar journey working on a script for FL studio, I have no issue extracting anything I want from FL studio but were I am struggling is the Icon V1-M hardware and how the control interprets the code, like the address for row 3+4 text, the pan graphic and I really want to get the colour bands working, I have tried many tests but I am assuming I just don't know the correct address to send the signal, please can you share any information regarding how the hardware interoperates data please? Thank you kindly, Stephen Baker.
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
Re: Icon V1-M Support, colour channels for FL Studio
https://www.facebook.com/photo/?fbid=10 ... 0171344750
This is a picture of where I am up to installing the device, its replaced my Icon Pro X after 10 years of use.
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
- Paul Henty
- Site Admin
- Posts: 32
- Joined: Fri Aug 16, 2024 1:35 pm
- Location: UK
Re: Icon V1-M Support, colour channels for FL Studio
Hi,
I've created a new read-only sub forum where I can put technical info about the iCON units. I've started with your requests:
viewforum.php?f=15
(This forum is only visible to logged in users)
Paul
I've created a new read-only sub forum where I can put technical info about the iCON units. I've started with your requests:
viewforum.php?f=15
(This forum is only visible to logged in users)
Paul
Re: Icon V1-M Support, colour channels for FL Studio
Hi Paul,
Thank you for this information, I now have the coloured channels working perfectly including banking through them
I'm still having challenges with the panning but I'll keep at it.
I'm currently testing for rows 3 and 4 so I can get them to use, I'll share any hardware findings with yourself as I make the discoveries
Thank you for this information, I now have the coloured channels working perfectly including banking through them

I'm currently testing for rows 3 and 4 so I can get them to use, I'll share any hardware findings with yourself as I make the discoveries

- Attachments
-
- 20250101_165455.jpg (1.95 MiB) Viewed 2766 times
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
Re: Icon V1-M Support, colour channels for FL Studio
Completed the panning tonight, used mode 2 for all and mode 3 for the centre 
Thanks for the pointers

Thanks for the pointers
- Attachments
-
- 20250103_223640.jpg (2.42 MiB) Viewed 2757 times
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
- Paul Henty
- Site Admin
- Posts: 32
- Joined: Fri Aug 16, 2024 1:35 pm
- Location: UK
Re: Icon V1-M Support, colour channels for FL Studio
That's great. The modes don't do anything on the P1-M 
Paul

Paul
Re: Icon V1-M Support, colour channels for FL Studio
I think I know how to access the 3rd and 4rd row on the main display or any from both units now! I'm testing it later.
I will send you my vpot manager class later to compare how I did it.
It's like (006, 1) 1 is the mode
I will send you my vpot manager class later to compare how I did it.
It's like (006, 1) 1 is the mode

Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
Re: Icon V1-M Support, colour channels for FL Studio
Almost forgot to post this lol, hopefully this will help as a ref.
class VPOTManager:
def __init__(self):
self.base_cc = 0x30 # CC start for VPOT Led Rings (Strip 1)
def MapPanToVPOT(self, pan):
if pan == -1.0:
return (0x01, 1) # Mode 0x01 (FULL-Left), LED 1
elif -1.0 < pan <= -0.75:
return (0x01, 2) # Mode 0x01 (Fill-Left), LED 2
elif -0.75 < pan <= -0.5:
return (0x01, 3) # Mode 0x01 (Fill-Left), LED 3
elif -0.5 < pan <= -0.25:
return (0x01, 4) # Mode 0x01 (Fill-Left), LED 4
elif -0.25 < pan < 0.0:
return (0x01, 5) # Mode 0x01 (Fill-Left), LED 5
elif pan == 0.0:
return (0x03, 6) # Mode 0x03 (Center-Split), LED 6
elif 0.0 < pan <= 0.25:
return (0x01, 7) # Mode 0x01 (Fill-Right), LED 7
elif 0.25 < pan <= 0.5:
return (0x01, 8) # Mode 0x01 (Fill-Right), LED 8
elif 0.5 < pan <= 0.75:
return (0x01, 9) # Mode 0x01 (Fill-Right), LED 9
elif 0.75 < pan < 1.0:
return (0x01, 0x0A) # Mode 0x01 (Fill-Right), LED 10
elif pan == 1.0:
return (0x01, 0x0B) # Mode 0x01 (FULL-Right), LED 11
else:
return (0x00, 0) # Default Off (Should not occur)
def SendVPOT(self, strip, position, mode=0x00):
cc = self.base_cc + strip # Calculate CC for the strip
value = (mode << 4) | (position & 0x0F) # Encode mode and position
midi_message = [0xB0, cc, value] # CC message on MIDI channel 1
print(f"VPOT Sent: Strip={strip}, CC={cc}, Value={value:02X}") # Debugging
device.midiOutMsg((midi_message[0]) | (midi_message[1] << 8) | (midi_message[2] << 16))
def UpdateVPOTsFromPan(self, first_track):
for hardware_channel in range(8): # Hardware strips 0–7
fl_channel = first_track + hardware_channel
pan = mixer.getTrackPan(fl_channel) # Get pan value (-1.0 to 1.0)
mode, position = self.MapPanToVPOT(pan) # Convert pan to VPOT mode and position
print(f"FL Track {fl_channel}: Pan={pan}, Mode={mode}, Position={position}") # Debugging
self.SendVPOT(hardware_channel, position, mode)
class VPOTManager:
def __init__(self):
self.base_cc = 0x30 # CC start for VPOT Led Rings (Strip 1)
def MapPanToVPOT(self, pan):
if pan == -1.0:
return (0x01, 1) # Mode 0x01 (FULL-Left), LED 1
elif -1.0 < pan <= -0.75:
return (0x01, 2) # Mode 0x01 (Fill-Left), LED 2
elif -0.75 < pan <= -0.5:
return (0x01, 3) # Mode 0x01 (Fill-Left), LED 3
elif -0.5 < pan <= -0.25:
return (0x01, 4) # Mode 0x01 (Fill-Left), LED 4
elif -0.25 < pan < 0.0:
return (0x01, 5) # Mode 0x01 (Fill-Left), LED 5
elif pan == 0.0:
return (0x03, 6) # Mode 0x03 (Center-Split), LED 6
elif 0.0 < pan <= 0.25:
return (0x01, 7) # Mode 0x01 (Fill-Right), LED 7
elif 0.25 < pan <= 0.5:
return (0x01, 8) # Mode 0x01 (Fill-Right), LED 8
elif 0.5 < pan <= 0.75:
return (0x01, 9) # Mode 0x01 (Fill-Right), LED 9
elif 0.75 < pan < 1.0:
return (0x01, 0x0A) # Mode 0x01 (Fill-Right), LED 10
elif pan == 1.0:
return (0x01, 0x0B) # Mode 0x01 (FULL-Right), LED 11
else:
return (0x00, 0) # Default Off (Should not occur)
def SendVPOT(self, strip, position, mode=0x00):
cc = self.base_cc + strip # Calculate CC for the strip
value = (mode << 4) | (position & 0x0F) # Encode mode and position
midi_message = [0xB0, cc, value] # CC message on MIDI channel 1
print(f"VPOT Sent: Strip={strip}, CC={cc}, Value={value:02X}") # Debugging
device.midiOutMsg((midi_message[0]) | (midi_message[1] << 8) | (midi_message[2] << 16))
def UpdateVPOTsFromPan(self, first_track):
for hardware_channel in range(8): # Hardware strips 0–7
fl_channel = first_track + hardware_channel
pan = mixer.getTrackPan(fl_channel) # Get pan value (-1.0 to 1.0)
mode, position = self.MapPanToVPOT(pan) # Convert pan to VPOT mode and position
print(f"FL Track {fl_channel}: Pan={pan}, Mode={mode}, Position={position}") # Debugging
self.SendVPOT(hardware_channel, position, mode)
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.
- Paul Henty
- Site Admin
- Posts: 32
- Joined: Fri Aug 16, 2024 1:35 pm
- Location: UK
Re: Icon V1-M Support, colour channels for FL Studio
Thanks for that.
It's pretty much the same as mine. The P1-M just ignores the mode. I even tried it on the FL Studio profile to see if it was DAW specific.
Any luck getting the bottom lines of text working on your main display?
Paul
It's pretty much the same as mine. The P1-M just ignores the mode. I even tried it on the FL Studio profile to see if it was DAW specific.
Any luck getting the bottom lines of text working on your main display?
Paul
Re: Icon V1-M Support, colour channels for FL Studio
Icon said they are going to loom into it for me and Feedback ASAP, they've been very supportive, what is actually happening, is your script loading OK and functioning but ignoring the mode type? I can send you where I'm up to with my script for you to test.
I think this Row3 and 4 is going to be a new address completely, I've tried so many things
I'm going to be making and releasing my video for about 2 weeks time with a 32 channel set up fully functioning, can't wait to share it
I think this Row3 and 4 is going to be a new address completely, I've tried so many things
I'm going to be making and releasing my video for about 2 weeks time with a 32 channel set up fully functioning, can't wait to share it
Stephen Baker, founder of X-Fada Studios, DJ, music producer, and video creator from Wrexham, North Wales. Known as E-Tech (Scouse House) & X-Fada (EDM), his tracks feature on AATW, Mindset, Spincredible, DNZ, This Is Bounce UK & Bounce Heaven.