Remote: Selecting Previous/Next Single Mixer Channel
-
- Posts: 63
- Joined: 05 Jun 2024
When remote controlling a single mixer channel (https://docs.reasonstudios.com/reason13 ... xer#533093), is there a way to select the previous/next single mixer channel from the external controller?
I want to build a remote map that controls a single mixer channel's properties (Level, Input, EQ, Dynamics, ...). For this to be useful, it should be possible to quickly switch to another channel without using the mouse. The only ways I found to do this at all are surface locking to the mixer's channel (requires mouse) or by selecting the mixer channel in the sequencer (if available) or in the rack on its grey arrow at the left side (again, requires mouse). So far, I haven't found a way to do this from an external controller.
There's the scope "Reason Master Section" which has "Remote Base Channel Delta", "Next Remote Base Channel" and so on. While that would work, it is a hack as it influences also the base channel of other controllers which I don't want.
I want to build a remote map that controls a single mixer channel's properties (Level, Input, EQ, Dynamics, ...). For this to be useful, it should be possible to quickly switch to another channel without using the mouse. The only ways I found to do this at all are surface locking to the mixer's channel (requires mouse) or by selecting the mixer channel in the sequencer (if available) or in the rack on its grey arrow at the left side (again, requires mouse). So far, I haven't found a way to do this from an external controller.
There's the scope "Reason Master Section" which has "Remote Base Channel Delta", "Next Remote Base Channel" and so on. While that would work, it is a hack as it influences also the base channel of other controllers which I don't want.
-
- Posts: 922
- Joined: 21 Jan 2015
It is possible but since the Mixer is big with alot of parameter it requires alot of mapping and some coding. Basically you need to write your own codec or heavily adjust an existing one.
Basically you can adress the whole mixer as one device with all its parameters and define eg 64 groups (1 per channel). It is going to be a bit complicated programmingwise because i assume you dont have 64 buttons to select each channel individually but with some knowledge of the Remote API you can program a stepping through the Channels with two buttons or an encoder. it is just not something that you can do within minutes and not solely in the mapping file.
Basically you can adress the whole mixer as one device with all its parameters and define eg 64 groups (1 per channel). It is going to be a bit complicated programmingwise because i assume you dont have 64 buttons to select each channel individually but with some knowledge of the Remote API you can program a stepping through the Channels with two buttons or an encoder. it is just not something that you can do within minutes and not solely in the mapping file.
-
- Posts: 63
- Joined: 05 Jun 2024
In which way would the codec have to interact with the remotemap? I wasn't aware that was even possible, but the doc I found was for Reason 6, so this might have changed ...electrofux wrote: ↑24 Mar 2025It is possible but since the Mixer is big with alot of parameter it requires alot of mapping and some coding. Basically you need to write your own codec or heavily adjust an existing one.
Interesting idea. I could write a small script that takes care of generating the final result from the first channel.electrofux wrote: ↑24 Mar 2025Basically you can adress the whole mixer as one device with all its parameters and define eg 64 groups (1 per channel). It is going to be a bit complicated programmingwise because i assume you dont have 64 buttons to select each channel individually but with some knowledge of the Remote API you can program a stepping through the Channels with two buttons or an encoder. it is just not something that you can do within minutes and not solely in the mapping file.
I wonder if this will work out though. I have a controller with 16 knobs, so I might need 3 to 4 groups to map all controls of a single channel to the device. Would your suggestion require to switch groups three/four times until I'm at the next channel? Or can groups have hierarchies so that the channel groups would be one level up requiring only a single group change?
I think the Remote SDK has those questions covered. You can find it here: https://developer.reasonstudios.com/dow ... r-products
-
- Posts: 63
- Joined: 05 Jun 2024
The SDK says that you can have up to ten variations per scope (the SDK seems to call this sometimes Groups and sometimes Variations). So with a 16 knobs controller needing somewhat 3 to 4 pages for all controls per channel, at roughly the third channel I'd run out of available variations for the scope. So I guess this approach won't work?
Mapping the controls of one complete mix channel and then two additional controls to increase/decrease the mix channel base should work just fine. Maybe stripping down or editing the BCR codec from Mixer Jaëxx could be a good option: https://www.jaexx.com/blog/reason-using ... nel-strip/
-
- Posts: 63
- Joined: 05 Jun 2024
That's what I currently do. But moving the base channel affects other control surfaces like my D 400F fader bank which is why I wanted to avoid this.
-
- Posts: 922
- Joined: 21 Jan 2015
I have a codec with 32 Groups so i guess Variations and Groups are treated differently.
-
- Posts: 63
- Joined: 05 Jun 2024
Then there must be a difference between the two. Thanks for clarifying. I'll try to solve this with groups as we initially discussed. Maybe I'll also understand the difference between variations and groups along the way.electrofux wrote: ↑28 Mar 2025I have a codec with 32 Groups so i guess Variations and Groups are treated differently.
Do you know if it's possible to ensure that with one button I'm switching to the group of the next mixer channel and with another button I'm switching to another mapping (like from EQ to dynamics) of the current channel?
-
- Posts: 922
- Joined: 21 Jan 2015
i mean in the codec alot is possible. Once you are in remote process midi and have detected your controllers midi from eg the next/previous buttons you can act upon this with all the programming methods available. But for the Mixer this is a huge task because of the sheer number of items to keep track of and assign conditionally.
What controller do you use?
What controller do you use?
-
- Posts: 63
- Joined: 05 Jun 2024
Right. Is it possible for a remote codec to know what the current device/scope is? Otherwise I'd expect implementing device/scope specific things into it would pretty much bind it to that scope exclusively.electrofux wrote: ↑29 Mar 2025i mean in the codec alot is possible. Once you are in remote process midi and have detected your controllers midi from eg the next/previous buttons you can act upon this with all the programming methods available. But for the Mixer this is a huge task because of the sheer number of items to keep track of and assign conditionally.
An Asparion D400F and a Midi Fighter Twister.
Are you using the Midi Fighter Twister with Reason ? Do you have a Lua codec for it or how you use it ?
Can you tell me if you noticed any bugs ? For example, here: https://forum.djtechtools.com/showthread.php?t=91251
thanks
-
- Posts: 63
- Joined: 05 Jun 2024
I'm not going to read an entire thread that starts with venting users from over a decade ago. Anything specific you're interested in?tanni wrote: ↑04 Apr 2025Are you using the Midi Fighter Twister with Reason ? Do you have a Lua codec for it or how you use it ?
Can you tell me if you noticed any bugs ? For example, here: https://forum.djtechtools.com/showthread.php?t=91251
thanks
I think the controller itself is stellar and I haven't noticed any bugs.
The problems I have are nonexistent good Reason Remote codecs for it and design shortcomings in the Reason Remote SDK. For instance, in this post I'm summarising one specific problem and its solution: viewtopic.php?p=678859#p678859
No sorry, that was just an example in which it was also mentioned that the Twister's software hasn't received any updates in a long time and that there are still bugs in it. Hence my general question about it.Tiefflieger Rüdiger wrote: ↑04 Apr 2025
I'm not going to read an entire thread that starts with venting users from over a decade ago. Anything specific you're interested in?
I think the controller itself is stellar and I haven't noticed any bugs.
The problems I have are nonexistent good Reason Remote codecs for it and design shortcomings in the Reason Remote SDK. For instance, in this post I'm summarising one specific problem and its solution: viewtopic.php?p=678859#p678859
Ah, okay, so you don't have a properly functioning codec for Reason and Twister either. I'm not that technically savvy, but I think I understand the problem described. It's a shame that it fails because of such basic things. I'm currently using the Behringer x-touch mini, which works quite well with the codec that's available for it. I thought I could improve with Twister. So I probably won't buy the Twister after all. Maybe another Behringer x-touch mini instead.
-
- Posts: 63
- Joined: 05 Jun 2024
I didn't notice any bug. I'm not sure what can go wrong there, it's a rather simple device: knobs (can be absolute or relative), LED rings (can be MIDI controlled), colour LED (can be MIDI controlled), 16 + six buttons, four configurations.
I think the codec I've shared in my post above isn't missing much to be useful. But TBH, we're derailing this thread. If you're interested in how the MF Twister generally works in Reason, why not start a new thread? You can PM me to join the thread after you've created it.tanni wrote: ↑04 Apr 2025Ah, okay, so you don't have a properly functioning codec for Reason and Twister either. I'm not that technically savvy, but I think I understand the problem described. It's a shame that it fails because of such basic things. I'm currently using the Behringer x-touch mini, which works quite well with the codec that's available for it. I thought I could improve with Twister. So I probably won't buy the Twister after all. Maybe another Behringer x-touch mini instead.
OK, thank you very muchTiefflieger Rüdiger wrote: ↑04 Apr 2025... But TBH, we're derailing this thread. If you're interested in how the MF Twister generally works in Reason, why not start a new thread? You can PM me to join the thread after you've created it.
- Carly(Poohbear)
- Competition Winner
- Posts: 2969
- Joined: 25 Jan 2015
- Location: UK
Variations are global and groups are local, when you change a Variation that change is for all surface controls.Tiefflieger Rüdiger wrote: ↑28 Mar 2025Then there must be a difference between the two. Thanks for clarifying. I'll try to solve this with groups as we initially discussed. Maybe I'll also understand the difference between variations and groups along the way.electrofux wrote: ↑28 Mar 2025I have a codec with 32 Groups so i guess Variations and Groups are treated differently.
Do you know if it's possible to ensure that with one button I'm switching to the group of the next mixer channel and with another button I'm switching to another mapping (like from EQ to dynamics) of the current channel?
I have a mappings with 84 pages (groups) (it was for ReSpire)
You can stack groups. So yes you could move from Mix1 to Mix2 and have another group say EQ to Dynamics to Sends etc.
I'm making this up on the fly, so it's just a rough outline....
Define Group mixer mix1 mix2
Define Group params Dynamic EQ Send
Map Knob 1 Channel 1 C Ratio Mix1 Dynamic
Map Knob 1 Channel 1 HF Gain Mix1 EQ
Map Knob 1 Channel 1 FX1 Send Level Mix1 Send
Map Knob 1 Channel 2 C Ratio Mix2 Dynamic
Map Knob 1 Channel 2 HF Gain Mix2 EQ
Map Knob 1 Channel 2 FX1 Send Level Mix2 Send
-
- Posts: 63
- Joined: 05 Jun 2024
Great suggestions, had no idea that groups can be combined. I've set up something that is able to go from channel one to channel two and back by pressing "Right Button 2" and "Left Button 2". But how would I be able to step further than channel two?Carly(Poohbear) wrote: ↑04 Apr 2025You can stack groups. So yes you could move from Mix1 to Mix2 and have another group say EQ to Dynamics to Sends etc.
I'm making this up on the fly, so it's just a rough outline....
Define Group mixer mix1 mix2
Define Group params Dynamic EQ Send
Map Knob 1 Channel 1 C Ratio Mix1 Dynamic
Map Knob 1 Channel 1 HF Gain Mix1 EQ
Map Knob 1 Channel 1 FX1 Send Level Mix1 Send
Map Knob 1 Channel 2 C Ratio Mix2 Dynamic
Map Knob 1 Channel 2 HF Gain Mix2 EQ
Map Knob 1 Channel 2 FX1 Send Level Mix2 Send
Code: Select all
Scope Propellerheads Reason Master Section
Define Group Controls Level EQ Dynamics
Define Group MixerChannel Channel1 Channel2
Map Left Button 1 Controls=Level
Map Right Button 1 Controls=EQ
Map Left Button 3 Controls=Dynamics
Map Left Button 2 MixerChannel=Channel1
Map Right Button 2 MixerChannel=Channel2
Map CC 00 Channel 1 Level Channel1 Level
Map Push Encoder 00 Channel 1 LPF On Channel1 EQ
Map CC 00 Channel 1 LPF Frequency Channel1 EQ
Map Push Encoder 00 Channel 1 Comp On Channel1 Dynamics
Map CC 00 Channel 1 C Ratio Channel1 Dynamics
Map CC 00 Channel 2 Level Channel2 Level
Map Push Encoder 00 Channel 2 LPF On Channel2 EQ
Map CC 00 Channel 2 LPF Frequency Channel2 EQ
Map Push Encoder 00 Channel 2 Comp On Channel2 Dynamics
Map CC 00 Channel 2 C Ratio Channel2 Dynamics
- Carly(Poohbear)
- Competition Winner
- Posts: 2969
- Joined: 25 Jan 2015
- Location: UK
Something like this...
Code: Select all
Map Left Button 2 MixerChannel=Channel 4 Channel 1
Map Right Button 2 MixerChannel=Channel 2 Channel 1
Map Left Button 2 MixerChannel=Channel 1 Channel 2
Map Right Button 2 MixerChannel=Channel 3 Channel 2
Map Left Button 2 MixerChannel=Channel 2 Channel 3
Map Right Button 2 MixerChannel=Channel 4 Channel 3
Map Left Button 2 MixerChannel=Channel 3 Channel 4
Map Right Button 2 MixerChannel=Channel 1 Channel 4
-
- Posts: 63
- Joined: 05 Jun 2024
Fantastic, works really great this way!
Do you know if this can also be mapped to a single knob or are button pressed the only way to navigate through the mixer like this? (Disregarding the base channel parameter since that will affect all controllers like my D400F/MCU)
- Carly(Poohbear)
- Competition Winner
- Posts: 2969
- Joined: 25 Jan 2015
- Location: UK
Yes but you will need to do it in code, again off the top of my head something like
I have a group called mixer (not needed, but you may wish to move from mixer to a device )
a "mode" called chans, so you can track if that knob is active (if you make the knob purely for switching pages then you don't have to worry about the mode) , then you will have to manually track which channel you are on and increment \ decrement it.
Code: Select all
Map chan1 MixerChannel=Channel 1 mixer
Map chan2 MixerChannel=Channel 2 mixer
Map chan3 MixerChannel=Channel 3 mixer
Map chan4 MixerChannel=Channel 4 mixer
Map Knob1 0 chans mixer
a "mode" called chans, so you can track if that knob is active (if you make the knob purely for switching pages then you don't have to worry about the mode) , then you will have to manually track which channel you are on and increment \ decrement it.
-
- Posts: 63
- Joined: 05 Jun 2024
Still struggling to wrap my head around this because I'm seeing concepts I haven't found an explanation for in the Remote Codec SDK.Carly(Poohbear) wrote: ↑05 Apr 2025Yes but you will need to do it in code, again off the top of my head something like
I have a group called mixer (not needed, but you may wish to move from mixer to a device )Code: Select all
Map chan1 MixerChannel=Channel 1 mixer Map chan2 MixerChannel=Channel 2 mixer Map chan3 MixerChannel=Channel 3 mixer Map chan4 MixerChannel=Channel 4 mixer Map Knob1 0 chans mixer
a "mode" called chans, so you can track if that knob is active (if you make the knob purely for switching pages then you don't have to worry about the mode) , then you will have to manually track which channel you are on and increment \ decrement it.
1. It seems "chan1/2/3/4" are purposefully not matching any control declared in the Remote Codec's item variable. What happens when something like this occurs and are you somehow accessing this from the remote codec's lua script?
2. What happens when setting the Remoteable Item to 0 as you do with Knob1?
3. The Remote Codec SDK manual was a bit rough on explaining that "mode" thing. I'm not sure how you'll make use of Knob1 being declared as mode "chans" here. Do you use this to have some code in your lua script checking for the current remoteable item having a specific mode and if that is the case trigger code specific to that mode?
- Carly(Poohbear)
- Competition Winner
- Posts: 2969
- Joined: 25 Jan 2015
- Location: UK
chan1/2/3/4 will have to be defined as items does not matter that you don't have any physical controls for them.
table.insert(items,{name="chan1", input="button", output="value"})
Give them and input and output so you can read and write to them, you can handle this now in code.
Setting remoteable item to 0 is making that item value = 0, in this case Knob 1 = 0 but we are setting the Mode that we can use later. Note Setting it to 0 is a bit like disabling the knob as it's now not assigned..
Modes are handled in Code.
e.g.
table.insert(items,{name="param " ..(i), input="value", output="value",min=0,max=max_value, modes={"NORM","TRIG","skip","group A","group B","group C","group D","2way","3way","4way","5way","6way","7way","8way","9way"}})
If I have a parameter knob on a device which has five different settings, I will give it a mode = 5way, then in code I can use a button to switch that parameter knob between it's five different settings, if I use a knob instead of a button then I just use that as normal and ignore the mode..
Note: I will never bother setting any mappings to "NORM" as that is default(1), in code you reference modes by numbers not by the name you set in items.
table.insert(items,{name="chan1", input="button", output="value"})
Give them and input and output so you can read and write to them, you can handle this now in code.
Setting remoteable item to 0 is making that item value = 0, in this case Knob 1 = 0 but we are setting the Mode that we can use later. Note Setting it to 0 is a bit like disabling the knob as it's now not assigned..
Modes are handled in Code.
e.g.
table.insert(items,{name="param " ..(i), input="value", output="value",min=0,max=max_value, modes={"NORM","TRIG","skip","group A","group B","group C","group D","2way","3way","4way","5way","6way","7way","8way","9way"}})
If I have a parameter knob on a device which has five different settings, I will give it a mode = 5way, then in code I can use a button to switch that parameter knob between it's five different settings, if I use a knob instead of a button then I just use that as normal and ignore the mode..
Note: I will never bother setting any mappings to "NORM" as that is default(1), in code you reference modes by numbers not by the name you set in items.
OK, so the way I have this in my set with my bcr20000 up is that I just have 2 buttons that I use to select the next and previous track in the sequencer. IMHO this works quite well because reason will toggle the controls depending on the type of device. A and I just have the bcr2000 as a master controller (not saved to a mixer).
Notice you have to create an automation track for the mixer channel for intrument devices. For audio you don't need additional tracks.
Finally the other mapping processes will limit to an amount of channels and this way you can control.thenwhole mixer and other devices.
Notice you have to create an automation track for the mixer channel for intrument devices. For audio you don't need additional tracks.
Finally the other mapping processes will limit to an amount of channels and this way you can control.thenwhole mixer and other devices.
-
- Information
-
Who is online
Users browsing this forum: No registered users and 7 guests