Hello folks, I’d like to share with you a mapping created for Allen & Heath Xone:4D.
Such an incredible mixer shouldn’t be left for death.
This mixer was created with Ableton Live in mind and has plenty of MIDI controls. It is very similar to Xone:3D and Xone:1D on the MIDI side, so it’s quite possible this configuration can at least give you a headstart on those as well.
Alright, so number one thing here is to check the mixer itself for the correct settings to play nice with DJay Pro:
Step 1: Change the mixer to “Ableton” mode. The default mode is “Traktor”. This will fix a problem with the 8 upper rotary knobs:
My example is using MIDI in channel 16 (default) - have that in mind if you use another setting.
Lightpipe settings are left in default and it works.
Step 2: Create a simple MIDI mapping at the "settings → MIDI Devices → MIDI Devices: XONE:4D Midi → Configure. Just map anything to create a mapping file, that we will later overwrite. If you don’t see your controller here, you probably have another problem. Reinstalling the driver and re-flashing the MIDI firmware (both still available at this date on A&H website) may fix that.
Step 3: Close the application and open your MIDI config file. By default, it will be stored within your "Music\djay\MIDI Mappings" folder and the default filename is “XONE.4D Midi.djayMidiMapping”. You can edit this file with Notepad. Delete everything AFTER the following line:
{
USBID = <*I123456789>;
This is your unique USB device ID, so keep whatever is in there, then paste the contents below starting immediately after that line:
controls = (
{
keyPath = "turntable1.playPause";
midiChannel = <*I15>;
midiData = <*I38>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable1.cuePositionOrJumpConsideringPlayState1";
midiChannel = <*I15>;
midiData = <*I23>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable1.turntableIsSyncMaster";
midiChannel = <*I15>;
midiData = <*I20>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable1.bpmSync";
midiChannel = <*I15>;
midiData = <*I34>;
midiMessageType = <*I1>;
output = {
};
},
{
flipped = <*BY>;
keyPath = "turntable1.speed";
midiChannel = <*I15>;
midiData = <*I16>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerThreeTrackChannel2Volume";
midiChannel = <*I15>;
midiData = <*I18>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerThreeTrackChannel1Volume";
midiChannel = <*I15>;
midiData = <*I19>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerThreeTrackChannel3Volume";
midiChannel = <*I15>;
midiData = <*I17>;
midiMessageType = <*I3>;
},
{
buttonMode = toggle;
keyPath = "turntable1.autoLoopOnOff";
midiChannel = <*I15>;
midiData = <*I28>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.bounceLoopDrums1BeatInterval";
midiChannel = <*I15>;
midiData = <*I14>;
midiMessageType = <*I1>;
},
{
controlType = rotary;
keyPath = "turntable1.pitchBendMove";
midiChannel = <*I15>;
midiData = <*I37>;
midiMessageType = <*I3>;
rotaryAcceleration = <*I150>;
rotarySensitivity = <*R172>;
},
{
keyPath = "turntable1.unmixerFourTrackChannel4VolumeEQ";
midiChannel = <*I15>;
midiData = <*I14>;
midiMessageType = <*I3>;
pickupMode = <*BY>;
},
{
keyPath = "turntable2.playPause";
midiChannel = <*I15>;
midiData = <*I70>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable2.cuePositionOrJumpConsideringPlayState1";
midiChannel = <*I15>;
midiData = <*I55>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable2.turntableIsSyncMaster";
midiChannel = <*I15>;
midiData = <*I52>;
midiMessageType = <*I1>;
output = {
};
},
{
keyPath = "turntable2.bpmSync";
midiChannel = <*I15>;
midiData = <*I66>;
midiMessageType = <*I1>;
output = {
};
},
{
flipped = <*BY>;
keyPath = "turntable2.speed";
midiChannel = <*I15>;
midiData = <*I28>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerThreeTrackChannel1Volume";
midiChannel = <*I15>;
midiData = <*I31>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerThreeTrackChannel2Volume";
midiChannel = <*I15>;
midiData = <*I30>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerThreeTrackChannel3Volume";
midiChannel = <*I15>;
midiData = <*I29>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerFourTrackChannel1VolumeEQ";
midiChannel = <*I15>;
midiData = <*I8>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerFourTrackChannel2VolumeEQ";
midiChannel = <*I15>;
midiData = <*I10>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.unmixerFourTrackChannel3VolumeEQ";
midiChannel = <*I15>;
midiData = <*I12>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.skipBackward";
midiChannel = <*I15>;
midiData = <*I11>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.skipForward";
midiChannel = <*I15>;
midiData = <*I9>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.skipBackward";
midiChannel = <*I15>;
midiData = <*I43>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.skipForward";
midiChannel = <*I15>;
midiData = <*I41>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.unmixerFourTrackChannel1VolumeEQ";
midiChannel = <*I15>;
midiData = <*I20>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerFourTrackChannel2VolumeEQ";
midiChannel = <*I15>;
midiData = <*I22>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerFourTrackChannel3VolumeEQ";
midiChannel = <*I15>;
midiData = <*I24>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.unmixerFourTrackChannel4VolumeEQ";
midiChannel = <*I15>;
midiData = <*I26>;
midiMessageType = <*I3>;
},
{
keyPath = "musicLibrary.toggleLibrarySource";
midiChannel = <*I15>;
midiData = <*I24>;
midiMessageType = <*I1>;
},
{
controlType = rotary;
flipped = <*BY>;
keyPath = "musicLibrary.libraryRotary";
midiChannel = <*I15>;
midiData = <*I44>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.fx1ParameterValue";
midiChannel = <*I15>;
midiData = <*I9>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.fx3ParameterValue";
midiChannel = <*I15>;
midiData = <*I13>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable1.pitch";
midiChannel = <*I15>;
midiData = <*I15>;
midiMessageType = <*I3>;
},
{
keyPath = "musicLibrary.toggleLibraryVisible";
midiChannel = <*I15>;
midiData = <*I56>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.skipDurationUp";
midiChannel = <*I15>;
midiData = <*I92>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.skipDurationDown";
midiChannel = <*I15>;
midiData = <*I91>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.slicerRepeatDurationDouble";
midiChannel = <*I15>;
midiData = <*I94>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.slicerRepeatDurationHalf";
midiChannel = <*I15>;
midiData = <*I93>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.bounceLoopDrums05BeatInterval";
midiChannel = <*I15>;
midiData = <*I16>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.shiftDownBeatRight";
midiChannel = <*I15>;
midiData = <*I96>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.shiftDownBeatLeft";
midiChannel = <*I15>;
midiData = <*I95>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.bounceLoopDrums025BeatInterval";
midiChannel = <*I15>;
midiData = <*I26>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.cueOrJumpIfAlreadySet1";
midiChannel = <*I15>;
midiData = <*I29>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.cueOrJumpIfAlreadySet2";
midiChannel = <*I15>;
midiData = <*I15>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.cueOrJumpIfAlreadySet3";
midiChannel = <*I15>;
midiData = <*I17>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.cueOrJumpIfAlreadySet4";
midiChannel = <*I15>;
midiData = <*I27>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.clearCuePoint1";
midiChannel = <*I15>;
midiData = <*I36>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.clearCuePoint2";
midiChannel = <*I15>;
midiData = <*I21>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.clearCuePoint3";
midiChannel = <*I15>;
midiData = <*I18>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.clearCuePoint4";
midiChannel = <*I15>;
midiData = <*I32>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable1.fx1Enabled";
midiChannel = <*I15>;
midiData = <*I37>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable1.fx2Enabled";
midiChannel = <*I15>;
midiData = <*I22>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable1.fx3Enabled";
midiChannel = <*I15>;
midiData = <*I19>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.instantFx4";
midiChannel = <*I15>;
midiData = <*I33>;
midiMessageType = <*I1>;
},
{
controlType = rotary;
flipped = <*BY>;
keyPath = "musicLibrary.libraryRotary";
midiChannel = <*I15>;
midiData = <*I36>;
midiMessageType = <*I3>;
},
{
keyPath = "musicLibrary.load1";
midiChannel = <*I15>;
midiData = <*I10>;
midiMessageType = <*I1>;
},
{
keyPath = "musicLibrary.load2";
midiChannel = <*I15>;
midiData = <*I42>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable1.fx2ParameterValue";
midiChannel = <*I15>;
midiData = <*I11>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable1.autoLoopDurationRotary";
midiChannel = <*I15>;
midiData = <*I32>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable1.skipDurationRotary";
midiChannel = <*I15>;
midiData = <*I33>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable1.skipRotary";
midiChannel = <*I15>;
midiData = <*I34>;
midiMessageType = <*I3>;
rotarySensitivity = <*R28>;
},
{
controlType = rotary;
keyPath = "turntable1.jogSeekMove";
midiChannel = <*I15>;
midiData = <*I35>;
midiMessageType = <*I3>;
},
{
keyPath = "musicLibrary.libraryDown";
midiChannel = <*I15>;
midiData = <*I13>;
midiMessageType = <*I1>;
},
{
controlType = rotary;
keyPath = "turntable2.autoLoopDurationRotary";
midiChannel = <*I15>;
midiData = <*I40>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable2.skipDurationRotary";
midiChannel = <*I15>;
midiData = <*I41>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable2.skipRotary";
midiChannel = <*I15>;
midiData = <*I42>;
midiMessageType = <*I3>;
},
{
controlType = rotary;
keyPath = "turntable2.jogSeekMove";
midiChannel = <*I15>;
midiData = <*I43>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.autoLoopOnOff";
midiChannel = <*I15>;
midiData = <*I60>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.bounceLoop1BeatInterval";
midiChannel = <*I15>;
midiData = <*I46>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.bounceLoop05BeatInterval";
midiChannel = <*I15>;
midiData = <*I48>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.bounceLoop025BeatInterval";
midiChannel = <*I15>;
midiData = <*I58>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.fx1ParameterValue";
midiChannel = <*I15>;
midiData = <*I21>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.fx2ParameterValue";
midiChannel = <*I15>;
midiData = <*I23>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.fx3ParameterValue";
midiChannel = <*I15>;
midiData = <*I25>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.pitch";
midiChannel = <*I15>;
midiData = <*I27>;
midiMessageType = <*I3>;
},
{
keyPath = "turntable2.cueOrJumpIfAlreadySet1";
midiChannel = <*I15>;
midiData = <*I61>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.cueOrJumpIfAlreadySet2";
midiChannel = <*I15>;
midiData = <*I47>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.cueOrJumpIfAlreadySet3";
midiChannel = <*I15>;
midiData = <*I49>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.cueOrJumpIfAlreadySet4";
midiChannel = <*I15>;
midiData = <*I59>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.clearCuePoint1";
midiChannel = <*I15>;
midiData = <*I68>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.clearCuePoint2";
midiChannel = <*I15>;
midiData = <*I53>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.clearCuePoint3";
midiChannel = <*I15>;
midiData = <*I50>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.clearCuePoint4";
midiChannel = <*I15>;
midiData = <*I64>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable2.fx1Enabled";
midiChannel = <*I15>;
midiData = <*I69>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable2.fx2Enabled";
midiChannel = <*I15>;
midiData = <*I54>;
midiMessageType = <*I1>;
},
{
buttonMode = hold;
keyPath = "turntable2.fx3Enabled";
midiChannel = <*I15>;
midiData = <*I51>;
midiMessageType = <*I1>;
},
{
keyPath = "turntable2.instantFx4";
midiChannel = <*I15>;
midiData = <*I65>;
midiMessageType = <*I1>;
},
{
controlType = rotary;
keyPath = "turntable2.pitchBendMove";
midiChannel = <*I15>;
midiData = <*I45>;
midiMessageType = <*I3>;
rotarySensitivity = <*R177>;
},
{
keyPath = turntable2;
midiChannel = <*I15>;
midiData = <*I1>;
midiMessageType = <*I3>;
}
);
editor = "(null)-5.1.7917.0";
endpointName = "XONE:4D Midi";
schemeVersion = <*I1>;
version = <*I0>;
}