Midi is a musical protocol allowing data communication between instruments and computers. It is a strong and valuable signal.
A lot of products exist, giving a large choice for manual interfaces to use with White Cat: knobs, sliders, triggers and pads ….
Generally for lighting, you will prefer what is called a Control Surface. Control Surfaces usually have sliders. You may also want to work with keyboards or any nice MIDI instrument (breath controller, ribbon, or whatever else).
For lighting, the mostly commonly used are BCF2000 and UC-33. Novation, Korg and Akai products are also often used.





Midi instruments are not generating .wav or .mp3, but are sending numerical messages. Those messages have a very specific signal:
Signal Type
In lighting, we will use primarily 2 signal types:
The instrument will send data depending on its internal assignment (Key-On/Key-Off or Ctrl-Change).
Ids
This signal contains in addition to the type, two other identifiers:
The identifiers allow us to definitively recognize a control. We have 16*127 possible selections.
Midi Channel is a good way to separate the signals originating from different devices, ie notes from a keyboard on Channel Midi 1, notes from Akai Pad on Channel Midi 3, notes form VVVV on Channel Midi 6…
Value
And, finally, the value of the signal, called velocity, expressed from 0 to 127.
This value has less range than dmx, which has 255 steps.
Concerning keyboards and pads, this value changes depending of the velocity of your touch.
Buttons on control surface generally have no velocity. They are triggers. They will have fixed levels for On/Off (127/0 for example).
Internal programming of a midi device
Midi is a simple system. But usages are very different from one user to another, and needs vary also. So midi devices may need to be:
This may be done thru the device shortcuts, or thru an external program (easier & faster) that you can install on your computer.
From version 0.7.6.6 onward, command analysis is done only on Midi Channel and Pitch. Type (Ctrl-Change or Key-On / Key-Off/Note ) is no longer considered. Certain hardware devices have their buttons preset at the factory to send Ctrl-Change for example.
Only Flash keys need an absolutely Key-On signal to work correctly.
A midi device may be plugged to your computer:
The Same midi slot can't be assigned to two different software applications.
In order to achieve this, you will need to virtually split the signal, to allow the sending of the same signal to different apps on the same computer. Midi-Ox / MidiYoke is a free software suite enabling this.
It is a very strong, reliable and multipurpose application to work with when you are doing a lot of special configs with midi. MidiYoke is the perfect friend of the White Cat user when he wants to work with different apps on the same midi device.
This suite is donwloadable in two parts that you can download and install separately:
MidiYoke is included in Midi-Ox.
MidiYoke doesn't contains Midi-Ox.
This technique is usable also to receive or send midi data from White Cat.
You can send from White Cat midi out to:
if you use a physical slider, then thru the software, you will see that the software will refresh physically the position of your slider.
For example, with a BCF200.
This menu provides the following sub menus:
You obtain access to it by clicking [CFG MAIN] or pressing ( Shift-F11) then select [MIDI CONFIG] tab.
You can connect one or more midi devices to White Cat.
Here this snapshot shows virtual slots from Midi Yoke and a generic midi device appearing as Périphérique audio usb, and with 2 inputs slots.
.
The first two rows are corresponding to Midi Input in White Cat, the two rows on the right are the output from White Cat to the devices. To connect/disconnect to a midi slot, just click on it.
Rescan button allows you to scan devices on the system, and to replug unplugged devices without quitting White Cat.

Certain devices needs to cheat the signal, to accommodate White Cat's needs.
So, if you are a BCF2000 owner and have buttons emitting only Key-ON Vel 0 and not Key-OFF, you will have a hard time using those buttons with the [RECALL] function in the Mini-faders window.
Trick: On certain control surfaces (like UC-33), buttons generate a Ctrl-Change toggle behaviour:
Using Key-On Vel0 = Key-Off, you will obtain from this button the ability to be assigned to the GO, without having to re edit button's parameters inside your hardware.
By default is ON.
This enables you to keep only ONE command assigned to ONE thing.
By setting it Off, you allow multiple assignments, so the same control can remotely control different things.
This option allows you to create some exotic usages:
aka: same midi command for a lighting fader and the volume of an audio player will allow you to trigger the light cue and sound cue with one command.
Be careful if you set this mode to off. Do not forget to set it back on after your special assignment.
With certain controllers you will need to MUTE the input of data, so that it is not routed to the White Cat commands; Midi Mute is there for this.
But from version 0.8.2.2 onward, a new muting system is there, allowing you to mute [GLOBAL] like here, or selectively. See MidiMute System at the end of this wiki page.
v.0.8.2.3 Muted command is automatically demuted when the midi signal matches the level of the command in WhiteCat.
v.0.8.2.3 Concerns only faders. When an LFO is launched, midimute is automatically set ON.
When you are using Cuelist speed control, it is automatically muted at the end of the crossfade if its value is different from normal sped( 64). This enables to put your midi fader at the right value, and coupled to Auto-demute opton, this is a strong option when you have a lot of memores linked and you want to take the hand smoothly on their speed.
The Launchpad is a special midi device with a grid of 64 + 16 buttons. Launchpad is integrated inside White Cat because of White Cat's large number of button commands needed for live work. Its relatively reasonable price and robustness made it a top choice for me.
One of specifics of the Launchpad is its LED backlighting system, which allows you to quickly find your buttons in the darkness of your control room .
By setting this function ON, you will send back to your midi output, command states (LFO/ Down/UP / GO / iCat page … ). Launchpad is a slow device, so just states are treated visually. Pulses like doing a Dock+/dock- or Ctrl-W/X doesn't refresh the backlighting.
Select [To Launchpad] if you wish to emit lighting states of the buttons.
Launchpad, and many new midi control surfaces that are back lit, are waiting to receive back the signal that they are emitting, at a certain value.
This value, from 0 to 127, determines the color of the lighting.
If you own midi devices with such a feature (like AKAI MPC40), you can reprogram the lighting value sent by typing a value in the color desired. It depends on the hardware specifications.
There are 6 colors defined for White Cat, based on Launchpad's default values:
To redefine them:
To see Launchpad feedback commands available in WhiteCat, have a look to : Launchpad
This change is done on all recognized signals (Key-Off /Key-On or Ctrl-Change), and is done if Channel and Pitch are matching. This transformation of the signal is done in the following way:
This order is important to keep in mind, as it will enable you to cheat the signal in many ways, depending on your hardware.
Normal behaviour.
Certain devices, like Pronto lighting boards, have very strange peculiarities: if you ask it to emit in midi, it will give you an inverse signal on the second line of faders (127-0 instead of 0-127). This can't be changed in its menu.
So now you can reverse the signal in White Cat:

If your midi device can't be modified in the hardware, you can use White Cat's Toggle mode:
One each reception of a Key-On Vel 127, signal will be cheated in On/OFF 127/0, depending on its last state:
This may be interesting though for dedicated, maintained Flash or Levels.
Enables you to get a Key-Off if Key-On Vel=0
Enables you to get a Key-On Vel=0 if the signal is Key-Off
Midi presets are just a recording by users of their configuration.
Ideally
From version 0.7.6.6 onward, only one page, MIDI AFFECT brings together Faders Config and Button Config, allowing you to assign more easily commands. Assignments are now only possible in Solo mode or x8. Video tutorial should be redone.
Commands are assignable with Ctrl-Change, Key-On and Key-Off, for all commands (sliders or buttons).
Assign a midi signal to a White Cat command is done in this way:
Be careful that the assignment mode stays triggered and remember that you need to deselect it before touching other commands.
So you need:
Last signal received will be the one which will be assigned to a command.
to
Device must be selected in input in [MIDI DEVICES].
When you move or touch a control, a signal appears in front of »MIDI IN:
! Be aware that White Cat is filtering Midi received messages so that nothing other than Ctrl-Change, Key On or Key Off messages will show up.


Why Fake Midi ?
Sometimes we need to guide other software programs thru midi. No need for special hardware, so, just to recreate false midi data and emit them on a virtual slot with Midi Yoke and MidiOut option of the faders.
Select [Clear] and set solo or x8.
If you need to erase ALL your midi assignments, simply go to save menu:
There are different modes of assignment, depending on the commands (a lot of similar commands, or solo commands)
Before version 0.7.6.6 you could attribute solo, x8, x48 or keyboard mode. This has been simplified to keep only solo and x8 modes.

It can be very tiring to assign to 48 faders commands and signals. So there is a serial way to treat this assignment, by using the x8 command.
This serial action is based on incrementing Pitch Id OR, if selected, incrementing Midi Channel ( cf image below in Chan. mode, not in Pitch mode).

If a command or an action exists in 8 or more, it may be assignable per 8 aka: Up commands of the faders (48). faders (48). color docks (8). ROI in Video tracking are 12, so first 8 may be assignable x8.
If the similar commands are less than 8, they need to be assigned in solo. Onstage fader is solo. Tracking video presets are 5, so you assign them solo.
Pot. 1: Ch:1 Pitch 8
Pot. 2: Ch:2 Pitch 8 Pot. 3: Ch:3 Pitch 8 etc .... until Pot. 8: Ch:8 Pitch 8
Despite assigning them manually one by one:
If my device has the following type of IDs for the 8 sliders:
Pot. 1: Ch:0 Pitch 16 Pot. 2: Ch:0 Pitch 17 Pot. 3: Ch:0 Pitch 18 etc .... until Pot. 8: Ch:0 Pitch 23
I will let serial mode in [Pitch].
once your mode has been chosen:
Please see Chart of midi assignments
The MidiMute Button is a shortcut enabling you to mute all assignments to commands.
You will mute ALL MidiMute(local) in White Cat. This command may be manipulated with a midi button, and will not be muted ( ;-P ).
No assignments will be remote controlled until you are OFF.
When you set ON MidiMute (global) all MidiMute (local) are set. When you set OFF MidiMute (global) all MidiMute (local) are closed.
You may use MidiMute(local) even though MidiMute (Global) is ON.
MidiMute (local) is a little circle generally placed down by the MidiOUT hanging circle, that is assigned to any slider in White Cat. If you set this circle ON, the command will no longer listen for midi signal. The midi signal level will appear, enabling you to replace your faders physically, without touching the levels in White Cat. Level appears as a white line.
Everthing with a slider or a wheel in White Cat: