Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GuiSim/c8f11f1cc2c4fe44a8a1595635802938 to your computer and use it in GitHub Desktop.
Save GuiSim/c8f11f1cc2c4fe44a8a1595635802938 to your computer and use it in GitHub Desktop.
Traktor S4 configuration file for DJay Pro
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>controls</key>
<array>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.cuePositionOrJumpConsideringPlayState1</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>9</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.playPause</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>10</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.bpmSync</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>8</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict>
<key>midiChannel</key>
<integer>0</integer>
</dict>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.resetSpeed</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>8</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.cueOrJumpIfAlreadySet1</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>11</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.cueOrJumpIfAlreadySet2</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>12</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.cueOrJumpIfAlreadySet3</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>13</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.cueOrJumpIfAlreadySet4</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>14</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.backspin</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>15</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.censor</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>16</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.echoTransitionEffect</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>17</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.brakeTransitionEffect</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>18</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>flipped</key>
<true/>
<key>keyPath</key>
<string>turntable1.speed</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>4</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.resetCuePoints</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>6</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.loopIn</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>23</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.loopOutAndReloopOrUnloop</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>24</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>keyPath</key>
<string>turntable1.skipRotary</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>19</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>keyPath</key>
<string>turntable1.autoLoopDurationRotary</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>21</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.lineVolume1</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>69</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.crossfade</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>10</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.lineVolume2</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>69</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.lineVolume3</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>69</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.lineVolume4</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>69</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>mixer.monitorActive1</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>68</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>mixer.monitorActive3</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>68</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>mixer.monitorActive2</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>68</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>mixer.monitorActive4</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>68</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.filter</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>67</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable3.filter</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>67</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.filter</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>67</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable4.filter</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>67</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable3.lowEQ</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>66</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.lowEQ</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>66</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.lowEQ</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>66</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable4.lowEQ</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>66</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable3.midEQ</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>65</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.midEQ</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>65</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.midEQ</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>65</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable4.midEQ</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>65</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable3.highEQ</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>64</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.highEQ</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>64</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.highEQ</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>64</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable4.highEQ</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>64</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>flipped</key>
<true/>
<key>keyPath</key>
<string>musicLibrary.libraryRotary</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>2</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>musicLibrary.load1</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>1</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>musicLibrary.load2</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>1</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.resetCuePoints</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>6</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>flipped</key>
<true/>
<key>keyPath</key>
<string>turntable2.speed</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>4</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.playPause</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>10</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.cuePositionOrJumpConsideringPlayState1</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>9</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.bpmSync</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>8</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.resetSpeed</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>8</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.cueOrJumpIfAlreadySet1</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>11</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.cueOrJumpIfAlreadySet2</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>12</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.cueOrJumpIfAlreadySet3</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>13</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.cueOrJumpIfAlreadySet4</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>14</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.backspin</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>15</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.censor</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>16</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.echoTransitionEffect</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>17</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.brakeTransitionEffect</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>18</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.skipRotary</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>19</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.autoLoopDurationRotary</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>21</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.loopIn</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>23</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.loopOutAndReloopOrUnloop</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>24</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>mixer.monitorSelect</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>11</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>microphone.level</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>12</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.scratchingMode</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>3</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>keyPath</key>
<string>turntable2.scratchingMove</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>2</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>rotaryAcceleration</key>
<integer>0</integer>
<key>rotarySensitivity</key>
<real>150</real>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.scratchingMode</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>3</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx1WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>20</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx2WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>20</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx3WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>20</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.fxActive</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>24</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx1ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>21</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.fx1Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>25</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.fx2Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>26</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx2ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>22</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.fx3Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>27</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.fx3ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>23</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>keyPath</key>
<string>turntable3.gain</string>
<key>midiChannel</key>
<integer>2</integer>
<key>midiData</key>
<integer>60</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable1.gain</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>60</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.gain</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>60</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable4.gain</string>
<key>midiChannel</key>
<integer>3</integer>
<key>midiData</key>
<integer>60</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.fxActive</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>34</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx1WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>30</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx2WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>30</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx3WetDryValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>30</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.fx1Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>35</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx1ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>31</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.fx2Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>36</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx2ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>32</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.fx3Enabled</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>37</integer>
<key>midiMessageType</key>
<integer>3</integer>
<key>output</key>
<dict/>
</dict>
<dict>
<key>keyPath</key>
<string>turntable2.fx3ParameterValue</string>
<key>midiChannel</key>
<integer>4</integer>
<key>midiData</key>
<integer>33</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable1.autoLoopOnOff</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>22</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>button</string>
<key>keyPath</key>
<string>turntable2.autoLoopOnOff</string>
<key>midiChannel</key>
<integer>1</integer>
<key>midiData</key>
<integer>22</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
<dict>
<key>controlType</key>
<string>rotary</string>
<key>keyPath</key>
<string>turntable1.scratchingMove</string>
<key>midiChannel</key>
<integer>0</integer>
<key>midiData</key>
<integer>2</integer>
<key>midiMessageType</key>
<integer>3</integer>
</dict>
</array>
<key>editor</key>
<string>djay Pro-1.4.3</string>
<key>endpointName</key>
<string>Traktor Kontrol S4 MIDI input port 0</string>
<key>schemeVersion</key>
<integer>1</integer>
<key>version</key>
<integer>0</integer>
</dict>
</plist>
@GuiSim
Copy link
Author

GuiSim commented Jun 12, 2017

Validated to work with DJay Pro 1.4.3 from Mac App Store (June 2017)

@GuiSim
Copy link
Author

GuiSim commented Jun 12, 2017

Instructions:

  • Save the file
  • Double click it

@jonaskarles
Copy link

Can get fast forward to work (move) but not backwards. Any fix?

@mattskiis
Copy link

I've got the mapping imported however I can't get my controller to work when plugged in. I have a mk1. Using Traktor the controller lights up but it doesn't want to work with DJpro. Any Advice?

It appears that DJpro can see the controller but it can't access it.

@podratz
Copy link

podratz commented Dec 22, 2017

Same issue with me. Help would be appreciated! :)

@appsbymansa
Copy link

Same issue here :-/ Have DJay Pro 2.0.2 and Traktor Kontrol S4 MK2. Downloaded the midi mapping, double clicked it, still doesn't work :-( DJay Pro sees the controller, but I am not able to do any configurations or map it my self?!?! Any help is appreciated :-)

@GuiSim
Copy link
Author

GuiSim commented Dec 1, 2018

I'm super late here but @appsbymansa, @nickpodratz, @mattskiis I had to use this file again after all these years and got it to work again.

You need to make sure your controller is in midi mode. Instructions are here: https://support.native-instruments.com/hc/en-us/articles/210264145-How-to-Switch-Your-Native-Instruments-Controller-to-MIDI-Mode
For the controller that I was using, it was SHIFT + BROWSE. You should see "ON" appear in the display on the controller.

Then you need to get Djay pro to detect the midi controller. I haven't figured out exactly how to do this but for I know that by unplugging and replugging the controller I eventually got it to work. I needed to have it connected over power so it wouldn't lose MIDI mode when unplugging. I also tried restarting DJay pro a few times but I don't think that's what fixed it.

I hope this helps you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment