Vestax VCI-300MK II

Hey guys, I’m looking for someone to make a mapping for the Vestax VCI-300MK II. The jog wheels are proving to be megahard to map.


Just unpacking my new vci300 mkII
not supported, not working.

the wizard doesn’t make a great job, i think.

i’m not so lazy, just so newbie.
its my very first midi controller and i don’t know much about devel, midi, nor programming

please a little help from my friends, I will learn quick!!

Have you looked at the sticky at the top of this forum? The wiki has information on how to sniff the data the controller sends. Then it’s just a matter of linking that data to the engine.scratch() script functions.

Hey Vythica
You will probably need to map the jog wheels through script functions. Check the mappings for Vestax Typhoon and VCI-100 for inspiration.

Hi All,

I got a VCI-300 but not MK2. I have started to work a bit on the mapping, and yes, as Vythica said, some buttons and/or jog wheels must be controlled with a script.
I’ve already looked at the VCI-100 script, and it doesn’t seem too difficult to make it for the VCI-300.

I’ll look forward when I got some time, and I’l post my results here.


For now I’ve took the time to identify the hex codes for each button on my VCI-300. Here is the list if that can help some of you.

Left side (Channel 1)

Pitch left=0x0D
Key Lock Left=0x26
Auto Tempo Left=0x29
Cue 1 Left=0x2A
Cue 2 Left=0x2B
Cue 3 Left=0x2C
Scratch Left=0x2D
Out 1 Left=0x2E
Out 2 Left=0x2F
Out 3 Left=0x30
Shift Left=0x31
Jog Wheel Left Touch=0x53
Jog Wheel Left Spin=0x1C
CUE Left=0x24
Play Left=0x25
Trim Left=0x0E
Censor Left=0x32
Auto Loop Left=0x33
Half Left=0x34
High Left=0x0F
Mid Left=0x10
Low Left=0x11
Double Left=0x35
Volume Left=0x0C
Jog Torque Adj Left=0x1C

Left side (Channel 2)

Pitch Right=0x13
Key Lock Right=0x39
Auto Tempo Right=0x3C
Cue 1 Right=0x3D
Cue 2 Right=0x3E
Cue 3 Right=0x3F
Scratch Right=0x40
Out 1 Right=0x41
Out 2 Right=0x42
Out 3 Right=0x43
Shift Right=0x44
Jog Wheel Right	Touch=0x54
Jog Wheel Right Spin=0x1D
CUE Right=0x37
Play Right=0x38
Trim Right=0x14
Censor Right=0x45
Auto Loop Right=0x46
Half Right=0x47
High Right=0x15
Mid Right=0x16
Low Right=0x17
Double Right=0x48
Volume Right=0x12
Jog Torque Adj Right=0x1D

Master (Master)

I.F. Curve=0x1B
C.F. Curve=0x1A
Master Level=0x
Monitor Select=0x19
Monitor Level=0x
TAB	Up=0x4D
Tab Down=0x4E
Tab Left=0x4F
Tab Right=0x50
Tab Center=0x51
PFL A=0x36
PFL B=0x49
Cross Fader=0x18

Hi all,

As promised I started to work on the mapping and script files. I was inspired by the VCI-100 files.
Remark : I have a VCI-300 but not an MK II. Anyway I believe the midi status bytes are the same.
If someone is testing the files below with an MK II, please let me kow if it works or not.

For now, is supported :

  • Pitch for Deck A and B
  • Auto Tempo for Deck A and B
  • Trim (Gain) for Deck A and B
  • Hi filter for deck A and B
  • Mid filter for Deck A and B
  • Low Filter for deck A and B
  • PFL A and PFL B
  • Volume for Deck A and B
  • Crossfader
  • Jog wheel touch Deck A and B
  • Jog wheel spin A and B (Needs some adjustements)
  • Cue set button for Deck A and B
  • Play/Pause for deck A and B
  • Monitor Select
  • Up and down navigation tab (selects next or previous track in the list)

Master Level and Monitor Level are not controlled via Midi signals and can be considered as working as well.

Files are available here :

There is still a HUGE amount of work to have the Vestax VCI-300 supported, that’s why I hope someone will join me and help.


Very cool Wangee. If we can get some confirmation from another VCI-300 user that the mapping works well then we can add it to Mixxx 1.10.1 and 1.11.0.

Hi rryan,

I don’t think that for now it can be added to the next release of Mixx as the jog wheels are not yet working properly, and also most buttons (cue, loops, …) are not done yet.
This .midi and script files must be considered not 100% fully working. This is just a “start” hoping that someone else will help.

I’ll try to work more on this as soon as I can.


Thanks for working on the VCI300 mapping wangee.
I took your MIDI NOTE SEND data and added the MIDI NOTE RECEIVE (LED) data and put it all together in the VCI-300 - Mixxx wiki page.
Hope it helps to get the missing parts to work.

Hello I have the VCI 300 first edition, and I would like to try a bit it together with mixxx. Does any1 per chance use linux ? Is there any way to have the sound card of the vci 300 on linux ?

I do, and for v1.11 everything works perfectly on Linux. The VCI-300 works both in regards to controlling and audio card.
1.12 I’ve not gotten to fully work yet (seems not all buttons are mapped yet (like sync) or turn on button lights correctly (like cue and loop)) but it’s still very much in beta so I’m sure it’ll be good once it’s released :slight_smile:.

The VCI-300 (both the original version and the MK II) are supported on Linux, it’s plug and play.

I’ve already updated the controller script for 1.12 and don’t plan any further updates, except some code formatting. Did you reload the mapping after installing one of the latest betas?

The cue/play buttons should light up in sync with Mixxx, 3 hot cues are supported(red/yellow/blue) and 3 buttons (green) are used for loop control. I’ve also implemented a filter that is engaged by Shift + Censor and controlled by turning the mid EQ knob. Only the Auto Tempo button might not be mapped as recommended for 1.12 since I don’t use it myself :wink: But that should be easy to fix.

Please help me to complete and update the documentation:

Since my main focus is now the MC6000MK2 and C++ development for the main Mixxx application (audio decoding, metadata management) I would be glad if someone else takes over the maintenance for the VCI-300. I simply do not have enough spare time to do everything in parallel. Please remember, this is a community project and everyone is invited to participate and contribute! I started contributing by writing a controller script from scratch. Improving an existing script should be much easier.


Please instead use the following thread for further discussion and for reporting bugs: