Hi, everyone,
as you may have noticed in the last few days since I’ve got my Behringer CMD MM-1 controller, I’ve been trying to write a script for mAirlist to support the device. Tonight I reached a first milestone: The script works as a notification script, detects the player’s states when loading and changes button states as the players change states. If you’d like to use or adapt it, please feel free. I’ve made the script available on GitHub: https://github.com/McCavity/Behringer_CMD_MM-1 - it’s available under Apache 2.0 license you may use, modify and distribute it freely - I’d just like you to mention me as the author or as a contributor, if you reuse parts of it.
The script makes the following assumptions towards mAirlist: I’m using two playlists, playlist one has two players (1-1 and 1-2) and playlist wo has one player (2-1). The players are mapped to the first three faders on the MM-1, channel 1: 1-1, channel 2: 1-2, channel 3: 2-1. I’m using the “CUE” buttons of the MM-1 for the START/PAUSE commands. I’m using the two “side buttons” (in DJ-Software they’re typically used to assign the player associated with the fader to either side of the cross fader (the latter I don’t use in mAirList!)) above the CUE buttons (always marked ‘1’ and ‘2’) to control player PFL (button 1) and button 2, when in PFL mode for “end monitor”. When the Player is playing, I’m setting the “CUE” button to blink, when the player reaches EOF the “2” button starts to blink, too.
One thing’s still missing: I’m using the MM-1 for voice tracking, too. So in VT mode I’m using a different set of commands for the buttons. This isn’t recognized by the script, yet, until now it only works when in Assist / Auto mode.
@Torben: are there some functions / procedure like “onVoicetrack…” or similar, which tells me mAirlist is entering / leaving the voicetrack recorder / editor? I found “onAutomationOn” and “onAutomationOff”, but nothing for voicetracking?
For your reference I’ve included the section from my remote.ini which describes the MM-1 mappings:
[Remote2]
Type=MIDI
Enabled=on
Device=1
Message0=0094307F
Action0=NOVT PLAYER 1-1 START/PAUSE;VT PLAYER A START
Message1=0094317F
Action1=NOVT PLAYER 1-2 START/PAUSE; VT PLAYER B START
Message2=0094127F
Action2=NOVT PLAYLIST 1 EXTRAPFL ON/OFF; VT RECORD START
Message3=0094207F
Action3=VT RECORD STOP
Message4=0094117F
Action4=NOVT CARTWALL NEXT SET; VT SAVE
Message5=0094107F
Action5=NOVT CARTWALL PREVIOUS SET; VT RECORD CANCEL
Message6=00B4B080
Action6=NOVT PLAYER 1-1 VOLUME $DATA2/100; VT PLAYER A VOLUME $DATA2/127
Message7=00B4B180
Action7=NOVT PLAYER 1-2 VOLUME $DATA2/100; VT PLAYER B VOLUME $DATA2/127
Message8=00B4B280
Action8=NOVT PLAYER 2-1 VOLUME $DATA2/100
Message9=0094327F
Action9=PLAYER 2-1 START/PAUSE
Message10=00B40341
Action10=PLAYLIST 1 CURSOR DOWN
Message11=00B4033F
Action11=PLAYLIST 1 CURSOR UP
Message12=0094037F
Action12=PLAYLIST 1 RECYCLE
Message13=0094137F
Action13=PLAYER 1-1 PFL ON/OFF
Message14=0094147F
Action14=PFL END MON
Message15=0094177F
Action15=PLAYER 1-2 PFL ON/OFF
Message16=0094187F
Action16=PFL END MON
Message17=00941B7F
Action17=PLAYER 2-1 PFL ON/OFF
Message18=00941C7F
Action18=PFL END MON
If you have any more suggestions, please let me know - I hope someone may find the script useful. But before you start bashing me, please keep in my mind: I didn’t touch Pascal for the past 20 years (I think the last version I used was Turbo Poascal 5.5 on MS-DOS ;-))
Thus, a short disclaimer: the script is provided “as is” with no express or implied warranty or fitness for a particular purpose. Use it at your own risk, I can not be held liable for any damage that my occur by using this script.
One more thing: a big fat thank you to Torben for his relentless support, Thomas “Kloppi” Kloppholz for his LC-1 script which gave me the initial idea of writing this script and that served me as a starting point (I copied some of the initial code from there, so he’s also mentioned in the header ;-)) and also a big thank you to all the contributors of scripts in this forum - your articles helped me to solve a lot of the problems I came across while working on this script without having to ask my myself
Kind Regards,
McCavity
P.S.: I’m still encoutering a strange issue which may be in conjunction with the script / controller: every now and then a track wil hang in a very short (< 1 sec.) loop for a while and then continue… I’m still investigating that, fact is that I don’t see anything in the system log… I’ll come back to that problem when I can say more about it.