From 22c16d7f2a2325258785d6111dca914e2d10bd5f Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Sun, 8 Dec 2024 18:25:30 +1300 Subject: [PATCH] Document version changes; add Streamdeck mappings in CSV format --- README.md | 10 +- src/sets/CT6.als | Bin 38779 -> 38810 bytes src/streamdeck-xl/mappings.csv | 322 +++++++++++++-------------------- 3 files changed, 130 insertions(+), 202 deletions(-) diff --git a/README.md b/README.md index 1438c54..365fd09 100644 --- a/README.md +++ b/README.md @@ -32,21 +32,13 @@ This repo uses a build script so that I can write JavaScript in ES6 rather than ### Description +* Added [Streamdeck mappings](src/streamdeck-xl/mappings.csv) * Streamdeck XL (`CT6.streamDeckProfile`): * `build` script now copies Streamdeck XML files into *Library/Application Support/control-traktor/* - * A - Decks/Rec - * added `PUSH PAD MODE` - * added `FREEZE` - * added `FREEZE SLICE COUNT` - * added `FREEZE SLICE SIZE` - * added `LIVE TEMPO PHASE NUDGE` - * added `LIVE CLEAR CLIP` * D - Settings * consolidated Live launch buttons into 1 which launches the CT6 set * added `MIDI` button to access *Audio MIDI Setup* which is where the IAC Driver is configured, for the *Daw2StreamDeck* and *StreamDeck2Daw* connectors * added `Supreme MOD` - launches *Patreon page* to check for updates -* Ableton Live - * * Traktor screen * Replaced custom hacks with [Supreme Edition Mod](https://www.patreon.com/c/supremeedition/posts) diff --git a/src/sets/CT6.als b/src/sets/CT6.als index fd331048dcedd319759179edfaaed11f62aac0dc..60dec575a2883acd56a05f420238e1d3f3e5ea48 100644 GIT binary patch literal 38810 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 literal 38779 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 diff --git a/src/streamdeck-xl/mappings.csv b/src/streamdeck-xl/mappings.csv index 0d9d8f8..5c45f19 100644 --- a/src/streamdeck-xl/mappings.csv +++ b/src/streamdeck-xl/mappings.csv @@ -1,193 +1,129 @@ -Page,Current Button Position,Button States,CT Version,Channel,CC,Button Type,Value,Midi Out Port,Midi In Port,Result,Purpose,Files -A - Decks/Rec,Row 1 Col 1,"Deck A -Deck B -Deck C -Deck D",,10,23,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Deck Focus Selector""","Displays/Sets the deck, for mappings that affect ""Device Target: Focus""","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/focus-deck.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 2,"Loop -BeatJump -Loop Out -Loop In",,10,26,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Mode Selector""",Displays/Sets the move mode,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-move-mode.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 3,"1/32 bar -1/16 bar -1/8 bar -1/4 bar -1/2 bar -1 bar -2 bars -4 bars -8 bars -16 bars -32 bars",,10,60,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Loop Size Selector""",Displays/Sets the size of the loop,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-size.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 4,"xFine -Fine -1/16 bar -1/8 bar -1/4 bar -1/2 bar -1 bar -2 bars -4 bars -8 bars -16 bars -32 bars -Loop",,10,27,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Size Selector""","Displays/Sets the amount that the loop will be moved, or that the play head will be beatjumped by","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-move-size.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 5,BPM /2,,10,58,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""BPM Lock On"" (off) -Calls Traktor's ""BPM /2""",Halves the deck BPM,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 6,BPM x2,,10,59,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""BPM Lock On"" (off) -Calls Traktor's ""BPM x2""",Doubles the deck BPM,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 1 Col 7,-,,-,-,-,-,Traktor Virtual Input,Traktor Virtual Output,-,-,- -A - Decks/Rec,Row 1 Col 8,A Decks/Rec,,"- -10 -10","- -31 -36","- -Push -Push","- -0 (On), 127 (Off) -127 (On), 0 (Off)","- -Traktor Virtual Input -Traktor Virtual Input","- -Traktor Virtual Output -Traktor Virtual Output","Switch profile page -Calls Traktor's ""Layout Selector"" -Calls Traktor's ""Send Monitor State""","View A Decks/Rec -Switch to Traktor's configured ""Decks"" view -Sync state of all buttons with Traktor","src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - App Export.tsi -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 2 Col 1,A to B,,10,11,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Duplicate Track Deck A""",Copy source of Deck A to Deck B,TODO -A - Decks/Rec,Row 2 Col 2,B to A,,10,12,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Duplicate Track Deck B""",Copy source of Deck B to Deck A,TODO -A - Decks/Rec,Row 2 Col 3,Back,,10,28,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Move""","Move loop back, or beatjump back by the specified ""Size Selector""",TODO -A - Decks/Rec,Row 2 Col 4,Forward,,10,29,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's ""Move""","Move loop forward, or beatjump forward by the specified ""Size Selector""",TODO -A - Decks/Rec,Row 2 Col 5,Tempo MASTER Set,,10,32,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Call Traktor's ""Set as Tempo Master""",Make the focussed deck the tempo master,TODO -A - Decks/Rec,Row 2 Col 6,LIVE TEMPO PHASE NUDGE Down,6,10,66,Hold,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,"Call's Live's ""Phase Nudge"" buttons, hardcoding the relevant CCs to the controls via an M4L device *usually this would require per-set MIDI mapping)",TODO,TODO -A - Decks/Rec,Row 2 Col 7,LIVE TEMPO PHASE NUDGE Up,6,10,68,Hold,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,TODO,"Controls Live's Phase Nudge buttons, hardcoding the relevant CCs to the controls via an M4L device (usually this would require per-set MIDI mapping)",TODO -A - Decks/Rec,Row 2 Col 8,B Rmx Deck,,"- -- -10 -10","- -- -31 -36","- -- -Push -Push","- -- -0 (On), 127 (Off) -127 (On), 0 (Off)","- -- -Traktor Virtual Input -Traktor Virtual Input","- -- -Traktor Virtual Output -Traktor Virtual Output","Switch profile page -Focus Traktor application -Calls Traktor's ""Layout Selector"" -Calls Traktor's ""Send Monitor State""","View B Rmx Deck -Bring Traktor to front to receive mouse clicks -Switch to Traktor's configured ""Decks"" view -Sync state of all buttons with Traktor","src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - App Export.tsi -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 1,"Dry -Wet",,10,21,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-recorder-dry-wet.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 2,Delete,,10,15,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 3,"4 bars -8 bars -16 bars -32 bars",,10,22,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-recorder-size.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 4,"Record -Recording",,10,14,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 5,"Record -Recording",,10,13,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 6,LIVE CLEAR CLIP,6,10,67,Push,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,TODO,"To easily remove all clip data, this is much faster than switching views to create a new clip and getting it back in time","src/clyphx-pro/X-Controls.txt -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 3 Col 7,A-Z,,-,-,-,-,-,-,Switch profile page,View Keyboard A-Z,src/streamdeck-xl/profiles/CT6.streamDeckProfile -A - Decks/Rec,Row 3 Col 8,C Browser,,"- -- -10 -10 -10","- -- -36 -31 -7","- -- -Push -Push -Push","- -- -127 (On), 0 (Off) -127 (On), 0 (Off) -127 (On), 0 (Off)","- -- -Traktor Virtual Input -Traktor Virtual Input -Traktor Virtual Input","- -- -Traktor Virtual Output -Traktor Virtual Output -Traktor Virtual Output","Switch profile page -Focus Traktor application -Calls Traktor's ""Send Monitor State"" -Calls Traktor's ""Layout Selector"" -Calls Traktor's ""Search"" & ""Search Clear""","View B Rmx Deck -Bring Traktor to front to receive mouse clicks -Sync state of all buttons with Traktor -Switch to Traktor's configured ""Decks"" view -Focus and clear Traktor's Search field","src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - App Export.tsi -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 1,Shift,,10,4,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 2,"PUSH PAD MODE Off -PUSH PAD MODE Hotcues -PUSH PAD MODE Slices",6,10,60,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,TODO,Highlights the current playing slice on Push's 16 pad grid,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/leds-to-push.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 3,"FREEZE Off -FREEZE On",6,10,61,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,"Toggles freeze mode on and off, easier than using the S8 as Supreme Mod makes Freeze a SHIFTed function","src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 4,"FREEZE SLICE COUNT 8 -FREEZE SLICE COUNT 16",6,10,64,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,TODO,"Required to achieve 16 slices, as defaults to 8 slices after freeze is engaged","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/freeze-slice-count.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 5,"FREEZE SLICE SIZE 1/4 beat -FREEZE SLICE SIZE 1/2 beat -FREEZE SLICE SIZE 1 beat -FREEZE SLICE SIZE 2 beats -FREEZE SLICE SIZE 4 beats",6,10,63,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,TODO,Useful for isolating stabs and drum hits,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/freeze-slice-size.xml -src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 6,Pause,6,10,65,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,TODO,TODO,"src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -A - Decks/Rec,Row 4 Col 7,0-9`,,-,-,-,-,-,-,Switch profile page,View Keyboard 0-9,src/streamdeck-xl/profiles/CT6.streamDeckProfile -A - Decks/Rec,Row 4 Col 8,D Settings,,"- -10","- -36","- -Push","- -127 (On), 0 (Off)","- -Traktor Virtual Input","- -Traktor Virtual Output","Switch profile page -Calls Traktor's ""Send Monitor State""","View D Settings -Sync state of all buttons with Traktor","src/streamdeck-xl/profiles/CT6.streamDeckProfile -src/traktor/CT6 - Streamdeck XL.tsi" -,,,,,,,,,,,, \ No newline at end of file +Page,Current Button Position,Button States,CT Version,Action #,Channel,CC,Button Type,Value,Midi Out Port,Midi In Port,Result,Purpose,Files +A - Decks/Rec,Row 1 Col 1,"Deck A, +Deck B, +Deck C, +Deck D",,1,10,23,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Deck Focus Selector',"Displays/Sets the deck, for mappings that affect 'Device Target: Focus'","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/focus-deck.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 2,"Loop, +BeatJump, +Loop Out, +Loop In",,1,10,26,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Mode Selector',Displays/Sets the move mode,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-move-mode.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 3,"1/32 bar, +1/16 bar, +1/8 bar, +1/4 bar, +1/2 bar, +1 bar, +2 bars, +4 bars, +8 bars, +16 bars, +32 bars",,1,10,60,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Loop Size Selector',Displays/Sets the size of the loop,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-size.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 4,"xFine, +Fine, +1/16 bar, +1/8 bar, +1/4 bar, +1/2 bar, +1 bar, +2 bars, +4 bars, +8 bars, +16 bars, +32 bars, +Loop",,1,10,27,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Size Selector',"Displays/Sets the amount that the loop will be moved, or that the play head will be beatjumped by","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-move-size.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 5,BPM /2,,1,10,58,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's 'BPM Lock On' (off) +Calls Traktor's 'BPM /2'",Halves the deck BPM,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 6,BPM x2,,1,10,59,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,"Calls Traktor's 'BPM Lock On' (off) +Calls Traktor's 'BPM x2'",Doubles the deck BPM,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 7,-,,1,-,-,-,-,Traktor Virtual Input,Traktor Virtual Output,-,-,- +A - Decks/Rec,Row 1 Col 8,A Decks/Rec,,1,-,-,-,-,-,-,Switch profile page,View A Decks/Rec,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 1 Col 8,A Decks/Rec,,2,10,31,Push,"0 (On), 127 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Layout Selector',Switch to Traktor's configured 'Decks' view,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - App Export.tsi, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 1 Col 8,A Decks/Rec,,3,10,36,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Send Monitor State',Sync state of all buttons with Traktor,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 2 Col 1,A to B,,1,10,11,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Duplicate Track Deck A',Copy source of Deck A to Deck B,TODO +A - Decks/Rec,Row 2 Col 2,B to A,,1,10,12,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Duplicate Track Deck B',Copy source of Deck B to Deck A,TODO +A - Decks/Rec,Row 2 Col 3,Back,,1,10,28,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Move',"Move loop back, or beatjump back by the specified 'Size Selector'",TODO +A - Decks/Rec,Row 2 Col 4,Forward,,1,10,29,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Move',"Move loop forward, or beatjump forward by the specified 'Size Selector'",TODO +A - Decks/Rec,Row 2 Col 5,Tempo MASTER Set,,1,10,32,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Call Traktor's 'Set as Tempo Master',Make the focussed deck the tempo master,TODO +A - Decks/Rec,Row 2 Col 6,LIVE TEMPO PHASE NUDGE Down,6,1,10,66,Hold,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,Call's Live's 'Phase Nudge Down' button via M4L device 'CT6 Params',Nudges Live's audio output into time with Traktor's by slowing Live's tempo for as long as the button is held down. The M4L device facilitates mapping the CCs to Live's API (the LOM) to avoid having to MIDI map these controls on a per-set basis,"src/live/CT6 Params.adv, +src/live/CT6 Params.amxd, +src/live/CT6 Rack.adg" +A - Decks/Rec,Row 2 Col 7,LIVE TEMPO PHASE NUDGE Up,6,1,10,68,Hold,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,Call's Live's 'Phase Nudge Up' button via M4L device 'CT6 Params',Nudges Live's audio output into time with Traktor's by slowing Live's tempo for as long as the button is held down. The M4L device facilitates mapping the CCs to Live's API (the LOM) to avoid having to MIDI map these controls on a per-set basis,TODO +A - Decks/Rec,Row 2 Col 8,B Rmx Deck,,1,-,-,-,-,-,-,Switch profile page,View B Rmx Deck,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 2 Col 8,B Rmx Deck,,2,-,-,-,-,-,-,Focus Traktor application,Bring Traktor to front to receive mouse clicks,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 2 Col 8,B Rmx Deck,,3,10,31,Push,"0 (On), 127 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Layout Selector',Switch to Traktor's configured 'Decks' view,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - App Export.tsi, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 2 Col 8,B Rmx Deck,,4,10,36,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Send Monitor State',Sync state of all buttons with Traktor,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 1,"Dry, +Wet",,1,10,21,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Dry/Wet Adjust',Toggles between 100% Dry (loop recorder recording not heard) and 100% Wet (only loop recorder recording heard),"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-recorder-dry-wet.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 2,Delete,,1,10,15,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Delete (Loop Recorder)',Deletes the existing loop recording,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 3,"4 bars, +8 bars, +16 bars, +32 bars",,1,10,22,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Size',Sets the size for a new loop recording - note: only works if Delete is used to remove the old recording first,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/loop-recorder-size.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 4,"Record, +Recording",,1,10,14,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Record',Starts recording a loop of the specified size,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 5,"Record, +Recording",,1,10,13,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Record/Stop',Toggles between recording all audio output and not recording,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 6,LIVE CLEAR CLIP,6,1,10,67,Push,"127 (On), 0 (Off)",IAC Drive StreamDeck2Daw,IAC Driver Daw2StreamDeck,Calls ClyphX Pro X-Control,Removes all clip data - this is much faster than context switching to change Push views to create a new clip and then nudging to get it back in time,"src/clyphx-pro/X-Controls.txt, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 7,A-Z,,1,-,-,-,-,-,-,Switch profile page,View Keyboard A-Z,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 3 Col 8,C Browser,,1,-,-,-,-,-,-,Switch profile page,View B Rmx Deck,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 3 Col 8,C Browser,,2,-,-,-,-,-,-,Focus Traktor application,Bring Traktor to front to receive mouse clicks,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 3 Col 8,C Browser,,3,10,36,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Send Monitor State',Sync state of all buttons with Traktor,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 8,C Browser,,4,10,31,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Layout Selector',Switch to Traktor's configured 'Decks' view,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - App Export.tsi, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 3 Col 8,C Browser,,5,10,7,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Search' & 'Search Clear',Focus and clear Traktor's Search field,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 1,Shift,,1,10,4,Hold,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Sets Traktor's 'Modifier 1' (for CT6 - Streamdeck XL),"Provides SHIFTed functions, I denote these with underlined text","src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 2,"PUSH PAD MODE Off, +PUSH PAD MODE Hotcues, +PUSH PAD MODE Slices",6,1,10,60,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,"Sets Traktor's 'Modifier 1' (for CT6 - Deck A, CT6 - Deck B)","Toggles on output for slice and hotcue highlighting, to highlight the current playing slice on Push's 16 pad grid","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/leds-to-push.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Deck A.tsi, +src/traktor/CT6 - Deck B.tsi" +A - Decks/Rec,Row 4 Col 3,"FREEZE Off, +FREEZE On",6,1,10,61,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Freeze Mode On',"Toggles freeze mode on and off, easier than using the S8 as Supreme Mod makes Freeze a SHIFTed function","src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 4,"FREEZE SLICE COUNT 8, +FREEZE SLICE COUNT 16",6,1,10,64,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Freeze Slice Count Adjust',"Required to achieve 16 slices, as defaults to 8 slices after freeze is engaged","src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/freeze-slice-count.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 5,"FREEZE SLICE SIZE 1/4 beat, +FREEZE SLICE SIZE 1/2 beat, +FREEZE SLICE SIZE 1 beat, +FREEZE SLICE SIZE 2 beats, +FREEZE SLICE SIZE 4 beats",6,1,10,63,Cycle,Various (XML Cycle file),Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Freeze Slice Size Adjust',Useful for isolating stabs and drum hits,"src/streamdeck-xl/plugins/streamdeck-midi-plugin/cycle-files/freeze-slice-size.xml, +src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 6,Pause,6,1,10,65,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Play/Pause (Deck Common)',Toggles playback of the focussed deck. This is required to stop playback after exiting freeze mode.,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" +A - Decks/Rec,Row 4 Col 7,0-9`,,1,-,-,-,-,-,-,Switch profile page,View Keyboard 0-9,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 4 Col 8,D Settings,,1,-,-,-,-,-,-,Switch profile page,View D Settings,src/streamdeck-xl/profiles/CT6.streamDeckProfile +A - Decks/Rec,Row 4 Col 8,D Settings,,2,10,36,Push,"127 (On), 0 (Off)",Traktor Virtual Input,Traktor Virtual Output,Calls Traktor's 'Send Monitor State',Sync state of all buttons with Traktor,"src/streamdeck-xl/profiles/CT6.streamDeckProfile, +src/traktor/CT6 - Streamdeck XL.tsi" \ No newline at end of file