Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Share your Ableton Live secrets here
Post Reply
Schuft
Posts: 57
Joined: Wed May 30, 2007 8:02 am

Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by Schuft » Sat Apr 11, 2009 4:27 pm

Hi all,

as the whole VCM-600 thing gathers momentum by now requests arose addressing the customizability of the midi controller (using it together with Live).

You have to understand that it is just a simple midi controller sending out 'predefined' messages (Note and CC) for every single controll element. Every Track uses it's own midi channel (1-12) whereas the master section control elements use midi channel 13 (take a look at the midi map in the printed manual on page 33 !! It's a must have creating/programming your own midi functionality).

So e.g. if you press the HiCut button on channel 1, the VCM-600 sends out a 'Note ON' message (full velocity -> 7F) on the first channel using the control element number 3C. That results in this midi message: 90 3C 7F (Channel/Controller/Value). Releasing the button again sends a 'Note Off' midi message with a value of zero (90 3C 00).
(If you don't understand that so far then I'd advice to take a look in some midi basics. That's a requirement to understand what's goin on here.)

Now if you use Live and set the midi prefs NOT to use a specific 'Controll Surface' and don't specify 'Input'/'Output' then nothing happens when you move a VCM-600 controll element.

1) When you specify 'Input'/'Output' to use the VCM-600 (in my case the entry is named 'USB Audio Devide') and under the lower prefs 'Midi Port' you specifiy to 'Track' and 'Remote' the 'Input' of 'USB Audio Device' and only 'Remote' the 'Output' of 'USB Audio Device' ... then you are able to midi map e.g. the Fader of VCM Channel 1 to Live's Fader of Live's channel 1 and as soon as you did this you can see the Channel 1 Fader inside Live corresponds the movement on the VCM Fader Channel 1.
This way you "have the possibility" of midi mapping every single controller on the VCM-600 your own.

2) If in addition to the above you specify 'VCM600' as 'Controll Surface' then Live listens to midi messages coming from the VCM-600 in a predefined way. It's the way like Vestax printed it on the alu surface plate of the VCM. Though you are not able to see the hidden mappings in the normal midi map of Live :-/
When choosing to use the predefined midi map and are planning to customize further over the top of the default mappings _in some cases_ this can lead to some strange side effects as Live seems to interpret controller movements of a specific controller the "default, predefined way" even if you 'overwrote' it using your own midi mapping.
Not at least due to this behaviour I'd advise you to use your very own midi mapping. Furthermore using your individual midi map you are able to define your own midi controller value ranges! IMO that is very important. And in addition by doing so you learn how this midi message communication and manipulation is working ..... and manipulation is the goal we want to achieve in this case ;-)

At first I (re)created a basic set of simple mappings that are vital .. at least to me ;-) Feel free to include whatever simple Live mappings you want into your basic mapping set.
As I only use 6 channels at a time my whole examples and explainations refer to having channel 1-6 in use. The midi messages that are sent out for channel 7-12 (in 'Track Bank' mode, see VCM-600 manual for Tack Bank mode) I map to things affecting channel 1-6 as well. So I have even more controll elements per channel (1-6).
For each channel I mapped: Fader, StartClip, StopClip, ClipView, TrackView, Solo (For Cueing), EqLow, EqMid, EqHigh (EQ3 device), SendA (To Echo device on ReturnA)
If you have questions concerning the mapping of master controll elements (midi channel 13, Tempo, Nudge, Volume etc.) then please ask for it!

As this isn't a trivial topic I'll start with a fist simple example of a customization wish I personally had. I'll add more examples to this thread later on.

(Example One)
I wanted to be able to send a channel's audio to the Echo Device (on RetrunA) by pressing a button (let's say MuteButton) ... and not only by having to turn the SendA knob all the time ! To achieve this we need to add functionality when pressing the MuteButton.

The CH1-MuteButton per default sends the midi note message 90 3F 7F when pressing it and 90 3F 00 when releasing it. The CH1-SendA knob sends midi control change (CC) messages from B0 13 00 thru B0 13 7F.
Now when I press the MuteButton I want to have an additional 'B0 13 7F' message sent out to set SendA to 100% .. and when I release it I want to add 'B0 13 00' to revert SendA to 0% again.

Therefore I use 'Bome's Midi Translator' (google for it). I suggest that at this point you understood everything of the above and then have a look into the functionality of Bome's that is described on his website pretty good !!!

At this point I assume you are familiar with the terminology of Bome's Midi Translator ... and maybe you already know where it will go to now ;-)
Make sure that Bome's uses the VCM-600 as Midi Input Port and one of it's own (from version 1.7) Virtual Midi Output Ports !!! Then in Lives midi prefs adjust the inputs to listen to the virtual midi port (which in fact is the VCM-600 routed thru Bome's) !!!

In Bome's set the operating mode to 'MIDI Thru' !! In a new Bome's Project, in a preset, you have to create 2 new translator rules. Rule 1 listens to the incoming midi message 90 3F 7F (MuteButton NoteON) and adds an outgoing midi message B0 13 7F (SendA 100%). Rule 2 listens to 90 3F 7F and adds B0 13 00. Make sure to check the option to output both, original and added midi messages in the Output Tab of the translator!

Et Voila, now you can send an audio signal to an echo device by just pressing a button. This way in some situationis you can perform in a much faster way.

Later on I'll explain how you can have the MuteButton lit up when being pressed (using a Live dummy device). Maybe up to now you already know how to achieve this ;-)

OK, so far for now. I'll add more examples later on. Hope this helps somebody !
SubFunk wrote:we are all to spoiled. drifting into technical wanking rather then developing skills with what we got.

Soul T Nuts
Posts: 1
Joined: Sun Mar 08, 2015 1:47 pm

Re: Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by Soul T Nuts » Sun Mar 08, 2015 1:49 pm

Thanks a mill for taking the time to post this, its helped me massively.

TomViolenz
Posts: 6854
Joined: Mon Dec 13, 2010 6:19 pm

Re: Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by TomViolenz » Sun Mar 29, 2015 12:34 pm

Schuft wrote: I wanted to be able to send a channel's audio to the Echo Device (on RetrunA) by pressing a button (let's say MuteButton) ... and not only by having to turn the SendA knob all the time ! To achieve this we need to add functionality when pressing the MuteButton.

The CH1-MuteButton per default sends the midi note message 90 3F 7F when pressing it and 90 3F 00 when releasing it. The CH1-SendA knob sends midi control change (CC) messages from B0 13 00 thru B0 13 7F.
Now when I press the MuteButton I want to have an additional 'B0 13 7F' message sent out to set SendA to 100% .. and when I release it I want to add 'B0 13 00' to revert SendA to 0% again.

Therefore I use 'Bome's Midi Translator' (google for it). I suggest that at this point you understood everything of the above and then have a look into the functionality of Bome's that is described on his website pretty good !!!
Well if you have already done that, why not go one step further and make it a timed fade?!

For this you set a variable in this translator let's say ka to 0 and choose for the output of that translator not a Midi message but a timer. Call it fade and give it 127 repeats. (the repeat time you choose will determine how fast you fade)

Then make another translator and chose that timer as its input and write the following

Ka=ka+1
(and just to make sure)
if ka>127 ka =0

rr=ka

then as the Midi message to output you put as you were: B0 13 rr

What this does it triggers that first translator, which in turn triggers the timer 127 times, which again triggers translator 2 which counts up ka and outputs 127 times a Midi message with incrementing values.

One nifty step is to incorporate the option to stop the timer with the press of a button any time if you want it to stay at that value and another is to put it to zero also with the press of a button for effect in a live situation. (like killing a full reverb)

Here's some example "code" out of a project of mine. Maybe it helps someone 8)

Code: Select all

[x] Translator 7.1: Shift_Button (i9,j0)
Options: swallow
Incoming: CC ch.10: Modulation (#1), rr, on port Maschine Controller Virtual Input
Rules:
  j0=28
  if rr==127 then skip next 2 rules
  i9=2
  exit rules, execute Outgoing Action
  i9=1
  exit rules, execute Outgoing Action
Outgoing: (none)

Code: Select all

[x] Translator 7.5: Fades1_Timer_sender_128x (ma)
Options: swallow
Incoming: CC ch.11:  #119, 127, on port Maschine Controller Virtual Input
Rules:
  if i9==1 then exit rules, skip Outgoing Action
  if ma<0 then ma=0
  if ma>127 then ma=127
 
  if ma==127 then exit rules, skip Outgoing Action
  exit rules, execute Outgoing Action
Outgoing: Timer 128 times "Fades1": 125 ms (initial delay: 0 ms)

Code: Select all

[x] Translator 7.6: Fades1_Timer_sender_1x_force zero
Options: swallow
Incoming: CC ch.11:  #119, vv, on port Maschine Controller Virtual Input
Rules:
  if i9!=1 then exit rules, skip Outgoing Action
  ma=0
  exit rules, execute Outgoing Action
Outgoing: CC ch.11:  #111, 0, to port Bome's Midi Translator 1 Virtual Out

Code: Select all

[x] Translator 7.9: Fades1_Timer_Kill
Options: swallow
Incoming: CC ch.11:  #119, 0, on port Maschine Controller Virtual Input
Outgoing: Kill timer "Fades1"

Code: Select all

[x] Translator 7.10: Fades1_Timer_Kill_after forced_Zero
Options: swallow
Incoming: CC ch.11:  #119, 127, on port Maschine Controller Virtual Input
Rules: if i9!=1 then exit rules, skip Outgoing Action
Outgoing: Kill timer "Fades1"

Code: Select all

[x] Translator 7.11: Fades1_Timer_Kill
Incoming: On timer "Kill_Fader_Timers"
Outgoing: Kill timer "Fades1"

Code: Select all

[x] Translator 7.12: Fades1_Timer_receiver_128x(ma)
Incoming: On timer "Fades1"
Rules:
  rr=ma
  ma=ma+1
  if ma<0 then ma=0
  if ma>127 then ma=127
Outgoing: CC ch.11:  #111, rr, to port Bome's Midi Translator 1 Virtual Out

Acid303
Posts: 213
Joined: Thu Apr 16, 2009 12:07 am

Re: Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by Acid303 » Thu Sep 10, 2015 4:23 pm

Is the VCM600 supposed to have 8 effect banks for the effect knobs. I want to control a set of 8 macros on 8 channels independently but instead when try to assign this the knobs control the 8 macros on 8 channels simultaneously meaning each channel has to have the same settings.

Lau_Rie
Posts: 1
Joined: Fri Mar 22, 2019 9:00 am

Re: Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by Lau_Rie » Fri Mar 22, 2019 9:16 am

Hi there, I know this post is a decade old but thanks very much @Shuft for the info, and hope that possibly you or someone else knowledgeable is still doing this...!

I am looking to get that MuteButton light coming on, which you hinted you may explain at a later date. Please do enlighten if possible!

oblique strategies
Posts: 3578
Joined: Thu Nov 02, 2006 9:57 pm
Location: Another Green World

Re: Vestax VCM-600 - Customizing (using Bome's Midi Translator)

Post by oblique strategies » Tue May 07, 2019 12:29 pm

Bump.

Any additional info anyone has regarding this topic would be appreciated.

Thanks

Post Reply