"Intermediary midi mapping" software *discussion thread* (Traktor mapping is a pain) - Page 5
Page 5 of 44 FirstFirst 12345678915 ... LastLast
Results 41 to 50 of 433
  1. #41
    Tech Guru zestoi's Avatar
    Join Date
    Mar 2011
    Location
    UK, Ukraine, Romania
    Posts
    2,836

    Default

    in case anyone is curious - this is the config file i'll be trying to finish a bit later, so i can release a version of the midimasher. gives u an idea of the kind of lua code that can be used anyway. no actual midi stuff happens in the lua code, only named "events"

    Code:
    -------------------------------------------------------------------------------
    -- connect devices
    -------------------------------------------------------------------------------
    
    open_midi_device("traktor", "traktor", "Traktor to MM", "MM to Traktor");
    open_midi_device("lpd8", "lpd8", "LPD8", "LPD8", 6);
    
    --
    -- function layout:
    --
    -- +--------+--------+--------+--------+
    -- | slicer | loop   | jump   | deck   |  
    -- | on/off | mode   | mode   |        |  \
    -- +--------+-------- +-------+--------+   * PAD mode
    -- | play   | cue    | sync   |        |  /
    -- |        |        |        |        |
    -- +--------+--------+--------+--------+
    -- | hot    | hot    | hot    | hot    |  
    -- | cue 1  | cue 2  | cue 3  | cue 4  |  \
    -- +--------+--------+--------+--------+   * CC mode
    -- | loop   | loop-  | loop+  | shift  |  /
    -- |        |        |        |        |
    -- +--------+--------+--------+--------+
    -- | slot   | slot   | slot   | slot   |  
    -- | c1     | c2     | c3     | c3     |  \
    -- +--------+--------+--------+--------+   * PC mode
    -- | slot   | slot   | slot   | slot   |  /
    -- | d1     | d2     | d3     | d3     |
    -- +--------+--------+--------+--------+
    --
    -- * when 'deck' pad is lit, controls are for deck b
    -- * when slicer is active CC mode pads become the slicer pads
    -- * shift & hotcue to delete else they set/jump
    -- * shift & loop+ or loop- to tempo bend
    -- * pots control eq+levels for decks a+b
    --
    -- pad names:
    --
    -- +--------+--------+--------+--------+
    -- |  0,0   |  0,1   |  0,2   |  0,3   |
    -- +--------+--------+--------+--------+
    -- |  1,0   |  1,1   |  1,2   |  1,3   |
    -- +--------+--------+--------+--------+
    -- |  2,0   |  2,1   |  2,2   |  2,3   |
    -- +--------+--------+--------+--------+
    -- |  3,0   |  3,1   |  3,2   |  3,3   |
    -- +--------+--------+--------+--------+
    -- |  4,0   |  4,1   |  4,2   |  4,3   |
    -- +--------+--------+--------+--------+
    -- |  5,0   |  5,1   |  5,2   |  5,3   |
    -- +--------+--------+--------+--------+
    --
    -- pages used:
    --
    -- page 0: global page, controls defined on page 0 will always be available
    -- page 1: deck a
    -- page 2: deck a / shift held
    -- page 3: deck a / slicer active
    -- page 4: deck b
    -- page 5: deck b / shift held
    -- page 6: deck b / slicer active
    --
    
    -------------------------------------------------------------------------------
    -- a function to allow page changes
    -------------------------------------------------------------------------------
    
    function change_page()
    
    	local page
    
    	if deck_toggle == 0 then
    		if slicer_a_active == 0 then
    			if shift == 0 then
    				page = 1
    			else
    				page = 2
    			end
    		else
    			page = 3
    		end
    	else
    		if slicer_b_active == 0 then
    			if shift == 0 then
    				page = 4
    			else
    				page = 5
    			end
    		else
    			page = 6
    		end
    	end
    
    	--print("CHANGE PAGE ",deck_toggle, shift, slicer_a_active, slicer_a_active, "page="..page)
    	set_page("lpd8", page)
    end
    
    -------------------------------------------------------------------------------
    -- a function to simplify assigning of hotcues
    -------------------------------------------------------------------------------
    
    function hotcue(d, e, p, deck, cuenum)
    
    	local set_hotcue = "select_set_store_hotcue_"..cuenum.."_"..deck
    	local delete_hotcue = "delete_hotcue_"..cuenum.."_"..deck
    	local hotcue_state = "hotcue"..cuenum.."_state_"..deck
    
    	capture(d, e, ALL, p, function(d, e, v, p)
    
    		-- either set/store or delete a hotcue if shift is pressed
    
    		if shift == 0 then
    			send("traktor", set_hotcue, v)
    		else
    			send("traktor", delete_hotcue, v)
    		end
    
    		-- the lpd8 turns the led off when u release, keep it on if hotcue is set
    
    		if v == 0 then
    			if get("traktor", hotcue_state) > 0 then
    				send(d, e, ON, p)
    			end
    		end
    	end)
    
    	-- always send traktors hotcue events back to the pad led
    
    	pipe("traktor", hotcue_state, 0, d, e, p)
    end
    
    -------------------------------------------------------------------------------
    -- define our layout
    -------------------------------------------------------------------------------
    
    --
    -- deck change toggle and shift button
    --
    
    toggle_modifier("lpd8", "0,3", 0, ON, OFF, "deck_toggle", "change_page")
    hold_modifier("lpd8", "3,3", {1, 2, 4, 5}, ON, OFF, "shift", "change_page")
    
    ----------------------------------------------------------
    -- PAD mode
    ----------------------------------------------------------
    
    -- attach slicers for deck a and b
    
    id = traktor_slicer("lpd8", grid("2,0", "3,3"), 1, "a", "slicer_a_active", "0,0", "0,1", "0,2", "change_page")
    slicer.active_toggle("lpd8", "0,0", 2, id, "slicer_a_active", "change_page")
    
    id = traktor_slicer("lpd8", grid("2,0", "3,3"), 3, "b", "slicer_b_active", "0,0", "0,1", "0,2", "change_page")
    slicer.active_toggle("lpd8", "0,0", 4, id, "slicer_b_active", "change_page")
    
    
    toggle("lpd8", "1,0", {1, 2}, ON, OFF, "traktor", "play_a")
    button("lpd8", "1,1", {1, 2}, ON, OFF, "traktor", "cue_a")
    toggle("lpd8", "1,2", {1, 2}, ON, OFF, "traktor", "beat_sync_a")
    
    toggle("lpd8", "1,0", {3, 4}, ON, OFF, "traktor", "play_b")
    button("lpd8", "1,1", {3, 4}, ON, OFF, "traktor", "cue_b")
    toggle("lpd8", "1,2", {3, 4}, ON, OFF, "traktor", "beat_sync_b")
    
    ----------------------------------------------------------
    -- CC mode (when slicer not active)
    ----------------------------------------------------------
    
    -- hot cues 1-4 on top row
    
    hotcue("lpd8", "2,0", {1, 2}, "a", 1)
    hotcue("lpd8", "2,1", {1, 2}, "a", 2)
    hotcue("lpd8", "2,2", {1, 2}, "a", 3)
    hotcue("lpd8", "2,3", {1, 2}, "a", 4)
    
    hotcue("lpd8", "2,0", {4, 5}, "b", 1)
    hotcue("lpd8", "2,1", {4, 5}, "b", 2)
    hotcue("lpd8", "2,2", {4, 5}, "b", 3)
    hotcue("lpd8", "2,3", {4, 5}, "b", 4)
    
    -- loop on/off and loop size
    
    toggle("lpd8", "3,0", 1, ON, OFF, "traktor", "loop_active_a")
    pipe("lpd8", "3,1", 1, "traktor", "loop_size_dec_a")
    pipe("lpd8", "3,2", 1, "traktor", "loop_size_inc_a")
    
    toggle("lpd8", "3,0", 3, ON, OFF, "traktor", "loop_active_b")
    pipe("lpd8", "3,1", 3, "traktor", "loop_size_dec_b")
    pipe("lpd8", "3,2", 3, "traktor", "loop_size_inc_b")
    
    -- when shift pressed loop+/- pads become pitch bends
    
    pipe("lpd8", "3,1", 2, "traktor", "tempo_bend_down_a")
    pipe("lpd8", "3,1", 2, "traktor", "tempo_bend_up_a")
    
    pipe("lpd8", "3,1", 4, "traktor", "tempo_bend_down_b")
    pipe("lpd8", "3,1", 4, "traktor", "tempo_bend_up_b")
    
    ----------------------------------------------------------
    -- PC mode 
    ----------------------------------------------------------
    
    pipe("lpd8", "4,0", 0, "traktor", "slot_retrigger_c1")
    pipe("lpd8", "4,1", 0, "traktor", "slot_retrigger_c2")
    pipe("lpd8", "4,2", 0, "traktor", "slot_retrigger_c3")
    pipe("lpd8", "4,3", 0, "traktor", "slot_retrigger_c4")
    pipe("lpd8", "5,0", 0, "traktor", "slot_retrigger_d1")
    pipe("lpd8", "5,1", 0, "traktor", "slot_retrigger_d2")
    pipe("lpd8", "5,2", 0, "traktor", "slot_retrigger_d3")
    pipe("lpd8", "5,3", 0, "traktor", "slot_retrigger_d4")
    
    ----------------------------------------------------------
    -- Pots
    ----------------------------------------------------------
    
    pipe("lpd8", "fader1", 0, "traktor", "eq_low_a")
    pipe("lpd8", "fader2", 0, "traktor", "eq_mid_a")
    pipe("lpd8", "fader3", 0, "traktor", "eq_high_a")
    pipe("lpd8", "fader4", 0, "traktor", "volume_fader_a")
    pipe("lpd8", "fader5", 0, "traktor", "eq_low_b")
    pipe("lpd8", "fader6", 0, "traktor", "eq_mid_b")
    pipe("lpd8", "fader7", 0, "traktor", "eq_high_b")
    pipe("lpd8", "fader8", 0, "traktor", "volume_fader_b")
    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"

  2. #42
    Tech Mentor safefire's Avatar
    Join Date
    Aug 2010
    Posts
    259

    Default

    Cool cool. Can't wait to test it
    Fixing stuff that isn't broken.

  3. #43
    Tech Wizard Subconcussion's Avatar
    Join Date
    Mar 2010
    Location
    Tokyo
    Posts
    30

    Default

    I don't know if it is mentioned here, if so sorry for mentioning it again. You know Xtreme Mapping for mac. It works and they have obviously cracked the encryption of .tsi files (else they wouldn't be able to save files in the format, less make them work flawlessly in Traktor). So has it occurred to anyone with a mac and interested in fixing a decent mapping program for windows or whtvr to actually open xtreme mapping and see what code lies in there and find the encryption key?? It is probably easier than looking to Traktor, I know Xtreme Mapping is written in Cocoa which makes it quite easy to understand...

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

    Default

    Quote Originally Posted by Subconcussion View Post
    I don't know if it is mentioned here, if so sorry for mentioning it again. You know Xtreme Mapping for mac. It works and they have obviously cracked the encryption of .tsi files (else they wouldn't be able to save files in the format, less make them work flawlessly in Traktor). So has it occurred to anyone with a mac and interested in fixing a decent mapping program for windows or whtvr to actually open xtreme mapping and see what code lies in there and find the encryption key?? It is probably easier than looking to Traktor, I know Xtreme Mapping is written in Cocoa which makes it quite easy to understand...
    i doubt it's as simple as just a static decryption key, but would nice to be wrong on that.

    that app does look very cool and i'd buy a copy if i had a mac. my midimasher isnt trying to be the same kind of app as that, tho if someone coded a gui to create its config files then it could do almost the same thing (you'd still need to tweak the actual tsi for jog wheel sensitivity settings etc)

    this app does the same kind of job as things like bomes or midikatapult but with event names tied to midi data (and in the case of traktor a massive tsi file) so that you can route events by name from any app/controller to any app/controller.
    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. #45
    Tech Wizard
    Join Date
    Jun 2010
    Location
    Essex UK
    Posts
    35

    Default

    Any updates soon Zestoi? Cant wait to try this out
    PC i5 4690k, Win 7 64bit, 8gb ram, Audio4 DJ, Vestax VCI-100, Technics SL1200mk2's, Numark CDX, Vestax VCI-100, Behringer DDM4000, Stanton SK6, Korg Kaoss pad 2, Novation Bass station, Yamaha RY30, Akai SG01v, Lexicon Vortex, Art FXR, Akai LPD8, Maschine mk2, Roland TB-3.

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

    Default

    today hopefully. i thought the lpd8 would be a good one to try first as its so common, but having some issues with it always turning off the leds when u release a pad. works in some cases (like toggle buttons) but not all.

    currently having fun (lol) trying to map loop set/active, as its the loop_active message that needs to turn on/off the pad while its a loop_set i want to send out.

    getting there anyway... no issues at all like this with the code on a launchpad so maybe i should have come up with a mapping for that first
    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. #47

    Default

    I believe LPD8 is a better choice (not that I own one or anything like that xD)
    iMac(early 2008) | Compaq Presario cq56, celeron dual core @ 2.1Ghz,4GB RAM | hercules mp3 e2| 2 x Akai LPD8 | TP2

  8. #48
    Tech Wizard
    Join Date
    Jun 2010
    Location
    Essex UK
    Posts
    35

    Default

    Quote Originally Posted by kostis12345 View Post
    I believe LPD8 is a better choice (not that I own one or anything like that xD)
    +1:-)
    PC i5 4690k, Win 7 64bit, 8gb ram, Audio4 DJ, Vestax VCI-100, Technics SL1200mk2's, Numark CDX, Vestax VCI-100, Behringer DDM4000, Stanton SK6, Korg Kaoss pad 2, Novation Bass station, Yamaha RY30, Akai SG01v, Lexicon Vortex, Art FXR, Akai LPD8, Maschine mk2, Roland TB-3.

  9. #49
    Tech Wizard
    Join Date
    Jun 2010
    Location
    Essex UK
    Posts
    35

    Default

    Zestoi, could your led problem have anything to do with the lpd8 editor settings? you can change the pad from toggle to momentary, I had to do this to sort out some led issues with one of my mappings. Can't remember which way round helped but I can check tomorrow of it helps :-)
    PC i5 4690k, Win 7 64bit, 8gb ram, Audio4 DJ, Vestax VCI-100, Technics SL1200mk2's, Numark CDX, Vestax VCI-100, Behringer DDM4000, Stanton SK6, Korg Kaoss pad 2, Novation Bass station, Yamaha RY30, Akai SG01v, Lexicon Vortex, Art FXR, Akai LPD8, Maschine mk2, Roland TB-3.

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

    Default

    Quote Originally Posted by gingerman View Post
    Zestoi, could your led problem have anything to do with the lpd8 editor settings? you can change the pad from toggle to momentary, I had to do this to sort out some led issues with one of my mappings. Can't remember which way round helped but I can check tomorrow of it helps :-)
    nope - they're all set to momentary. the issue is that for most things midi events happen in this order:

    1) press a pad thats assigned to play deck a on the lpd8
    2) midimasher sends out the midi message to traktor
    3) traktor sends back a play_a event feedback which lights up the pad (tho its already lit up ofc as you're holding it)
    4) release the pad and the led goes out (even tho we've sent a +ve midi message to lpd8 to tell the pad to light - thats ignored)
    5) midimasher needs to catch the midi off event from the pad release, and if traktor is currently playing then send the lpd8 another +ve midi message so it doesnt go out

    that particular issue my code handles fine, but just not in all cases. setting cue's has given me a few headaches as you always want the led to be lit or not based on the "loop active" feedback from traktor but also send the loop set midi message as well.

    it all 95% works, just a few oddities here and there. usually just when i think i have all the bases covered i try to map something else and find another quirk.

    most of these issues are related in some way to the lpd8's madness of always turning off an led when u release it. and only in pad and cc mode as you cant light up the pads over midi in pc mode from what i can see - still useful as triggers tho.

    i actually got side tracked doing real work since last posting here but will have time to finish this tomorrow. with or without quirks i'll post a version. plus most bugs will probably come out in the wash when other people try to make configs and do stuff i just hadnt thought of.

    with 2 tracks playing in traktor and level/beatphase feedback etc and debug turned on which dumps all incoming and outgoing events, with my current config, it eats up a massive 1% to 2% of cpu according to the task manager with debug off it always says 0, so less than 0.5% cpu i presume.

    and no extra delay that i can tell but probably need to test it with the jogs on my icon idj again - as they're pretty bloody responsive when connected direct to traktor.
    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"

Page 5 of 44 FirstFirst 12345678915 ... 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
  •