background image

Programmer’s Guide

3

C4 Commander

Some Useful Terminology

SYSEX

 is short for System Exclusive. 

This is a MIDI message specific to one 
device. The header includes the manufac-

turer's ID and the device ID. A SYSEX message 
can be lengthy compared to normal MIDI com-
mands (i.e., MIDI Note or Program Change 
messages), because it contains all the data 
needed to define the parameters of a device.

Masks

 are used to hide or ignore specific se-

lected data in a SYSEX message.

HEX

 is short for hexadecimal, a base-16 num-

ber system that represents every byte as two 
consecutive hexadecimal digits (e.g., the binary 
number 0011 1111 is represented by the HEX 
number 3F).

V-Pot

 is short for Virtual Potentiometer. These 

are the rotary controls on the C4, which are ac-
tually digital encoders but provide the function 
of an analog rotary pot.

New Instrument File Creation

What you will need:

 

 

Programming experience in XML and C 

 

Familiarity with MIDI SYSEX protocols 

 

An appropriate text editor

Some recommended text editors:  
On the PC, use Notepad or WordPad.  
On the Mac, use TextEdit.

If you don’t know XML, 

STOP RIGHT 

HERE

. The assumption here is that you 

already have programmming experience; 

hence the title “C4 Commander Programmer's 
Guide.”

Steps in creating a new Instrument file:

• 

Gather the instrument’s SYSEX documen-

tation (see owner’s manual or contact the 

synthesizer manufacturer for this informa-

tion).

• 

Define masks based on the SYSEX mes-

sages used by the instrument.

• 

Define the parameters to be controlled via 

SYSEX.

• 

Optional — define ValueText messages and 

their usage by the instrument.

• 

Write the instrument file in a text editor.

• 

Test and debug.

C4 Commander XML schema 

Each instrument controlled by the C4 must have 
an Instrument Definition file. This is a schema 
we have created that is used by the C4 to hook 
into functions of that instrument. C4 ships with 
definitions of many popular instruments. 

Since new instruments are being introduced all 
the time, there are two options for obtaining 
Instrument Definition files. The first is to wait 
for someone else to write the definition, and 
the second is to write it yourself. If you are im-
patient and wish to give Instrument Definition 
writing a try, the following pages will show you 
how.

Basics

Since the format for the schema is XML, ap-
propriate start and end tag syntax (<function> 
</function>) is required. Failure to do this will 
result in errors when the C4 Commander at-
tempts to load your definition file.

Syntax

Please note the use of the “” marks in the In-
strument Definition file’s source code. These 
are not Microsoft Word begin/end quotation 
marks, as typed above. These are a text editor’s 
straight quotation marks like this:  " . If you use 
a word processor that substitutes open/closed 
(curly) quotes instead of the straight quote 
marks, it won't translate correctly, and the C4 
Commander will return an error message. 

Summary of Contents for C4 Commander

Page 1: ...PROGRAMMER S G U I D E C4Commander ExternalMIDIHardware ControlSoftware ForMackieControlC4...

Page 2: ...d in the existing Instrument folder or based on an existing definition Many times when creating a new file for anoth er instrument from the same manufacturer the manufacturer will use the same SYSEX S...

Page 3: ...contact the synthesizer manufacturer for this informa tion Define masks based on the SYSEX mes sages used by the instrument Define the parameters to be controlled via SYSEX Optional define ValueText...

Page 4: ...the MIDI Manufacturer s Association MMA A unique ID assigned to each manufacturer and stored in HEX DeviceName Name of the given instrument e g Matrix 6 This is displayed in various file lists and men...

Page 5: ...f the message one based from the left is to be masked Bit An integer indicating which bit of the message byte one based from the right is the left most starting bit of the mask Size The number of bits...

Page 6: ...yping your valuetext state ments ValueText name xxxxxxx This element is used to substitute text in place of a V Pot nu merical value So instead of seeing 0 and 1 for a V Pot value you can have on and...

Page 7: ...ting FunctionName Name of the given function e g Master volume The FunctionName is displayed as the default name in the C4 Com mander screen Since the physical C4 is limited to displaying only 7 8 cha...

Page 8: ...TextList ValueText name onoff Text value 0 Off Text Text value 1 On Text ValueText ValueText name alg Text value 0 Algorithm 1 Text Text value 1 Algorithm 2 Text Text value 2 Algorithm 3 Text Text val...

Page 9: ...C4 Commander Param ParamID 39H ParamID ParamName Amplitude Mod Depth ParamName Message F0 22 20 33 39 00 00 F7 Message ValueRangeMin 0 ValueRangeMin ValueRangeMax 99 ValueRangeMax Param ParamTable In...

Page 10: ...rs in the top LED bar of the C4 Commander PageList Holds all names of the current layout s pages The order of the child Page elements determines the corresponding page numbers Page A single page name...

Page 11: ...the param to upon quick toggle action of the V Pot Default will be half way between the min and max Layout File Format CustomLayout LayoutID 75a1e4445dcd311d LayoutID LayoutName line6 podtr LayoutNam...

Page 12: ...and the Running Man figure are trademarks or registered trademarks of LOUD Technologies Inc All other brand names mentioned are trademarks or registered trademarks of their respective holders and are...

Reviews: