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.]
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.
|