Instant Gratification - mapping to my controller - Page 3
Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 37
  1. #21

    Default

    Apologies for my ignorance but I don't know why Bomes will help me in my task. Also, could you provide a link to vanilla mf tsis. Much appreciated.

  2. #22
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    the instant gratification and deckalized mappings are here: http://www.djtechtools.com/midi-map/

    with bomes you could setup translations from the output of the device you want to use as a controller to and from the input expected from a midi fighter.

    so if want the top left button of the midifighter (C-1 in 4deck mode) to be controlled via a key that sends out D-0 then you use bomes to do that translation - sending the result from bomes to a virtual midi port that is then what you'd select in traktor.

    two big advantages of doing it this way....

    a) you'll be able to load any new mf mappings without modding them

    b) you'll only need to add one rule per note/cc event - rather than the "bugger knows how many times" you'd need to edit each note in the actual traktor tsi

    edit: you'll actually need to add a 2nd bomes mapping to get the led status back to your controller ofc
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

  3. #23
    Tech Mentor derschaich's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    412

    Default

    glovePIE script is done, will post when back at home, stay tuned!

  4. #24
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    Quote Originally Posted by derschaich View Post
    glovePIE script is done, will post when back at home, stay tuned!
    might be cool to add the super combo messages to it too - or have you already done that? might be a bit complicated to add via glovepie though as it doesnt support any type of data structures so it would have to be a whole heap of "if" type statements.

    might be fun though... not sure how many buttons the gamepad has that i ordered (as i only need 8 since thats how many arcade buttons i bought) but if it has at least 12 i'd be able to do that out before pulling it apart and soldering to the 8 arcade buttons...

    combo.c in the mf firmware has the state table in - 44 elements - so 44 "if" statements in glovepie i guess shouldn't be too inefficient though as theres 37 different states and the only state that needs to check more than 1 or 2 button presses is the initial state.
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

  5. #25
    Tech Mentor derschaich's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    412

    Talking

    here you go:

    only the different notes from deck A-D for a gamepad.

    dunno the notes and combinations of the super combos, but i would easily integrate them in my script.

    Code:
    midi.DeviceOut = 2
    midi.DefaultChannel = 3
    
    debug = Joystick.button5
    
    //Define Deck
    if (Joystick1.button1) then Var.Deck=1 ;
    if (Joystick1.pov1left) then Var.Deck=2 ;
    if (Joystick1.pov1down) then Var.Deck=3 ;
    if (Joystick1.button4) then Var.Deck=4 ;
    
    //Deck Modes
    
    //Deck A
    
    if (Var.Deck=1) then {
              Var.ButtonA5 = Joystick1.button5
              Var.ButtonA6 = Joystick1.Button6
              Var.ButtonA7 = Joystick1.Button7
              Var.ButtonA8 = Joystick1.Button8
              Var.ButtonA9 = Joystick1.Button9
              Var.ButtonA10 = Joystick1.Button10
              Var.ButtonA11 = Joystick1.Button11
              Var.ButtonA12 = Joystick1.Button12
              Var.ButtonA13 = Joystick1.Button2
              Var.ButtonA14 = Joystick1.pov1up
              Var.ButtonA15 = Joystick1.pov1right
              Var.ButtonA16 = Joystick1.Button3
              }
             end if;
    
    
    //Deck B
    
    if (Var.Deck=2) then {
              Var.ButtonB5 = Joystick1.button5
              Var.ButtonB6 = Joystick1.Button6
              Var.ButtonB7 = Joystick1.Button7
              Var.ButtonB8 = Joystick1.Button8
              Var.ButtonB9 = Joystick1.Button9
              Var.ButtonB10 = Joystick1.Button10
              Var.ButtonB11 = Joystick1.Button11
              Var.ButtonB12 = Joystick1.Button12
              Var.ButtonB13 = Joystick1.Button2
              Var.ButtonB14 = Joystick1.pov1up
              Var.ButtonB15 = Joystick1.pov1right
              Var.ButtonB16 = Joystick1.Button3
    
              }
              end if
    //Deck C
    
    if (Var.Deck=3) then {
              Var.ButtonC5 = Joystick1.button5
              Var.ButtonC6 = Joystick1.Button6
              Var.ButtonC7 = Joystick1.Button7
              Var.ButtonC8 = Joystick1.Button8
              Var.ButtonC9 = Joystick1.Button9
              Var.ButtonC10 = Joystick1.Button10
              Var.ButtonC11 = Joystick1.Button11
              Var.ButtonC12 = Joystick1.Button12
              Var.ButtonC13 = Joystick1.Button2
              Var.ButtonC14 = Joystick1.pov1up
              Var.ButtonC15 = Joystick1.pov1right
              Var.ButtonC16 = Joystick1.Button3
    
              }
              end if
    //Deck D
    
    if (Var.Deck=4) then {
              Var.ButtonD5 = Joystick1.button5
              Var.ButtonD6 = Joystick1.Button6
              Var.ButtonD7 = Joystick1.Button7
              Var.ButtonD8 = Joystick1.Button8
              Var.ButtonD9 = Joystick1.Button9
              Var.ButtonD10 = Joystick1.Button10
              Var.ButtonD11 = Joystick1.Button11
              Var.ButtonD12 = Joystick1.Button12
              Var.ButtonD13 = Joystick1.Button2
              Var.ButtonD14 = Joystick1.pov1up
              Var.ButtonD15 = Joystick1.pov1right
              Var.ButtonD16 = Joystick1.Button3
    
              }
              end if
    
    //Button Conversion
    
              midi.gsharp3 =  Var.ButtonA5
              midi.a3 =       Var.ButtonA6
              midi.asharp3 =  Var.ButtonA7
              midi.b3 =       Var.ButtonA8
              midi.e3 =       Var.ButtonA9
              midi.f3 =       Var.ButtonA10
              midi.fsharp3 =  Var.ButtonA11
              midi.g3 =       Var.ButtonA12
              midi.c3 =       Var.ButtonA13
              midi.csharp3 =  Var.ButtonA14
              midi.d3 =       Var.ButtonA15
              midi.dsharp3 =  Var.ButtonA16
    
              midi.gsharp4 =  Var.ButtonB5
              midi.a4 =       Var.ButtonB6
              midi.asharp4 =  Var.ButtonB7
              midi.b4 =       Var.ButtonB8
              midi.e4 =       Var.ButtonB9
              midi.f4 =       Var.ButtonB10
              midi.fsharp4 =  Var.ButtonB11
              midi.g4 =       Var.ButtonB12
              midi.c4 =       Var.ButtonB13
              midi.csharp4 =  Var.ButtonB14
              midi.d4 =       Var.ButtonB15
              midi.dsharp4 =  Var.ButtonB16
    
              midi.gsharp5 =  Var.ButtonC5
              midi.a5 =       Var.ButtonC6
              midi.asharp5 =  Var.ButtonC7
              midi.b5 =       Var.ButtonC8
              midi.e5 =       Var.ButtonC9
              midi.f5 =       Var.ButtonC10
              midi.fsharp5 =  Var.ButtonC11
              midi.g5 =       Var.ButtonC12
              midi.c5 =       Var.ButtonC13
              midi.csharp5 =  Var.ButtonC14
              midi.d5 =       Var.ButtonC15
              midi.dsharp5 =  Var.ButtonC16
    
              midi.gsharp6 =  Var.ButtonD5
              midi.a6 =       Var.ButtonD6
              midi.asharp6 =  Var.ButtonD7
              midi.b6 =       Var.ButtonD8
              midi.e6 =       Var.ButtonD9
              midi.f6 =       Var.ButtonD10
              midi.fsharp6 =  Var.ButtonD11
              midi.g6 =       Var.ButtonD12
              midi.c6 =       Var.ButtonD13
              midi.csharp6 =  Var.ButtonD14
              midi.d6 =       Var.ButtonD15
              midi.dsharp6 =  Var.ButtonD16
    
    
    // COMPILED CODE, PLEASE DELETE BEFORE COMPILING!

  6. #26
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    Quote Originally Posted by derschaich View Post
    here you go:

    only the different notes from deck A-D for a gamepad.

    dunno the notes and combinations of the super combos, but i would easily integrate them in my script.
    excellent timing as my gamepad turned up about an hour ago

    the super combos arent just simple combinations of pressing buttons - they're driven by a state machine *but* it might be possible to simplify for using in glovepie as you can tell at any point when multiple buttons are pressed. e.g: for any (all?) where you just need to press and hold multiple buttons just one 'if' can be added to glovepie (i think)

    here's the state machine code from the mf firmware:

    Code:
    // State Transition Table
    // Key numbers are:
    //     +-----------+
    //     | 0  1  2  3|
    //     | 4  5  6  7|
    //     | 8  9 10 11|
    //     |12 13 14 15|
    //     +-----------+
    //
    combo_state_t state_table[] PROGMEM = {
    //          state  key           next action
    /*  0 */   {  0,   12 | KEYDOWN,   1,  COMBO_NONE },  // combo A
    /*  1 */   {  0,    9 | KEYDOWN,   5,  COMBO_NONE },  // combo B
    /*  2 */   {  0,    8 | KEYDOWN,   9,  COMBO_NONE },  // combo D
    /*  3 */   {  0,    4 | KEYDOWN,  18,  COMBO_NONE },  // combo E
    /*  4 */   {  1,   13 | KEYDOWN,   2,  COMBO_NONE },  // combo A
    /*  5 */   {  2,   14 | KEYDOWN,   3,  COMBO_NONE },
    /*  6 */   {  3,   15 | KEYDOWN,   4,  COMBO_A_DOWN },
    /*  7 */   {  4,   15 | KEYUP,     0,  COMBO_A_RELEASE },
    
    /*  8 */   {  5,   10 | KEYDOWN,   6,  COMBO_NONE }, // combo B
    /*  9 */   {  6,    5 | KEYDOWN,   7,  COMBO_NONE },
    /* 10 */   {  7,    6 | KEYDOWN,   8,  COMBO_C_DOWN },
    /* 11 */   {  8,    6 | KEYUP,     0,  COMBO_C_RELEASE },
    
    /* 12 */   {  9,    8 | KEYUP,    10,  COMBO_NONE },  // combo D
    /* 13 */   { 10,    9 | KEYDOWN,  11,  COMBO_NONE },
    /* 14 */   { 11,    9 | KEYUP,    12,  COMBO_NONE },
    /* 15 */   { 11,   10 | KEYDOWN,   6,  COMBO_NONE }, // --> combo C
    /* 16 */   { 12,   10 | KEYDOWN,  13,  COMBO_NONE },
    /* 17 */   { 13,   10 | KEYUP,    14,  COMBO_NONE },
    /* 18 */   { 14,   10 | KEYDOWN,  15,  COMBO_NONE },
    /* 19 */   { 15,   10 | KEYUP,    16,  COMBO_NONE },
    /* 20 */   { 16,   11 | KEYDOWN,  17,  COMBO_D_DOWN },
    /* 21 */   { 17,   11 | KEYUP,     0,  COMBO_D_RELEASE },
    
    /* 22 */   { 18,    4 | KEYUP,    19, COMBO_NONE }, // combo E
    /* 23 */   { 19,    4 | KEYDOWN,  20, COMBO_NONE },
    /* 24 */   { 20,    4 | KEYUP,    21, COMBO_NONE },
    /* 25 */   { 21,   12 | KEYDOWN,  22, COMBO_NONE },
    /* 26 */   { 22,   12 | KEYUP,    23, COMBO_NONE },
    /* 27 */   { 23,   12 | KEYDOWN,  24, COMBO_NONE },
    /* 28 */   { 24,   12 | KEYUP,    25, COMBO_NONE },
    /* 29 */   { 25,    8 | KEYDOWN,  26, COMBO_NONE },
    /* 30 */   { 26,    8 | KEYUP,    27, COMBO_NONE },
    /* 31 */   { 26,   10 | KEYDOWN,   6, COMBO_NONE }, // --> combo C
    /* 32 */   { 27,    9 | KEYDOWN,  28, COMBO_NONE },
    /* 33 */   { 28,    9 | KEYUP,    29, COMBO_NONE },
    /* 34 */   { 29,    8 | KEYDOWN,  30, COMBO_NONE },
    /* 35 */   { 30,    8 | KEYUP,    31, COMBO_NONE },
    /* 36 */   { 31,    9 | KEYDOWN,  32, COMBO_NONE },
    /* 37 */   { 31,   10 | KEYDOWN,  13, COMBO_NONE }, // --> combo D
    /* 38 */   { 32,    9 | KEYUP,    33, COMBO_NONE },
    /* 39 */   { 33,   11 | KEYDOWN,  34, COMBO_NONE },
    /* 40 */   { 33,    9 | KEYDOWN,  11, COMBO_NONE }, // --> combo D
    /* 41 */   { 34,   11 | KEYUP,    35, COMBO_NONE },
    /* 42 */   { 35,   10 | KEYDOWN,  36, COMBO_E_DOWN },
    /* 43 */   { 36,   10 | KEYUP,     0, COMBO_E_RELEASE },
    };
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

  7. #27
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    i think the explanation of super combo's in this thread is a tad simpler also makes more sense i think for glovepie

    http://www.djtechtools.com/forum/sho...ht=super+combo

    my gamepad only has 12buttons + start + select but what i can see from your script looks cool. i only have 8 arcade buttons but thinking of maybe getting some more... (with a diff gamepad ofc)
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

  8. #28
    Tech Mentor derschaich's Avatar
    Join Date
    May 2009
    Location
    Munich
    Posts
    412

    Default

    1. Buttons:

    I have 12 buttons, too, but i used the 4 "buttons" from the D-Pad, too to get a full 16-button matrix. be careful, as the d-pad states have conflicting messages (up+down and left+right).
    therefore i have two d-pad-buttons soldered to the top row of my clone, and the other two to the bottom row.

    2. grat mapping:

    i hope my script works with the old mapping (had no chance to test it yet) but with the new firmware triggering additional midi-notes at those combinations in the upper mentioned thread to free modifiers inside traktor. if i knew those messages i could implement them at ease!

  9. #29
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    Quote Originally Posted by derschaich View Post
    1. Buttons:

    I have 12 buttons, too, but i used the 4 "buttons" from the D-Pad, too to get a full 16-button matrix. be careful, as the d-pad states have conflicting messages (up+down and left+right).
    therefore i have two d-pad-buttons soldered to the top row of my clone, and the other two to the bottom row.
    ah - then mine only has 8 buttons + start + select + the xy buttons. i'm just playing with your mapping to use the 8 buttons + xy as 12 buttons and then start+select as the first two on the top row of a midi fighter. does mean i cant press more than two of the xy ones together - but this is only to play with your script as i'll only be creating an 8 button arcade controller from this for the time being.

    2. grat mapping:

    i hope my script works with the old mapping (had no chance to test it yet) but with the new firmware triggering additional midi-notes at those combinations in the upper mentioned thread to free modifiers inside traktor. if i knew those messages i could implement them at ease!
    for starters you could send the combo message on note just when all the right buttons are pressed together, i.e: make them all like combo b which doesnt care about the order the buttons are pressed in, which would at least make the glovepie script simpler.

    would still need to send a note off mesage for the combo when any of the buttons are released ofc - which would be easier to do maybe if implementing the full state machine.

    the messages sent out for the combos are: a=8, b=9, c=10, d=11, e=12 or at least those are the values sent to midi_stream_note() in the firmware. doesnt make sense tho as note 8 would be G#-1 surely? and i didnt see that in the tsi file... guess i'm missing something. i know in other places the notes are just offsets from note 36 but dont see how that would get added on in this bit of code - ah well...
    11mba / 13mbp / tsp2 / live9 / audio10 / 2x reloop rp7000gold / 2x xdj1000 / 2x d2
    maschine mk2 / x1 mk2 / z1 / f1 / midifighter / lpd8 / 2x launchpad / launchkontrol xl
    Quote Originally Posted by derschaich
    "wohoo, i'm touched, turn on the FX"

  10. #30
    Tech Convert
    Join Date
    Aug 2010
    Posts
    18

    Default

    Hi the script for glovepie of the four bank mode works perfectly, can you incorporate the super combos and post it again pleace, that would be awesome. Thank you
    Last edited by angelva; 06-02-2011 at 06:36 PM.

Page 3 of 4 FirstFirst 1234 LastLast

Posting Permissions

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