# Novation BassStation Rack

MIDI controlled analogue synthesizer from the 1990s.

# 1 Specifications

  • 1U rackmount module, lots of knobs
  • MIDI in out thru
  • mono audio in (to filter) out
  • cv + gate in out
  • 2 oscillators (including pwm and osc sync)
  • 1 lfo (including tempo sync)
  • 2 envelopes (amplitude, modulation)
  • 1 low pass filter (12dB and 24dB modes)
  • 2 digit display with keypad to edit patches
  • 40 presets in ROM, 60 user presets in flash

# 2 User Manual

Widely available online:

Does not document MIDI system exclusive messages (sysex).

# 3 Patch Editors

# 3.1 Max For Live

# 3.2 Electra One

# 3.3 Classic Amiga

# 4 MIDI Implementation

# 4.1 Controls

See user manual pages 18 and 21.

# 4.2 SysEx

# 4.2.1 Dump Request

There is a message that can be sent to the synth to tell it to dump a patch to its output. Alas I do not have the details.

# 4.2.2 Single Patch

BassStation Rack single patch format (sent and received).

(The synth also supports BassStation keyboard format with some data loss due to hardware differences, but I do not have the details.)

Adapted from cha_bsr/source/bsrtone.e, which was based on official documentation back in the day. however, mistakes may have been introduced in translation, so use at your own risk.

offset data* value* range parameter notes
0 F0 00 20 29 01 03 22 start of sysex
7 0x 0y xy 00-FF portamento
9 0x 0y xy 00-FF osc2finetune
11 0x 0y xy 00-FF osc2semitone quantized to 0-C
13 0x 0y xy 00-FF oscmix
15 0x 0y xy 00-FF osc1env
17 0x 0y xy 00-FF osc1lfo
19 0x 0y xy 00-FF osc1pwm
21 0x 0y xy 00-FF lfofrequency
23 0x 0y xy 00-FF lfodelay
25 0x 0y xy 00-FF filterfrequency 40-C7 in 12dB mode
27 0x 0y xy 00-FF filterresonance
29 0x 0y xy 00-FF filterlfo
31 0x 0y xy 00-FF env1attack
33 0x 0y xy 00-FF env1decay
35 0x 0y xy 00-FF env1sustain
37 0x 0y xy 00-FF env1release
39 0x 0y xy 00-FF env1velocity
41 0x 0y xy 00-FF env2attack
43 0x 0y xy 00-FF env2decay
45 0x 0y xy 00-FF env2sustain
47 0x 0y xy 00-FF env2release
49 0x 0y xy 00-FF env2velocity
51 0x 0y xy 00-FF osc2env
53 0x 0y xy 00-FF osc2lfo
55 0x 0y xy 00-FF osc2pwm
57 0x 0y xy 00-FF filterenv
59 0x 0x 00-0F modpitch
60 0x 0x 00-0F modfilter
61 0x Sx F9-07 pitchbreath -7 to +7
62 0x Sx F9-07 pitchaftertouch -7 to +7
63 0x Sx F9-07 filterbreath -7 to +7
64 0x Sx F9-07 filteraftertouch -7 to +7
65 0x 0x 00-0F egbiasbreath 0 to 15
66 0x 0x 00-0F egbiasaftertouch 0 to 15
67 0x 0y xy 00-FF pitchbend 00-0C
69 0x 0y xy 00-60 lfoclock 24ppqn; 0,2,3,4, 6,8,9,12, 16,18,24,32, 36,48,72,96
71 0000xyyz x 0-1 osc1wave 0=square, 1=saw
yy 0-3 osc2range 0=16, 1=8, 2=4, 3=2
z 0-1 osc1wave 0=square, 1=saw
72 0000xyzz x 0-1 filtermod 0=lfo, 1=env2
y 0-1 filtertype 0=24dB, 1=12dB
zz 0-2 lfowave 0=random, 1=triangle, 2=saw
73 00000xyy x 0-1 oscsync 0=off, 1=on
yy 0-3 triggertype 0=polyphonic, 1=multi, 2=single, 3=autoglide
74 0000xxyy xx 0-2 osc1pwmtype 0=lfo, 1=manual, 2=env2
yy 0-2 osc2pwmtype 0=lfo, 1=manual, 2=env2
75 F7 end of sysex

76 bytes total message length

*data: 2 characters hexadecimal (4 bits per character), 8 characters binary (1 bit per character)

*value: S sign extend from 4 bits

# 4.2.3 Complete Bank

Sends all user presets and some extra bits. Message format unknown.

Warning receiving overwites everything regardless of write projection switch.