In all of the following examples, we have computed the checksum for you, so all you have to do is enter the data. Roland MC-series sequencers with Super MRC automatically compute the checksum when you enter 00 just preceding the F7 (end of exclusive) message.
Two Rhythm Parts -- Enabling a second part for rhythm lets you mix the Jazz and Jazz Brush Kits. For example, combine the Electronic kit with the Standard kit, or use the SFX Kit along with any of the other drum kits. The first message below will change part 11 to drum part 2, after which you can send a program change on channel 11 to call your second drum kit. The second message changes part 11 back to a normal part.
F0 41 10 42 12 40 1A 15 02 0F F7 F0 41 10 42 12 40 1A 15 00 11 F7Controller Routing -- A common misconception is that the SC doesn't respond to aftertouch. It will actually receive both channel and polyphonic aftertouch, but first you need to assign aftertouch to a destination. All told, the SC can accept six control sources: modulation, pitch-bend, channel and poly aftertouch, and two assignable MIDI controllers. What's more, each of these can have up to 11 simultaneous destinations: pitch, filter cutoff, and amplitude, and rate, TVF depth, TVA depth, and pitch depth for each LFO. For a complete list, check addresses 40 2n 00 through 40 2n 5A on the MIDI Implementation Chart in your instrument's owner's manual.
Note that the "n" in these addresses is the part number. The following message enables aftertouch to create volume swell and add a bit of vibrato on part 1:
F0 41 10 42 12 40 21 22 78 50 06 2F F7Try this on #49 Strings to add a little intensity, or on a lead sound, such as #88 Bass & Lead. For other parts, change the second digit of the address byte (the sixth data byte, 21, in the above example) as needed. When specifying parts, Roland uses 1 for part 1, 2 for part 2, and so on through part 10, which is specified using 0. Parts 11 through 16 are specified with the hex digits A through F.
Alternate Scale Tunings -- Through sys-ex you can tune individual pitches to create scales that stray from the equal-tempered path. All kinds of historical and ethnical tunings are possible, and since a message affects only the part to which you send the string, you can even have interesting fusion effects like an ethnically tuned solo accompanied by an equal-tempered band.
Increasing the value of any single data byte (the 12 bytes following the 6 address bytes) raises or lowers the pitch one cent, and standard equal temperament is represented by 40 (hex).
These parameters are located with the Micro Edit functions on the MIDI implementation pages of the SC manual. As with all Micro Edit functions marked in the manual with an asterisk, you must send the data for all addresses within the parameter; in this case, you must send data for all 12 notes of the chromatic scale, even if there are notes that you aren't changing. The following example, set for part 1 (as denoted by the second digit in the sixth data byte), is one of many Arabic tunings, and it is effective with #16 Santur.
F0 41 10 42 12 40 11 40 40 72 40 40 0E 40 40 40 0E 40 40 0E 53 F7Changing Effects -- There's a lot more to the effects capabilities of the SC than most people realize. There are eight different reverbs, each with eight variations, plus two delays and a flanger. You can edit effect parameters, such as reverb master level and time, plus chorus rate, level and feedback. You can use CC91 and CC93 to control the amount of reverb and chorus per part, but the master levels default to 50%. With sys-ex you can increase the level as well as edit all the effect parameters, consult addresses 40 01 30 through 40 01 3F on the MIDI Implementation Chart. Here's how to select Room 2 reverb, and max its master level:
F0 41 10 42 12 40 01 30 02 04 00 7F 0A F7Here's how to max out the master levels and increase reverb time:
F0 41 10 42 12 40 01 38 04 03 F7The chorus level for each part defaults to 0, so you'll have to boost its level in order to hear the flanger.
Turning Channels Off -- When using more than one sound module with a sequencer, you may want to thin out the orchestration by turning off a part or two on your SC. Let's say you want to have a piano module respond to MIDI channel 1 and the SC-55 to channels 2 through 16. Since the SC listens on all 16 channels, you must use a short sys-ex message to turn part 1 off:
F0 41 10 42 12 40 11 02 10 0D F7Splits and Layers -- For live performance, use your sequencer and sys-ex to instantly create complex splits and layers -- even on keyboards that don't have zoning capabilities or can't transmit on multiple channels.
First we assign part 2 to MIDI channel 1. To do this, create a sys-ex string in which part 2's address, 40 1n 02 (with n=2), is followed by the data byte 00, which denotes MIDI channel 1. Part 1 is already assigned to MIDI channel 1, so we don't have to tinker with it.
We now assign the parts specific keyboard ranges using the Key Range Low and High addresses (40 1n 1D and 40 1n 1E). Now select tones for each part with the Tone Number address (40 1n 00 and 01; two bytes required).
This is great if you want to play a bass and piano break in the middle of a song. Leave out the Key Range messages and you have an instant layer. First, assign part 2 to MIDI channel 1:
F0 41 10 42 12 40 12 02 00 2C F7Now let's use modulation to control the level of the sound on Part 2. We'll assign modulation to amplitude and turn the pitch modulation off, like this:
F0 41 10 42 12 40 22 02 7F 40 00 5D F7You can use this example to fade in a string sound over a piano sound.
Voice Reserve -- This parameter lets you assign a minimum number of voices and a hierarchy for each part, so that if the number of notes in a sequence exceeds the unit's polyphony, it will borrow voices from the lower priority parts and keep the higher ones playing. If two parts are assigned the same number of voices, the lower-numbered part will take priority. The SC has a default part priority where part 10 (the drum part) is highest, followed by parts 1 through 16 in ascending order.
The following message reassigns the voice reserves for parts 9 through 16, reserving a minimum of three voices each on parts 9, 11, and 12, and two each on parts 13 through 16:
F0 41 10 42 12 40 01 1003 00 00 00 00 00 00 00 00 03 03 03 02 02 02 02 6C F7GS Reset -- This message will reset the SC to its factory default condition. In the case of the newer SC instruments, such as the SC-55mkII, you must send this message before using the NRPNs to program your sounds. Insert this message at the beginning of every song, in order to wipe the palette clean:
F0 41 10 42 12 40 00 7F 00 41 F7The best thing about this message is that you don't need to worry about messing up your SC by entering any of the other messages in this article incorrectly. It will always return you to a clean condition.
WHAT THE HEX? -- MIDI messages can be notated numerically in one of three ways: binary, decimal, or hexadecimal. The method the microprocessors in your MIDI equipment prefers is binary, in which each of the eight bits in a data byte is represented by either a 0 or a 1. Hexadecimal (hex) notation makes working with MIDI messages easier than either the decimal or the binary systems.
Hex is base 16. Our decimal system only has 10 symbols for representing numbers, but hex must have 16. To accommodate these six unrepresented values, we use the letters A through F to represent the values from 10 through 15 decimal. A value of 16 appears in hex as 10. (Some publications use an "H" after a hex number to make it easy to tell the difference between 10 in decimal and 10H, which would be 16 in decimal.)
Since four digits of binary can represent a total of 16 different values, we can quickly translate an eight-digit binary number into a two-digit hex number. It's easier to recognize status bytes and MIDI channels when they are in a hex notation; consequently, it's easier to keep track of MIDI messages when inserting them in a sequencer track or programming your SC in Micro Edit mode, which displays all parameters in hex.
MIDI system-exclusive messages contain hexadecimal representations of a given instrument's internal parameter settings. The Sound Canvas's sys-ex messages are divided into three sections: header, body, and end. The header is virtually identical for most of the sys-ex messages you'll use with the SC. It simply identifies this message as sys-ex for a Roland GS instrument.
F0 Begin sys-ex 41 Roland ID 10 Device ID 42 GS Model ID 12 Data Set CommandThe body consists of a three-byte address, any number (up to 256) of data bytes, and the infamous Roland checksum. Each editable parameter in the SC has its own sys-ex address. This allows you to send a sys-ex message to a specific address without bothering the neighboring parameters. Look for the Parameter Base Address near the back of your SC manual, then find the table labeled Patch Parameters for the addresses used in these examples.
For our first example, we'll change the reverb from the Hall 2 default setting to delay. Under Patch Parameters, Reverb Macro is listed next to the address 40 01 30. We enter those numbers as our three-byte address.
40 01 30 (address)
The address is a starting point for the data bytes to enter memory. The first data byte is entered at that address, and the remaining data bytes automatically flow to the following address locations. For Reverb Macro, the manual indicates there are eight choices, of which delay is number 06, so 06 becomes our first and only data byte.
06 (data)
Next, we need to compute a checksum for this message. The checksum is used to protect your SC from receiving corrupted data by ensuring that the address and data bytes follow a precise mathematical formula. Corruption is usually not a problem when creating small messages, as in these examples, but can be when one missing byte in a bulk dump can ruin a dozen of your favorite patches! Here's a simple translation of the checksum formula:
80 - (sum of address bytes + sum of data bytes) = Checksum
If the sum of the address and data bytes is greater than 80 (hex), the result will be negative checksum. In that case, subtract 80 from the address and data sum as often as necessary until the sum is less than 80, so that the subtraction that computes the checksum yields a positive result. For our example, we have:
80 - (40 + 01 + 30 + 06) = Checksum 80 - 77 = Checksum 09 = Checksum (Hex !!)But hypothetically, if the sum of the address and data bytes had been greater than 80 (hex):
80 - (80 + 40 + 01 + 40 + 06) = Checksum
80 - 107 = Checksum (negative, so subtract 80)
80 - (107 - 80) = Checksum (still negative, so subtract 80 again) 80 - (87 - 80) = Checksum (positive)
79 = Checksum
So our body now becomes:
40 01 30 06 09 (address - data byte - checksum)
If you're new to hex, you may be confused to see an equation like 80-77 = 09. You may find it easier to convert all the values to decimal, perform the subtraction, and then convert back. In this case, 128 (equal to 80 hex) minus 119 (equal to 77 hex) equals 9.
The checksum is followed by the end-of-exclusive byte F7. Our entire message would be:
F0 41 10 42 12 40 01 30 06 09 F7For the SC, there is a slight variation on this message format when we want to address parameters for a single part. Look in the Patch Parameter addresses in the manual to find:
40 1n 02 Rx Channel 40 1n 03 Rx Pitch-BendNotice all the addresses past this point have an "n" in the second address byte. In hex, the 16 SC parts are numbered starting with 1. For part 1, n=1, for part 2, n=2, and so on. For part 10, n=0, after which part 11 is numbered A and so on. For this example, let's say we want to change part 1 from MIDI channel 1 to channel 16, and not have it respond to pitch-bend messages. First, we use the same five-byte header, followed by the appropriate starting address as shown in the Patch Parameter list -- with n=part 1 -- and two data bytes, since we're changing two consecutive parameters:
Header: F0 41 10 42 12
Address: 40 11 02
Data: 0F 00
Our checksum for this message would be:
80 - (40 + 11 + 02 + 0F + 00) = Checksum
80 - 62 = Checksum
1E = Checksum
Yielding:
F0 41 10 42 12 40 11 02 0F 00 1E F7The Sound Canvas listens on all 16 MIDI channels. Use the sys-ex messages in this chart to turn off individual parts.
Part 1: F0 41 10 42 12 40 11 02 10 1D F7 Part 2: F0 41 10 42 12 40 12 02 10 1C F7 Part 3: F0 41 10 42 12 40 13 02 10 1B F7 Part 4: F0 41 10 42 12 40 14 02 10 1A F7 Part 5: F0 41 10 42 12 40 15 02 10 19 F7 Part 6: F0 41 10 42 12 40 16 02 10 18 F7 Part 7: F0 41 10 42 12 40 17 02 10 17 F7 Part 8: F0 41 10 42 12 40 18 02 10 18 F7 Part 9: F0 41 10 42 12 40 19 02 10 15 F7 Part 10: F0 41 10 42 12 40 10 02 10 1E F7 Part 11: F0 41 10 42 12 40 1A 02 10 14 F7 Part 12: F0 41 10 42 12 40 1B 02 10 13 F7 Part 13: F0 41 10 42 12 40 1C 02 10 12 F7 Part 14: F0 41 10 42 12 40 1D 02 10 11 F7 Part 15: F0 41 10 42 12 40 1E 02 10 10 F7 Part 16: F0 41 10 42 12 40 1F 02 10 0F F7Send the following sysex message to reset the module to its factory settings:
F0 41 10 42 12 40 00 7F 00 41 F7.Ernie Rideout is the former editor of the Roland Users Group magazine. Doug Hanson is the product specialist manager for Roland.
Go back to the Table of Contents.