* MIDI INFO *  
 SysEx
   

SEND E-Mail
  MIDIs | HOME | LINKS  

  OVERVIEW | MIDI FILE | SEQUENCER | SYNTHESIZER  
  OVERVIEW | MODULES | CARDS | SOFT SYNTHS  
-------
  CONTROLLERS | RPN/NRPN | INSTRUMENTS  
NN 2+/IE 3 at 1024x768x256
 
TEXT only ('Mosaic') version

 
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.