Remote Map: how to define a button as toggle button?

This forum is for discussing Rack Extensions. Devs are all welcome to show off their goods.
Post Reply
User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

04 Nov 2015

Hi.

I just created my first remote map and it works. The only problem: there are buttons on my controller that I would like to work as toggle buttons: push once: on. Push again: off. At the moment they work differently: pushed: on. Released: off.

What can be controlled in the columns "scale" and "mode" within a remote map? Could that be of any help for me?

Thanks,
Markus

User avatar
MannequinRaces
Posts: 1543
Joined: 18 Jan 2015

05 Nov 2015

Not sure if that would help you or not. I'm thinking what you want done needs to be accomplished with a boolean.

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

05 Nov 2015

I think you need to change controller's button behavior, remote map have nothing to do with your problem.

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

05 Nov 2015

Hi ljekio,

that's excatly what I expected. Unfortunately I can't change the button behavior in the controller's editor (it's a cheap AKAI Midimix - but the knobs and faders do their job).

But still, could anyone explain the function of "scale" and "mode" in remote maps?

Thanks,
Markus

electrofux
Posts: 864
Joined: 21 Jan 2015

05 Nov 2015

It should be doable in the codec file. What Midi message is your controller actually sending?

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

05 Nov 2015

You can swith the message of the buttons with the editor from "note" to "cc". And you can set any button to any cc value. The problem is, it sends a constant cc value as long as it is pressed. Otherwise it sends nothing.

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

05 Nov 2015

I dunno about transform note-like trigger message into switch mode by the luacodec, maybe guru like Koshdukai can tell more about it.

User avatar
Lizard
Posts: 466
Joined: 16 Jan 2015

05 Nov 2015

The behavior of the button can be done within the remote map if the Codec you are using will allow. I'm not an expert by any means but have done a considerable amount of mapping for the Nektar P Series lately. The behavior of a control (referred to in remote map terms called MODE) is often one of the columns defined in the "Map" statement. But the codec often defines these states. So what Codec and Remote Map is being used here?

As an example from the Nektar P Maps here are two examples set for the behavior of a button on the front panel :

Mapping the X3 Button as a Trigger Behavior (On when Pressed / Off when Released)
Map->X3->->Trig->->RETRIG->Instrument->Default

Here "Map" tells the controller you are assigning a remote item to the controller button X3. "Trig" is the Remote Item on the Device. "RETRIG" is a mode defined in the Codec that says how the control is to behave and "Default" is the page where this control map is active.

Mapping the X1 Button as a Toggle Behavior (When Pressed it stays in the state until pushed again)
Map->X1->->Run ->CTRL->->Instrument->Default

In this instance we are mapping to controller button X3. The remote item's name is "Run". It's mode is "CTRL" which is the default behavior for a button in Nektar and as such probably could be left as a white space. And lastly it is only active when the page "Default" is displayed. This is how in remote maps you can have multiple maps for a single control.

You will have to see what the Codec will allow for. On the generic "Other Controller" you may be limited by function. Seems default behavior is TRIG. IN that 5th Column (is it?) try to replace the White Space with TOGGLE or TRIG and load that map. If you get an error (X) it didn't work. ;) But maybe it will. Worth a try.

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

05 Nov 2015

Anyway, this device need dedicated codec, "Other Controller" cannot help for it.

You can try this option (if you ever do these things)

Create a simple MIDI codec for a button to check it work.

code to the file named MIDIMix.midicodec:

Code: Select all

Universal MIDI Codec Control Surface Definition File
File Format Version	1.0.0
Control Surface Manufacturer	AKAI
Control Surface Model	MIDIMix
Codec Version	1.0.0

Item Header	Name	Type	Min	Max

Item	Button 1	button	0	1

Map Header	Pattern	Name	Value1	Value2	Value3

Map	b? nn	Button 1	1	0	0
Change "nn" to the number of CC (in hexadecimal) and put it to Remote\Codecs\MIDI Codecs\ folder.

And create empty remote map named MIDIMix.remotemap

Code: Select all

Propellerhead Remote Mapping File
File Format Version	1.0.0
Control Surface Manufacturer	AKAI
Control Surface Model	MIDIMix
Map Version	1.0.0
And drop it into Remote\Maps\Akai\ folder.

After it start the Reason, choose "AKAI/MIDIMix" in control surfaces section and choose correct midi-port.
In the remote override mode choose any button on any Reason's device and to bind your button.
If it will work correct you can add to this codec all other controls and write full remote map.
Good luck :)

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

05 Nov 2015

Hi Ijekio and Lizard.

Thanks a lot to both of you!!

Lizard: I tried to replace the white Space in the 5th column (Mode) with TOGGLE or TRIG but always got an error on loading the map. With TOGGLE it said "Unknown command" and with TRIG it said "Unknown mode".

Ijeko: I managed to have both files (the codec and the remote map) working and could assign the button on my controller via remote override mode. However it's still the same problem: I have to keep the button pressed to activate the button on the reason device.
Any more ideas?

Thanks again,
Markus

siln
Posts: 349
Joined: 11 May 2015
Location: france

05 Nov 2015

Dont know anything about coding things, but i can tell the Livid alias 8 controller and the peff re alias 8 allow to use toggle button, maybe you can search this way if it helps ..

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

06 Nov 2015

Hi siln,

I think it's a matter of the hardware controller. My Alesis Midi-keyboard has a number of buttons that work as toggle buttons. Since my keybpard is using one of the general "other"-profiles this can't be due to the codec or the remote map. Instead I assume that the button simply sends a continous signal when activated.
The question still is if it is possible to define a regular (non toggling) hardwarebutton as a toggling button within the codec or the remote map.

Thanks,
Markus

User avatar
Lizard
Posts: 466
Joined: 16 Jan 2015

06 Nov 2015

Markus,

Which codec and remote map are you using? Is it Other Controller with a Remote Multi Channel? Also can you post your remote map? Would be interesting to look at.

electrofux
Posts: 864
Joined: 21 Jan 2015

06 Nov 2015

Schneepart wrote:Hi siln,

I think it's a matter of the hardware controller. My Alesis Midi-keyboard has a number of buttons that work as toggle buttons. Since my keybpard is using one of the general "other"-profiles this can't be due to the codec or the remote map. Instead I assume that the button simply sends a continous signal when activated.
The question still is if it is possible to define a regular (non toggling) hardwarebutton as a toggling button within the codec or the remote map.

Thanks,
Markus
What controller are you using and what remote codec? That is important information. Most likely your button sends a CC with a value of 127 on press and on release it sends 0 like most hardware buttons do. Obviously this leads to the behaviour you describe. There are ways around this in the codec. Though of the top of my head i only know a non trivial one. But to know which codec and hardware you are using would help maybe.

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

06 Nov 2015

I'm using the standard remote map for the category "<Other> MIDI Cntrol Surface". It's called "MIDI Controller.remotemap" and you can find it here (on a windows computer): C:\ProgramData\Propellerhead Software\Remote\Maps\Other
I don't know which standard codec is used for this category.

I also created my own map and codec according to the post of Iljekio (see above). You can find the remote map and the codec there. It worked an I could assign the button on my controller via remote override mode. But it didn't solve the problem (see me reply on Iljekio's post),

electrofux: you are probably right. And I'm really interested in your mentioned "ways around". Even the "non trivial one" ;-)

Thanks,
Markus

User avatar
Lizard
Posts: 466
Joined: 16 Jan 2015

07 Nov 2015

Change the mode field that says "button" to "value" and see what that does for you. The SDK documentation says the behavior of "button" defines one value on press and another on release. "Value" just assigns a min and max value. You could still keep its values at 0 and one but perhaps in this mode it will change each time you press. Worth a try.

electrofux
Posts: 864
Joined: 21 Jan 2015

07 Nov 2015

Schneepart wrote:I'm using the standard remote map for the category "<Other> MIDI Cntrol Surface". It's called "MIDI Controller.remotemap" and you can find it here (on a windows computer): C:\ProgramData\Propellerhead Software\Remote\Maps\Other
I don't know which standard codec is used for this category.

I also created my own map and codec according to the post of Iljekio (see above). You can find the remote map and the codec there. It worked an I could assign the button on my controller via remote override mode. But it didn't solve the problem (see me reply on Iljekio's post),

electrofux: you are probably right. And I'm really interested in your mentioned "ways around". Even the "non trivial one" ;-)

Thanks,
Markus

I was hoping you were using a different remote map with a proper lua codec. The "other" maps use "midi codecs" which is the older format. Lua codecs offer alot more possibilities. Did you mention what controller exactly you are using?

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

07 Nov 2015

Hi everybody.

Lizard: I tried what you suggested and this is the effect: when I press the button on the controller the assigned switch on the reason instrument gets activated. And it stays activated, even after releasing the button!! The only problem is: I cant deactivate it by pressing the hardware button again. It just stays activated. So there is still no toggeling.
This is a little progress but we are still not completely there.
I also tried to change the follwoing line in the codec:

Map Header Pattern Name Value1 Value2 Value3
Map b? 01 Button 1 1 0 0

Into
Map Header Pattern Name Value1 Value2 Value3
Map b? 01 Button 1 0 1 0

But without effect.

You were mentioning a documentation. Is it available on the internet?


electrofux: I'm using either the standard remote map OR the a map I did myself together with a midicodec that I also created myself according to Iljekios post (see above). Maybe I could create a Lua codec?

Thanks again.
Markus

User avatar
Lizard
Posts: 466
Joined: 16 Jan 2015

07 Nov 2015

@Schneepart(Markus)

Unfortunately it is not published. It comes from the Propellerheads developer site. But applying is free and fairly quick. Like I said earlier the remote Codec determines the behavior of the control and what types are available. With the general Other Midi option you are limited. However, the modes available to this codec are Button, Value, Delta, Keyboard and noinput. Possibly change to Delta? These modes are dependent on the encoder type. Delta is generally for endless rotaries where a change in one direction determines a + or - value. Maybe this will be an option for you. Beyond this I would say it isn't in the codec.

User avatar
Schneepart
Posts: 13
Joined: 26 Jan 2015

07 Nov 2015

Hi Lizard,

no, delta doesn't work at all.

But could you explain for me how "value" is defined in the documentation?
And what do the three coulmns Value1, Value2, and Value3 mean?

However, I also think that it is impossible to define a button as a toggle button.

Thanks,
Markus

User avatar
dancing fool
Posts: 131
Joined: 11 Jul 2015

16 Feb 2016

Hello,

I am thinking of buying this Akai midimix.
Just for the lot of buttons and knobs.
But realding this problem i have my doubts.
Is the problem solved ?
I want to use this controler for live sequencer controller for Thor or the new Lectric Panda PSQ1684

electrofux
Posts: 864
Joined: 21 Jan 2015

16 Feb 2016

I think the easy way with the remote map is not possible. In that case the controller itself has to have the option of having the buttons send toggling values.

In the codec however it is possible but it needs the Sdk and some programming.

User avatar
dancing fool
Posts: 131
Joined: 11 Jul 2015

16 Feb 2016

Such a shame.
I'm not a programmer.
Making remote maps alone is a big thing for me :-)
I own a edirol pcr 300 and cakewalk pro 300.
And there i can latch or unlatch a buttom in the programmer.

Majko
Posts: 1
Joined: 25 Jun 2021

25 Jun 2021

I know this is an oldie, but I am using the Midimix with Logic Pro.
To turn the buttons into toggles, set the Min/Max to 0 and 1, then set the Mode to Rotate. Voila.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: Sogou [Spider], Trendiction [Bot] and 26 guests