MPD232 Step Sequencer sysex -> cc translation?

0
0

I am using Akai’s MPD232 and sadly the step sequencer buttons aren’t MIDI.  The user denoiser found out the SysEx messages they send in this topic ( https://www.bome.com/forums/viewtopic.php?t=2818 ) and that got me wondering if this is possible: can you translate the SysEx message the button sends and translate that into MIDI CC# so that I can use the buttons to control Reasons Redrum steps?  Or so that I can map the buttons at all in Reason?

disclaimer: I am completely new to all of this and am just figuring out what can be done, thank you for your time and advice.

Marked as spam
Posted by (Q&A Forum: 1, Answers: 1)
April 12, 2017 5:24 pm
162 views
0
Private answer

So if your MPD is putting out the following Sysex for each control as shown in https://www.bome.com/forums/viewtopic.php?t=2818

Unlock (unlocks mpd to send sysex on port4 for every button/pad/fader): F0 47 00 36 30 00 04 01 00 00 38 F7
Demo Mode    F0 47 00 36 30 00 04 01 00 01 xx F7   – xx = (00 off, 01 on)
Preset change    F0 47 00 36 30 00 04 01 00 02 xx F7   – xx = num of preset
Lock         F0 47 00 36 30 00 04 01 00 0E xx F7   – xx = (00 off, 01 on)
Full level       F0 47 00 36 30 00 04 01 00 11 xx F7   – xx = (00 off, 01 on)
16 Level      F0 47 00 36 30 00 04 01 00 12 xx F7   – xx = (00 off, 01 on)
Note Repeat   F0 47 00 36 30 00 04 01 00 13 xx F7   – xx = (00 off, 01 on)
Pad Banks      F0 47 00 36 30 00 04 01 00 14 xx F7   – xx = (00 A, 01 B, 02 C, 03 D)
Control Banks   F0 47 00 36 30 00 04 01 00 15 xx F7   – xx = (00 A, 01 B, 02 C)
Time Division   F0 47 00 36 30 00 04 01 00 16 xx F7   – xx = (00 off, 01 on)
Seq on/off      F0 47 00 36 30 00 04 01 00 17 xx F7   – xx = (00 off, 01 on)
Seq Rec      F0 47 00 36 30 00 04 01 00 19 xx F7   – xx = (00 off, 01 on)
Step Bank      F0 47 00 36 30 00 04 01 00 1A xx F7   – xx = (00 01-16, 01 17-32)
Sequence Lights  F0 47 00 36 30 00 04 01 01 79 xx F7 to F0 47 00 36 30 00 04 01 02 00 xx F7
Sequence buttn   F0 47 00 36 31 00 04 01 0B 0E xx F7 to F0 47 00 36 31 00 04 01 0B 2D xx F7
Display ASCII   F0 47 00 36 31 00 04 01 00 xx yy F7   – xx = Start number, yy = Letter in ASCII

Then use Reason Remote Override feature  to create your own mappings with output messages cc of your own choice.

Assuming the MPD232 is not listed as a Standard Mapping.

 

 

Marked as spam
Posted by (Q&A Forum: 26, Answers: 1537)
April 12, 2017 10:41 pm
That’s the problem though, where, or how do I do that? I can remote map everything except the buttons listed above. I am trying to get the buttons above recognized in reason. For example: for Step 1, let’s say hypothetically I want it to be set to Pattern A. I’ve set my remote override to Step 1 (I don’t have a CC number though b/c the step buttons aren’t recognized as MIDI on the controller) In my remote map I have Map Step 1 Run in my redrum section. Then in my lua script I tried defining Step 1 as {name=”Step 1”, input=”button”}, //to name {pattern=”F0 47 00 36 31 00 04 01 0B 0E xx F7”, name=”Step 1”, value=”1”}, //to recognize but that doesn’t seem to work. I know it’s also only sending the above SysEx on Ch4 but I can’t get anything to work on that Channel in Reason. I’m having a hard time what to do with the list of SysEx above and how to get them to work for me.
( at April 12, 2017 11:00 pm)
OMG, I think I figured it out. The hex from denoiser wasn\’t what I was getting. I used this for step one: F0 47 00 36 40 00 02 18 xx F7 instead (found via MIDIox) and I could finally map it in channel four, now I just need to get my pads working in the same channel, which shouldn\’t be an issue. Thanks for helping! (oh and before anything happens I have to send my mpd the unlock code (F0 47 00 36 30 00 04 01 00 00 38 F7) via send sysex, gonna see if I can have this automate later instead of having to do it manually everytime. ps: I’ll have a custom mpd232 codec (built upon the mod32) one soon if anyone is interested.
( at April 12, 2017 11:41 pm)

You can set up a translator to send raw midi message from MT pro on project open if you like. You can also set it up so that maybe an Escape key from your computer keyboard, or another midi type controller on you MPD triggers it. You would just set it up so that MT Pro sends it only to you MPD.

I usually have a translator on project open that start and Init timer.
I have a separate translators looking for that timer to do other things like setting global variables etc.
I then usually have my Esc key set up to start the Init timer as well.
In your case you could have the Init timer trigger the midi message to sent the sysex to yoru MPD.

( at April 12, 2017 11:55 pm)
0
Private answer

Converting  incoming sysex to outgoing cc, program or notes is certainly possible with MT pro. In order to do this you need to determine the specific input that will need to be converted, evaluate the current incoming sysex messages and what makes each one unique and the write rules to use the unique portions into valid midi output messages. If you can provide an example of say 2 messages to convert, I can assist on this forum as an example and then you can use this to create other translations.

If you want a complete solution you can contract directly with me to assist. Just sent a email to bome@sniz.biz.

Steve

Bome Q&A Moderator and Independent Bome programming specialist.

 

Marked as spam
Posted by (Q&A Forum: 26, Answers: 1537)
April 12, 2017 6:41 pm
I guess that’s part of the question I haven’t fully understood yet. According to MIDIox and the user denoiser the sysex messages I would need are these. F0 47 00 36 30 00 04 01 00 00 38 F7 This one unlocks the mpd232 to send sysex on port 4 for every button. (importantly the non MIDI ones) Then as an example: F0 47 00 36 31 00 04 01 0B 0E xx F7 this SysEx toggles the button Step 1 in the sequencer. (the only thing that I know of that defines this button) What I don’t know is what to convert it in to. I’m assuming I’ll need to send that info to the .lua codec I’m using in reason to recognize my controls. An excerpt of code recognizing the buttons in the codec: function remote_init() local items={ {name=”Keyboard”, input=”keyboard”}, {name=”Fader 1”, input=”value”, min=0, max=127}, {name=”Rewind”, input=”button”}, } remote.define_items(items) local inputs={ {pattern=”b0 0C xx”, name=”Fader 1”}, {pattern=”F0 7F 7F 06 05 F7”, name=”Rewind”, value=”1”}, } remote.define_auto_inputs(inputs) end So I need to figure out how to define a ”Step 1” button? Not sure where to go from here. Thanks for the quick response and helping out!
( at April 12, 2017 7:28 pm)