How to : make mpd 24 knobs into encoders

How to : make mpd 24 knobs into encoders

Hello everyone, and sorry for the delay on this tutorial !

First a little rant :smiley: !
When the akai mpd 24 was revealed i was really hyped about it, mpc style pads, faders, and knobs, and all that for a really attractive price.
Now, maybe my brain is playing tricks on me because it has been that long, but i remember akai advertising the knobs as infinite controllers, great, well that was until reality came along, those were infinite knobs, but not encoders, so you get the worst mix of features. That sucked !
And it sucked until i read a post on ableton’s forum of someone that managed to pull THE trick for all mpd owners, infinite encoders!

Thanks to akatraz that found it on bome’s forum, and thanks to dexter that made it possible !

http://www.bome.com/forums/viewtopic.php?f=3&t=2818

The only problem is that all this (dexter’s post) seemed completly chinese to me, and he was aiming at implementing other stuff in his bome’s code. Only some weeks ago i had another go at it, and made it to work. So here it comes :

So as found sniffing in the vysex software by dexter, the mpd doesnt only sends midi info, it communicates with the vysex editor by using sysex code ( wich is another type of messages used by controlers and midi capable synthesizers, drum machines, etc…
He found that by sending a specific sysex to the mpd, the mpd would then send the sysex alongside the regular midi information (something the mpd would only previously do with vysex software).
And each button, fader, knob, would send a different sysex, yes, even the ā€œnon midi-ableā€ ones. But only one sysex each, not one for ā€œupā€ and another for ā€œdownā€, the best part, in the case of the knobs, they continue to send the sysex even when the midi data reach the extremes ( 0 - 127 ).

And because the infinite knobs pick up at the last sent midi value ( meaning if you turn it to the right to reach 127, and then continue to turn it right, it keeps at 127, but at the moment you turn left, it is already decreasing from 127 towards 0 ), Dexter was able to devise a code in bome’s to create a new message, a blend between the sysex and the original midi. Thus creating an encoder out of it!

First download this ( it’s a pack with all the needed software and the project files, the software is free, minus bome’s, so it’s the demo i included, all for mac, but the same type of software exist for free for windows also ) :
[ame=ā€œhttp://www.megaupload.com/?d=EN9T1ORMā€]MEGAUPLOAD - The leading online storage and file delivery service[/ame]

The first thing you need to instal is sysexlibrarian, a free tool that allows you to send sysex messages to connected devices, in sysexlibrarian, select your mpd 24 in the top topdown menu, then click on ā€œaddā€ on the bottom left corner and select the sysexdumptest.syx in the ā€œfilesā€ folder you downloaded.
Click play, if you now want to check if it worked, open the midimonitor app included, select the mpd 24 in midi source, and move a knob on your mpd, you will see it displaying the name of the midi command, and an akai sysex command 10 bytes.

Install bome’s then click on open a project file, select the bome’s project named akaiproject.bmtp and load it. Check to see that you are using the right midi input ( akai mpd 24 ) and that you are outputing from bome’s, if everything is set, open traktor, create a new midi map, with bome’s as the midi input, and try it for yourself :smiley:

A few more things, the mpd doesnt have a memory for the sysex, meaning every time you disconnect it, you need to re-send the sysex.
I only managed to make sense of the bome’s code thru trial and error, i’m no coder, and i’m sure you can make the code more simple (maybe).
Bome’s is something around 60 eur. but it is well invested if you like to do midi mappings and stuff, because the only solution regarding the knobs on the akai mpd 24 is buying some normal ones ( 2.5k resistance), if you want encoders this is the solution.
Using bome’s you can then create modifiers using the sysex sent by the banks button, or the preview button, using the banks buttons, it creates 32 encoders (8 per banks) for your tweaking pleasure.
I put some screenshots in the zip file to guide you along if you need to, but it’s pretty straight forward.
I’m using preset default 17, midi chanel 1A on the mpd.
I believe there is a similar sysex code for the others mpd (32 / 26).

Enjoy !

finally :smiley:
thank you in advance(havent read it)

In Windows for sending SYSex file we can use VYZEX MPD24 program, or midiox program.

I have error when opening bomes file on windows.

ERROR:
Wrong string format

I opened your bomes file in notepad and try to make some sense from it but cant intupt that in bomes(first time using it). So maybe some tutorial for only one knob or try to save that bomes somehow different.

If only Pure Data can read SYSX massages , on windows, everything will be free :disappointed:

And AKAI didnt lie it is infinite encoder but for SYSX not MIDI!!!

I will try and copy paste the code, or save it differently, i don’t know if its because i’m using the demo version or something. I didn’t make up my mind yet as wether i buy bome’s and use the knobs as encoders, or buy some real finite knobs and use these. But the control you get with the encoders is quite smooth, which is a real plus.

Here is the exported text :

--------------- Preset testakai

Translator 0: pot1up
Incoming: MIDI F0 47 00 68 41 00 02 00 pp F7
Rules:
if h1==127 then exit rules, skip Outgoing Action
qq=h1
ss=hc+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 00 h0

Translator 1: pot2up
Incoming: MIDI F0 47 00 68 41 00 02 01 pp F7
Rules:
if h2==127 then exit rules, skip Outgoing Action
qq=h2
ss=hd+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 01 h0

Translator 2: pot3up
Incoming: MIDI F0 47 00 68 41 00 02 02 pp F7
Rules:
if h3==127 then exit rules, skip Outgoing Action
qq=h3
ss=hc+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 02 h0

Translator 3: pot4up
Incoming: MIDI F0 47 00 68 41 00 02 03 pp F7
Rules:
if h4==127 then exit rules, skip Outgoing Action
qq=h4
ss=hd+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 03 h0

Translator 4: pot5up
Incoming: MIDI F0 47 00 68 41 00 02 04 pp F7
Rules:
if h5==127 then exit rules, skip Outgoing Action
qq=h5
ss=hc+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 04 h0

Translator 5: pot6up
Incoming: MIDI F0 47 00 68 41 00 02 05 pp F7
Rules:
if h6==127 then exit rules, skip Outgoing Action
qq=h6
ss=hd+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 05 h0

Translator 6: pot7up
Incoming: MIDI F0 47 00 68 41 00 02 06 pp F7
Rules:
if h7==127 then exit rules, skip Outgoing Action
qq=h7
ss=hc+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 06 h0

Translator 7: pot8up
Incoming: MIDI F0 47 00 68 41 00 02 07 pp F7
Rules:
if h8==127 then exit rules, skip Outgoing Action
qq=h8
ss=hd+176
if pp<qq then exit rules, execute Outgoing Action
if pp>=qq then exit rules, skip Outgoing Action
Outgoing: MIDI ss 07 h0

Translator 8: pot1down
Incoming: MIDI F0 47 00 68 41 00 02 00 pp F7
Rules:
if h1==0 then exit rules, skip Outgoing Action
qq=h1
ss=hc+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 00 7f

Translator 9: pot2down
Incoming: MIDI F0 47 00 68 41 00 02 01 pp F7
Rules:
if h2==0 then exit rules, skip Outgoing Action
qq=h2
ss=hd+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 01 7f

Translator 10: pot3down
Incoming: MIDI F0 47 00 68 41 00 02 02 pp F7
Rules:
if h3==0 then exit rules, skip Outgoing Action
qq=h3
ss=hc+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 02 7f

Translator 11: pot4down
Incoming: MIDI F0 47 00 68 41 00 02 03 pp F7
Rules:
if h4==0 then exit rules, skip Outgoing Action
qq=h4
ss=hd+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 03 7f

Translator 12: pot5down
Incoming: MIDI F0 47 00 68 41 00 02 04 pp F7
Rules:
if h5==0 then exit rules, skip Outgoing Action
qq=h5
ss=hc+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 04 7f

Translator 13: pot6down
Incoming: MIDI F0 47 00 68 41 00 02 05 pp F7
Rules:
if h6==0 then exit rules, skip Outgoing Action
qq=h6
ss=hd+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 05 7f

Translator 14: pot7down
Incoming: MIDI F0 47 00 68 41 00 02 06 pp F7
Rules:
if h7==0 then exit rules, skip Outgoing Action
qq=h7
ss=hc+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 06 7f

Translator 15: pot8down
Incoming: MIDI F0 47 00 68 41 00 02 07 pp F7
Rules:
if h8==0 then exit rules, skip Outgoing Action
qq=h8
ss=hd+176
if pp<=qq then exit rules, skip Outgoing Action
if pp>qq then exit rules, execute Outgoing Action
Outgoing: MIDI ss 07 7f

Translator 16: general sens
Incoming: MIDI F0 47 00 68 41 00 02 xx qq F7
Rules:
if xx>7 then exit rules, skip Outgoing Action
if xx==0 then h1=qq
if xx==1 then h2=qq
if xx==2 then h3=qq
if xx==3 then h4=qq
if xx==4 then h5=qq
if xx==5 then h6=qq
if xx==6 then h7=qq
if xx==7 then h8=qq
Outgoing: (none)

I am just fascinated by how easy bomes can manipulate sysx commands.
But I will definitly spent money on used BCR2000(most cheaper used one in USA and ebay.de) :slight_smile: plus we have visual output on position on the knobs, more space on the screen for waveforms.
I will try it now.

Is there a similar ā€œFixā€ for an APC40 - wondering :slight_smile:

Much more Possibilites in Traktor if there is.

wait the minute. APC dont have incremental knobs???

16 x Endless Knobs - but only one Encoder(Cue level).

I have some ideas for use if theres a way to turn them into encoders .

arent new AKAI firmware for MPD32 and maybe MPD26 supposed to have incremeental knob update?
And I thought that apc40 with led rings have incremental knob?
I am speechless…

Knob yes, but not encoder like the BCR (which I have too :stuck_out_tongue:) .. the only one that can be used for lets say - platter control or pitch bend successfully on the APC is the cue level which is a true encoder.

From my limited knowledge on it, that MPD fix looks like it converts the function of the incremental knobs to act exactly the cue encoder or BCR ones ? Which would allow for much finer control of stuff - longer sweep.

Someone correct me if I’m wrong.

I am buying bcr2000…its final

For the price you couldn’t go wrong if you need the extra knobs :slight_smile: Picked up mine for around $100 S/H boxed with everything, but with one dodgy encoder (easy to replace it)

There really is absolutely nothing in that price range that will give you that much rotary goodness and bang for buck. And the function editing is super ultra easy (keep a recent backup of the sysx though (apparently they ā€œcanā€ lose settings - haven’t had it happen yet).

A lil bulky IMHO (could be MUCH flatter), and there is ALOT of extra space in the box, guess they wanted to keep the same build style as the BCD, BCF series, hell if it saves the consumer some $$ :slight_smile:

I don’t know about those updates ( mpd 32 / 26 ), but i found out about sysexlybrarian when i last updated my 24, because the vysex software was too fast to send the sysex and so i almost bricked my mpd. Some hours after i knew why it wouldn’t update and found the sysexlybrarian.
After checking online, akai doesn’t provide the firmware updates anymore, and i haven’t found anything about encoders for the 32/26, but maybe there is a similar sysex to make it work like above.

for firmware updates you have to go to this forum www.vyzor.com and ask for it and you have to tell them even WHY.