Could I get some pointers on how to map a Drum Kit/Drum Rack?

Topic Starter
18 posts since 8 Dec, 2011 from melbourne

Post Fri Jan 13, 2023 3:24 pm

I've tried for a week but I can't figure out how to map a Drum kit/Drum Rack.

A recent video my Moss about the Behringer X-Touch refers to the Drum Kit being Layers, but I can't find that in the API documentation. I've looked through multiple git repo's, searched using google over the KVR forum, but I don't know what I'm looking for. If I missed it in a Moss tutorial, could you please point me to it, I've watched them all now twice and still unsure.

Currently I just have basic control over the MasterTrackBank, but have tried the same with a cursor and a TrackBank mapping buttons to navigate up and down the group hierarchy, but still unable to control the drum rack.

Ideally I would like to have a shift layer to control the drum rack, and a cursor to target the drum rack anywhere in the project. I can handle the shift layer no problem, but need some help understanding how the Drum Kit works.

This is my repo if you need to see my code:

User avatar
Kirkwood West
233 posts since 12 Apr, 2020

Post Thu Jan 19, 2023 7:10 pm

What are you specifically trying to do in controlling the drum machine device?

Topic Starter
18 posts since 8 Dec, 2011 from melbourne

Post Fri Feb 03, 2023 5:34 am

Hey Kirkwood West,

I was stuck right at the start, I didn't understand how to even get the drum machine device but was able to find a code snippet that got the first device and used that to know if the currently selected track is a Drum machine.

Code: Select all

this.drumCursorTrack = host.createCursorTrack('Drum Cursor', 'Drum Cursor', 2, 0, false);
this.cursorTrackFirstDevice = this.drumCursorTrack.createCursorDevice("Drum Device", "Drum Device", 4, API.CursorDeviceFollowMode.FIRST_DEVICE);
this.cursorDrumPadBank = this.cursorTrackFirstDevice.createDrumPadBank(this.numDrumPads);
Using that I was able to get control of the volume, mute, cue and sends so I can mix the drum rack.

Other than that I have been using ChatGPT to teach me when I get stuck, it's been pretty handy! The only limitation is it's locked to API 3.

One thing I'm having trouble with is the step sequencer. I've set up a clip cursor, but when I subscribe to it it never fires.

Code: Select all

this.cursorClip = host.createLauncherCursorClip(8, 4);
this.cursorClip.addNoteStepObserver((step: NoteStep) => {
    log('NoteStep', step);
this.cursorClip.addStepDataObserver((step: number, y: number, playing: number) => {
    log('step', { step, y, playing });
I have the drum rack selected in the cursor, is there something that I'm missing?
Ideally I would like to be able to display and update the sequence on my midi controller over a 4 x 4 grid matrix. The sequence should highlight the current step and display the notes in the current sequence on the button matrix.

If you could point me to an existing mapping or anywhere in the docs that has the functionality I can reference I would be grateful.

Return to “Controller Scripting”