Sidstation – Elektron Sidstation User Manual

Page 41

Advertising
background image

SIDSTATION

Owners Manual

41

SYSEX Patch data bytes:

The first ten patch data bytes are the patchname in ASCII format.

Subsequent bytes are sent and received in high/low-nibble format as seen
below:

%0000aaaa - highnibble
%0000bbbb - lownibble

Together they form an eightbit byte as: %aaaabbbb

Patchdata:

--------+------------------+------------------------------------------------
Index | Name | Function
--------+------------------+------------------------------------------------
0..9 | PATCH_NAME | Patch name in ASCII
10 | PATCH_DCTRL1 | Direct controller 1 (0..96)
11 | PATCH_DCTRL1_LD | DCTRL1 limit down (0..127 - must be lower than
| | PATCH_DCTRL1_LU)
12 | PATCH_DCTRL1_LU | DCTRL1 limit up (0..127 - must be higher than
| | PATCH_DCTRL1_LD)
13 | PATCH_DCTRL2 | Direct controller 2 (0..96)
14 | PATCH_DCTRL2_LD | DCTRL2 limit down (0..127 - must be lower than
| | PATCH_DCTRL2_LU)
15 | PATCH_DCTRL2_LU | DCTRL2 limit up (0..127 - must be higher than
| | PATCH_DCTRL2_LD)
16 | PATCH_DCTRL3 | Direct controller 3 (0..96)
17 | PATCH_DCTRL3_LD | DCTRL3 limit down (0..127 - must be lower than
| | PATCH_DCTRL3_LU)
18 | PATCH_DCTRL3_LU | DCTRL3 limit up (0..127 - must be higher than
| | PATCH_DCTRL3_LD)
19 | PATCH_DCTRL4 | Direct controller 4 (0..96)
20 | PATCH_DCTRL4_LD | DCTRL4 limit down (0..127 - must be lower than
| | PATCH_DCTRL4_LU)
21 | PATCH_DCTRL4_LU | DCTRL4 limit up (0..127 - must be higher than
| | PATCH_DCTRL4_LD)
22 | PATCH_MODE | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | |FEINV|FWRAP|LEGAT| | POLY| OSC3| OSC2| OSC1|
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | FEINV - Filter Envelope Invert
| | FWRAP - Filter wrap
| | LEGAT - Portamento Legato On/Off
| | POLY - Poly mode On/Off
| | OSC3 - Oscillator 3 active
| | OSC2 - Oscillator 2 active
| | OSC1 - Oscillator 1 active
23 | PATCH_MODE2 | Not used - set to zero
24 | PATCH_FLT_ACTRS | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | RESONANCE (0..15) | | FLT3| FLT2| FLT1|
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | FLT3 - Oscillator 3 routed through filter
| | FLT2 - Oscillator 2 routed through filter
| | FLT1 - Oscillator 1 routed through filter
25 | PATCH_FLT_TYPLFO | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | FilterLFO | | Filtertype(0..7)|
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | FilterLFO - What LFO to control filter cutoff (0..3)
26 | PATCH_FLT_CUTOFF | Cutoff value for filter (0..127)
27 | PATCH_FLT_ENVDEP | Filter envelope depth (0..127)
28 | PATCH_FLT_ENVATT | Filter envelope attack (0..127)
29 | PATCH_FLT_ENVDEC | Filter envelope decay (0..127)
30 | PATCH_FLT_ENVSUS | Filter envelope sustain(0..127)
31 | PATCH_FLT_ENVREL | Filter envelope release(0..127)
32 | PATCH_FLT_LFODEP | LFO depth for filter (0..127)
33 | PATCH_FLT_LFOWHD | Amount the modulation wheel adds to filter LFO (0..127)
34 | PATCH_SYNC_SPEED | Local update speed for patch (50..200)
35 | PATCH_SYNC_HCUT | Local Hardcut setting for patch (0..15)
36..56 | PATCH_OSC1 | Settings for Oscillator 1 (21 bytes)
57..77 | PATCH_OSC2 | Settings for Oscillator 2 (21 bytes)
78..98 | PATCH_OSC3 | Settings for Oscillator 3 (21 bytes)
99..109 | PATCH_LFO1 | Settings for LFO 1 (11 bytes)
110..120| PATCH_LFO2 | Settings for LFO 2 (11 bytes)
121..131| PATCH_LFO3 | Settings for LFO 3 (11 bytes)
132..142| PATCH_LFO4 | Settings for LFO 4 (11 bytes)
143.. | PATCH_TABLE1 | Table data (see below for documentation)
.. | PATCH_TABLE2 | ..
.. | PATCH_TABLE3 | ..
--------+------------------+------------------------------------------------

Oscillator data:

--------+------------------+------------------------------------------------
Index | Name | Function
--------+------------------+------------------------------------------------
x+0 | OSC_FLAGS | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | | | | |GATE |SPWM |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | SPWM - Synchronize PWM-add, ie restart PWM-value from
| | PWM_START on every NOTE_ON received.
| | GATE - Use gate or SID-envelope
x+1 | OSC_TRACK | 0 = Keyboardtracking,
| | 1..99 = fixed note
x+2 | OSC_ARPSPEED | 0 = No arpeggiator
| | 1..127 = arpeggiator speed
x+3 | OSC_TRANSPOSE | Oscillator Transpose (-24..+24)
x+4 | OSC_DETUNE | Oscillator Detune (-64..+63)
x+5 | OSC_PBRANGE | Oscillator pitchbend range (0..24)
x+6 | OSC_ATTACK | SID-envelope Attack (0..15)
x+7 | OSC_DECAY | SID-envelope Decay (0..15)
x+8 | OSC_SUSTAIN | SID-envelope Sustain / Gate volume (0..15)
x+9 | OSC_RELEASE | SID-envelope Release(0..15)
x+10 | OSC_DELAY | Oscillator delay (0..127)
x+11 | OSC_PWM_START | Pulsewidth start (0..127)
x+12 | OSC_PWM_ADD | Pulsewidth modulation add (PWM-sweep) (0..127)
x+13 | OSC_PWM_LFO | Pulsewidth LFO number (0..3)
x+14 | OSC_PWM_LFODPTH | Pulsewidth LFO depth (0..127)
x+15 | OSC_WAVE | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | Oscillator Waveform | |RINGM|SYNC | |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | Oscillator Waveform:
| | $1 = Triangle
| | $2 = Saw
| | $4 = Pulse
| | $5 = Mixed
| | $8 = Noise
| | RINGM = ringmodulation On/Off
| | SYNC = synchronization On/Off
x+16 | OSC_PORTSPEED | Oscillator portamento speed (0..127)
x+17 | OSC_VIB_LFO | Oscillator vibrato LFO (0..3)
x+18 | OSC_VIB_DEPTH | Oscillator vibrato depth (0..127)
x+19 | OSC_VIB_WHD | Oscillator vibrato modulation wheel depth (0..127)
x+20 | OSC_TABLESPEED | 0 = Table not activated
| | 1..127 = Table speed
--------+------------------+------------------------------------------------


LFO data:

Index | Name | Function
--------+------------------+------------------------------------------------
x+0 | LFO_CTRL_TYPE | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | | CTRL_Source | | | LFO_TYPE |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | CTRL_Source (0..11): 0 = ModWheel
| | 1 = PitchBend
| | 2 = Velocity
| | 3 = Aftertouch
| | 4 = LFO_CTRL1 (MIDI_CTRL)
| | 5 = LFO_CTRL2 (MIDI_CTRL)
| | 6 = LFO_CTRL3 (MIDI_CTRL)
| | 7 = LFO_CTRL4 (MIDI_CTRL)
| | 8 = LFO1
| | 9 = LFO2
| | 10 = LFO3
| | 11 = LFO4
| | LFO_TYPE (0..4) 0 = Triangle
| | 1 = Saw
| | 2 = Ramp
| | 3 = Pulse
| | 4 = Random
| | 7 = Flat
x+1 | LFO_OPTIONS | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | | | CTRL_Dest |SNOFF| ABZ | INV |SYNC |
| | +-----+-----+-----+-----+-----+-----+-----+-----+
| | SYNC = sync note on
| | INV = invert LFO
| | ABZ = (Above Zero) Output of LFO is strctly positive
| | SNOFF = sync to note off
| | CTRL_Dest = Destination of control:
| | 0 = None
| | 1 = LFO Depth
| | 2 = LFO Speed
| | 3 = LFO S/H
| | 4 = LFO Lace
x+2 | LFO_SPEED | Speed of LFO (0..127)
x+3 | LFO_SAMPHOLD | Sample and hold (0..127) 0=off
x+4 | LFO_DEPTH | Depth of LFO (0..127)
x+5 | LFO_ADDLFO | Add output of this LFO (0..2)
x+6 | LFO_LACE | Speed of interlace (0..127)
x+7 | LFO_LACEWITH | Use this to lace with: (0..3)
| | 0 = Zero
| | 1 = LFO1
| | 2 = LFO2
| | 3 = LFO3
| | 4 = LFO4
x+8 | LFO_ADDDEPTH | Amount of added LFO (0..127)
x+9 | LFO_CTRLVAL | Amount the CTRL data can affect the depth (0..127)
x+10 | LFO_FADEIN | Speed of Fade in.
| | 0 = no fade in
| | 1..127 = fade in speed
--------+------------------+------------------------------------------------

Table data:

Index | Name | Function
--------+------------------+------------------------------------------------
x+0 | TABLE_DATA1 | $FF = TABLE_END, no TABLE_DATA2 follows after.
| | No more data for this table.
| | $FE = TABLE_LOOP, TABLE_DATA2 tells looppoint.
| | Only TABLE_DATA2 follows for this table
| | Other values: Waveform (see OSC_WAVE for
| | specification).
x+1 | TABLE_DATA2 | $00..$7F = Fixed notenumber
| | $80..$BF = Add TABLE_DATA2-$80 to notenumber.
| | $C0..$FF = Subtract TABLE_DATA2-$C0 from notenumber.
| | TABLE_LOOPPOINT if TABLE_DATA1 was TABLE_LOOP
... | TABLE_DATA1 ...

TABLE_DATA1 and TABLE_DATA2 follows after each other, building up the steps in
the table. The table can be of maximum size of 32. After that the table is
ended even if TABLE_END or TABLE_LOOP were found. Normally a table is ended
with TABLE_END or TABLE_LOOP+TABLE_LOOPPOINT.













SYSEX Direct Program messages:

All Direct Program messages start with the general SidStation Direct Program-
sequence:
F0 00 20 3c 01 00 04
...continues with one (not more) Direct Program-sequence as specified below in the
chart below, and ends with the standard F7 SYSEX-end-byte.

The x/y-characters refers to data as specified in the Function row.

Only use the data specified in the Function-menu. Sending data other than what is
specified can make the SidStation crash and invalidate the patchmemory.

Direct Program sequences:

---------------------------+------------------------------------------------
Sequence | Function
---------------------------+------------------------------------------------
00 00 7f 00 %0yyyyyyy |
.. | Patch name in (extended) ASCII (positions 0..9)
00 09 7f 00 %0yyyyyyy |

00 0a 7f 00 %0yyyyyyy | Direct Controller 1 (0=OFF,1..82=DCTRL_x)
00 0b 7f 00 %0yyyyyyy | DCTRL1 limit up
00 0c 7f 00 %0yyyyyyy | DCTRL1 limit down
00 0d 7f 00 %0yyyyyyy | Direct Controller 2 (0=OFF,1..82=DCTRL_x)
00 0e 7f 00 %0yyyyyyy | DCTRL2 limit up
00 0f 7f 00 %0yyyyyyy | DCTRL2 limit down
00 10 7f 00 %0yyyyyyy | Direct Controller 3 (0=OFF,1..82=DCTRL_x)
00 11 7f 00 %0yyyyyyy | DCTRL3 limit up
00 12 7f 00 %0yyyyyyy | DCTRL3 limit down
00 13 7f 00 %0yyyyyyy | Direct Controller 4 (0=OFF,1..82=DCTRL_x)
00 14 7f 00 %0yyyyyyy | DCTRL4 limit up
00 15 7f 00 %0yyyyyyy | DCTRL4 limit down
00 16 01 00 %0000000y | Osc1 ON/OFF
00 16 01 01 %0000000y | Osc2 ON/OFF
00 16 01 02 %0000000y | Osc3 ON/OFF
00 16 01 03 %0000000y | Poly/Single
00 16 01 04 %0000000y | Filter sync to note_on
00 16 01 05 %0000000y | Legato switch
00 16 01 06 %0000000y | Filter wrap switch
00 16 01 07 %0000000y | Filter Envelope Invert
00 18 07 00 %00000yyy | Filter Active (Osc 3/2/1)

Advertising