How to : make mpd 24 knobs into encoders
Page 1 of 2 12 LastLast
Results 1 to 10 of 16
  1. #1
    Tech Mentor oneapemob's Avatar
    Join Date
    Dec 2009
    Location
    Barcelona
    Posts
    198

    Default How to : make mpd 24 knobs into encoders

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

    First a little rant !
    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!

    http://forum.ableton.com/viewtopic.p...sysex#p1159490

    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


    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 !
    macbook pro, technics trntbl, numark pro sm-1, vestax pmc 08 pro, traktor scratch pro 2, akai mpd 24, novation nocturn, vci-100 fw1.4, krk rp5g2 and FBV express mk2

  2. #2

    Default

    finally
    thank you in advance(havent read it)
    TouchOSC for androd/iPhone WIN/MAC+TSI ableton live...
    androidosc.webs.com

  3. #3

    Default

    In Windows for sending SYSex file we can use VYZEX MPD24 program, or midiox program.
    Last edited by mekon_ca; 08-18-2011 at 05:52 PM.
    TouchOSC for androd/iPhone WIN/MAC+TSI ableton live...
    androidosc.webs.com

  4. #4

    Default

    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

    And AKAI didnt lie it is infinite encoder but for SYSX not MIDI!!!
    Last edited by mekon_ca; 08-18-2011 at 06:36 PM.
    TouchOSC for androd/iPhone WIN/MAC+TSI ableton live...
    androidosc.webs.com

  5. #5
    Tech Mentor oneapemob's Avatar
    Join Date
    Dec 2009
    Location
    Barcelona
    Posts
    198

    Default

    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.
    macbook pro, technics trntbl, numark pro sm-1, vestax pmc 08 pro, traktor scratch pro 2, akai mpd 24, novation nocturn, vci-100 fw1.4, krk rp5g2 and FBV express mk2

  6. #6
    Tech Mentor oneapemob's Avatar
    Join Date
    Dec 2009
    Location
    Barcelona
    Posts
    198

    Default

    Here is the exported text :

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


    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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

    [x] 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)
    macbook pro, technics trntbl, numark pro sm-1, vestax pmc 08 pro, traktor scratch pro 2, akai mpd 24, novation nocturn, vci-100 fw1.4, krk rp5g2 and FBV express mk2

  7. #7

    Default

    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) plus we have visual output on position on the knobs, more space on the screen for waveforms.
    I will try it now.
    TouchOSC for androd/iPhone WIN/MAC+TSI ableton live...
    androidosc.webs.com

  8. #8
    Tech Guru deevey's Avatar
    Join Date
    Oct 2010
    Location
    From Ireland Living in Manila: Philippines :D
    Posts
    3,668

    Default

    Is there a similar "Fix" for an APC40 - wondering

    Much more Possibilites in Traktor if there is.

  9. #9

    Default

    wait the minute. APC dont have incremental knobs??????????????
    TouchOSC for androd/iPhone WIN/MAC+TSI ableton live...
    androidosc.webs.com

  10. #10
    Tech Guru deevey's Avatar
    Join Date
    Oct 2010
    Location
    From Ireland Living in Manila: Philippines :D
    Posts
    3,668

    Default

    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 .

Page 1 of 2 12 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •