Back
ROLAND SCB-55
This information is just taken from the thin manual
that comes with the Roland sound card (specifically pgs
24-30), and a help file provided with Canvasman. You can
read these SysEx best with a sequencer, which will show
these strings of numbers in the 'event' window (for
whatever track(s) contains any SysEx commands). [You
could enter these by hand, particularly small setting
changes, but the initial bunch of SysEx (the overall
settings for the song) is best produced with an editor,
saved as a .syx file, and then copied into the MIDI using
the sequencer program it's easier than any attempt to
'hand code'. But if you want to hand code, you'll have to
calculate the checksum. (see bottom of page)]
SysEx can be used to set things typically set with a
MIDI sequencer program, which would use 'controller'
values, instead. You can use SysEx to set the level of
chorus and reverb, channel volume, even which instruments
to use. But these are things you typically want to set in
the sequencer, not with SysEx editor. There are a few
other things, as well, like this. Generally, SysEx is
placed at the very beginning of the MIDI sequence. And
you'll move the initial controller settings (volume,
chorus, &c) to just after the SysEx has been executed
(say SysEx takes almost all of the first measure of the
song to execute, then you start the initial controller
values at the start of the 2nd measure, we'll say).
Anyway.
One SysEx string, in particular, is used to initialize
the synth to GS, and another to GM (which loses all GS
stuff, but gains backward compatibility - ugh).
GS reset F0 41 10 42 12 40 00 7F 00 41 F7
GM reset F0 7E 7F 09 01 F7
Clearly, hexadecimal values are shown, here. The F0
leads a SysEx string. The F7 closes it off (terminates
it; called EOX [end of exclusive]). These two are always
there.
In the GS message, the first 41 is the Roland
manufacturer ID, the 10 is a generic device ID, and the
42 is the ID for GS. [The GM ID, 7E, is generic, and GM
messages don't have all the stuff found in GS SysEx
messages.] This 42 ID tells the software/hardware that
SysEx commands are found in particular memory banks. The
12 is the code (DT1, or DaTa 1) to start sending data.
The 41 at the end is the checksum, which here, in this
case, is coincidentally the same as the manuf ID.
So an actual GS SysEx, the real core of the message,
consists of the bit between this header, and these two
trailing bytes (the checksum and the F7). That bit in the
middle consists of an address field of three bytes, and a
data field of varying length. In this case, the GS reset
command has the address at 40007F and the only data is
just one 0 byte.
Addresses beginning at 4001xx send data for voice/note
reserve (for each channel, and up to 24 instruments
reserved overall for all 16 'parts', even while maximum
'polyphony' number of simultaneous notes is 28),
overall reverb, and overall chorus settings (the SCB-55,
unlike the newer Yamaha XG machines, can't set
reverb/chorus characteristics for each of the 16 channels
- only overall, for all 16 at once). The GS reset, above,
uses a default/standard setting of Hall 2, and a Chorus 3
(see below). The low byte (xx) for reverb settings is
between 30 and 36, inclusive. For chorus it's between 38
and 3F; as you can see.
Reverb ( F0 41 10 42 12
cksum F7 )
Type 40 01 30 00 Room 1
01 Room 2
02 Room 3
03 Hall 1
04 Hall 2
05 Plate
06 Delay
07 Panning Delay
Depth 40 01 31 00-07
Pre-LPF 40 01 32 00-07
Level 40 01 33 00-FF
Time 40 01 34 00-FF
Delay 40 01 35 00-FF
Chorus level 40 01 36 00-FF
Each of these 8 types (or 'macros') uses preset values
for each of the six reverb settings. One need only define
the type, itself not the SysEx for the six settings, or
parameters. However, it's usually the case you'll want to
fiddle with the settings, beyond this default, standard,
preset. The standard settings are:
Reverb presets
Depth Pre-LPF Level Time Delay Ch. level
Hall 1 3 4 64 72 0 0
Hall 2 4 0 64 64 0 0
Room 1 0 3 64 80 0 0
Room 2 1 4 64 56 0 0
Room 3 2 0 64 64 0 0
Plate 5 0 64 88 0 0
Delay 6 0 64 32 40 0
Pan Delay 7 0 64 64 32 0
Chorus ( F0 41 10 42 12
cksum F7 )
Type 40 01 38 00 Chorus 1
01 Chorus 2
02 Chorus 3
03 Chorus 4
04 Feedback
05 Flanger
06 Delay
07 Delay (FB)
Pre-LPF 40 01 39 00-07
Level 40 01 3A 00-FF
Feedback 40 01 3B 00-FF
Delay 40 01 3C 00-FF
Rate 40 01 3D 00-FF
Depth 40 01 3E 00-FF
Ch. Send 40 01 3F 00-FF
Chorus presets
Pre-LPF Level Feedback Delay Rate Depth Ch. send
Chorus 1 0 64 0 112 3 5 0
Chorus 2 0 64 5 80 9 19 0
Chorus 3 0 64 8 80 3 19 0
Chorus 4 0 64 16 64 9 16 0
Feedback 0 64 64 127 2 24 0
Flanger 0 64 112 127 1 5 0
Delay 0 64 0 127 0 127 0
Delay (FB) 0 64 80 127 0 127 0
As for what these settings do, how they sound, really
the best thing is to get an editor (like Canvasman), play
the MIDI through the editor, while you adjust these
various settings. That's the way to tell. You'll hear the
difference how some instruments start to interfere with
others, how some seem to lose a little range, how the
sound seems to 'open up', and so on.
Okay. That's the overall chorus and reverb, including
flanger. It affects the whole song, the whole MIDI
sequence. It affects all 16 channels at once. But you can
set the delay/attack envelope, and the vibrato rates,
etc. for each channel, separately that is, for each
instrument, or 'patch'.
Roland refers to these chorus/reverb settings (and
voice reserve, not charted above), as common patch
parameters (commands); common to all 16 channels at once.
Those actually affecting the separate channels, with
whatever patch, are called part parameters (or commands).
Roland's idea of a 'part', by the way, isn't technically
the same as a channel. You can reassign a part to any
channel (a lil confusing). Anyway, I'll just look at the
SysEx for the part's envelope and vibrato type
parameters.
These sorts of parameters, for the SCB-55 memory
scheme, specify the channel using the middle byte of the
address. The high nibble of this byte is 1, the low is a
channel value from 1-16 (0-F). Some of these 1x
parameters can change the pitch and even ignore various
of the controllers in the MIDI (volume, pan, expression,
you name it). The envelope commands use 34-36 for the low
addr byte:
Envelope ( F0 41 10 42 12
cksum F7 )
Attack 40 1x 34 0E-72 40 default
Delay 40 1x 35 0E-72 40 default
Release 40 1x 36 0E-72 40 default
The attack might typically be one less than the
default, standard 3F rather than 40. It helps remove
the sharp click, which most instruments don't have in
'real life'. And it's often useful to increase the delay
and release a bit, as well, to give something of a
'sustain pedal' on each note (particularly for an
electric guitar, say). The actual sustain time of the
note, by the way, is simply the length of that note,
which is something you set with the sequencer, not the
SysEx editor.
Vibrato ( F0 41 10 42 12
cksum F7 )
Rate 40 1x 30 0E-72 40 default
Depth 40 1x 31 0E-72 40 default
Delay 40 1x 37 0E-72 40 default
Other tone params ( F0 41 10 42 12
cksum F7 )
Cutoff Freq 40 1x 32 0E-72 40 default
Resonance 40 1x 33 0E-72 40 default
The cutoff might go one or two steps higher, giving a
brighter sound. And the resonance, for certain selected
instruments, if you go just slightly higher than the
default, will give the instrument something of a buzz.
You generally don't want to reduce the resonance. But you
might bump down the cutoff, a bit, if you raise the
resonance, to help 'mellow out' the instrument.
That's really about all, from here. With this, you can
easily make sense of the manual provided with the Roland
PC card. The last 401x(xx) addresses are used to either
up or detune each note for that channel; like a detuned
guitar part, for example. Haven't used it, myself - but
neat feature. And the 402x commands go to obscure,
synthesizer-type controls and settings, impossible to
guess the effects of which on the MIDI beforehand best
tackled with the MIDI playing through the SysEx editor,
or from experience with old hardware synthesizers,
perhaps. And there's even a way to tweak the drums on
channel 10 (which, again, I've never used, myself). [ For
this more detailed stuff I'd refer you to the separate
Windows help file on Roland SysEx, which comes with the
Canvasman editor. ]
So to conclude, it seems, to me, that the power of
these SysEx commands are simply not tapped by anyone much
outside of Roland, itself; when they produce their demo
MIDIs. There's a whole lot you can do with these little
command strings.
Checksum:
Want to manually write a SysEx string? Very easy. You
know the standard header, you've found the command
address, and know what data you want to use. All you need
is the checksum. Call up the little calculator that comes
with Windows. Switch on HEX mode. And just add up the
bytes from the address and data fields (see above).
Divide that sum by 80 (decimal 128). Then, lastly,
subtract the remainder of that division from 80. That's
your checksum. Goes right before the F7.