Article History
 
 
 
Discussion
 
143 views
 
101% damifortune
sc55 (format) View HTML Version
 

The '[b]Roland SC-55'[/b] (Sound Canvas) was a MIDI module released in 1991. It was the first to incorporate the brand-new General MIDI standard and the first installment of the now-infamous Sound Canvas series. Like other so-called "ROMplers" (for example the '[[mt32 (format)[MT-32] or the MU-50 that our '[[xg (format)[XG format] targets), it is a rack-mounted box with no attached keyboard of its own; MIDI data is simply fed through it to create sound, whether that's coming from a MIDI controller or a sequencer filled with song data.

... And that's what we're here to do with this BotB format! Create a MIDI file played through the SC-55. The sound is similar to good old '[[midi (format)[MSGS MIDI], with some upgrades in sample quality and the addition of some effects. Because the SC-55 adheres to the General MIDI standard, you can refer to '[[Specification of General MIDI and Roland MT-32 patches[this patch list] to see all the usable sounds.

Luckily, you don't need to own a Roland SC-55 to do this format - in 2024 an emulator called '[l[https://github.com/nukeykt/Nuked-SC55[Nuked-SC55] was released! This makes the SC-55 accessible in a similar way that '[[mt32 (format)[the Roland MT-32] is accessible via the Munt emulator. Using Nuked-SC55 and a MIDI loopback tool such as '[l[https://www.tobias-erichsen.de/software/loopmidi.html[loopMIDI] to bridge the emulator and your sequencer, you'll be able to easily work on your entry like the other MIDI formats.


'[#[Tools]
- '[l[https://github.com/nukeykt/Nuked-SC55[Nuked-SC55] if not using real SC-55/SC-55mkII hardware
- '[l[https://www.tobias-erichsen.de/software/loopmidi.html[loopMIDI]
- Any software that can sequence MIDI notes (and preferably pipe the results to a MIDI output for testing - Nuked-SC55 in this case). This includes most DAWs such as '[l[https://reaper.fm/[REAPER] (which is not free but can be evaluated indefinitely), Logic, FL Studio, and Cubase. Many standalone applications have also been created over the years to work with MIDI, such as Cakewalk and (more recently) '[l[https://openmidiproject.osdn.jp/index_en.html[Sekaiju] and '[l[https://github.com/Hans5958/Domino-English-Translation/releases[Domino]. Although piano roll interfaces reign supreme in the realm of MIDI, '[l[https://openmpt.org/[OpenMPT] can be used for this format, and a unique tracker by BotB's own '[l[https://battleofthebits.com/barracks/Profile/Jangler/[Jangler] called '[l[https://github.com/jangler/faunatone[Faunatone] (offering optional microtonal support) can be utilized. Notation software like Finale, Sibelius or '[l[https://musescore.org/en[MuseScore] (which is free) can also be utilized.


'[#[Getting started with the format]
STEP 1: If you don't own your own Roland SC-55, you will need the '[l[https://github.com/nukeykt/Nuked-SC55[Nuked-SC55 emulator], as well as a set of SC-55 ROMs which you can find from your search engine of choice. '[b]The format is restricted to SC-55 or SC-55mkII.'[/b] Nuked's README.md indicates what to name the ROM files when you put them into the same folder as Nuked.

STEP 2: Once you've got your ROMs set up, you'll need a MIDI loopback tool such as '[l[https://www.tobias-erichsen.de/software/loopmidi.html[loopMIDI] in order to get the emulator to receive MIDI data from whatever source you're using (like your DAW/sequencer).

STEP 3: Time to get set up with your MIDI creation software. If you're using a DAW you'll need to set up 16 MIDI channels. (You can grab FL Studio and REAPER templates from the '[[midi (format)[MIDI format article] that have done this work for you; you'll just need to output to Nuked-SC55 instead of MSGS or Fruity LSD.) Assign the loopback tool a MIDI input port in your MIDI creation software; Nuked defaults to port 0, so try that first. Once you've set a port and made sure your MIDI channels are outputting to that port, check and see if the emulator responds to your inputs. If you need to use a port other than 0 for Nuked-SC55, open the command line and use '[t[mono]nuked-sc55 -p:X'[/t] where X is your chosen MIDI input port. This starts a fresh instance of the emulator using the port you specified.

Once you've gotten Nuked to make sound, you're good to go - sequence a beautiful new MIDI, export/save that .mid file and send it in!

If you find yourself in dire straits, you can write for MSGS and not worry too much about it; the comparison will be closer than it is to '[[xg (format)[XG]. However someone else will have to render your entry. Also be careful of overloading the maximum polyphony or data intake of the SC-55. The SC-55 has a polyphony limit of 24 and the SC-55 mkII has a polyphony limit of 28.


'[#[Nuked-SC55 emulator controls]
Although you're mostly going to be sending messages to it externally (through your DAW/sequencer of choice), the emulated system can be interacted with broadly using the following keys:

Q -> POWER
W -> INST ALL
E -> INST MUTE
R -> PART L
T -> PART R
Y -> INST L
U -> INST R
I -> KEY SHIFT L
O -> KEY SHIFT R
P -> LEVEL L
LEFTBRACKET  -> LEVEL R
A -> MIDI CH L
S -> MIDI CH R
D -> PAN L
F -> PAN R
G -> REVERB L
H -> REVERB R
J -> CHORUS L
K -> CHORUS R
LEFT -> PART L
RIGHT -> PART R


'[#[Working with MIDI]
There is already a healthy amount of documentation on the '[[midi (format)[MSGS MIDI] article, so if you're new to MIDI and want maximum detail, check that one out.

MIDI can control common parameters like note velocity (which is individual note volume), channel pitch (for things like pitch bends and detunes), channel volume, channel panning, the chosen patch/instrument for the channel ("Program Change"), and more! Most of these are controlled through "MIDI CCs" (short for continuous controller) - a way to adjust specific parameters an even automate them within your MIDI. Here is a list of CCs that the SC-55 responds to:

CC1 - Modulation (channel vibrato)
CC5 - Portamento Time (use with CC65)
CC6 - Data Entry MSB [most significant byte]
CC7 - Channel Volume
CC10 - Channel Panning
CC11 - Channel Expression (a percentage of Volume)
CC38 - Data Entry LSB [least significant byte, for fine-tuning values if applicable]
CC64 - Hold1
CC65 - Portamento
CC66 - Sostenuto
CC67 - Soft
CC84 - Portamento Control [SC-55 mkII only?]
CC91 - Effect1 Depth (reverb send level)
CC93 - Effect3 Depth (chorus send level)
CC98 - NRPN LSB
CC99 - NRPN MSB
CC100 - RPN LSB
CC101 - NRPN MSB

'[t[b2]NRPNs and RPNs'[/t]
These CCs work together to control something more specific; they're like an expanded CC combo. The pair of 98/99 both get set to select a specific parameter, then the Data Entry MSB (CC6) and occasionally the Data Entry LSB (CC38) are used to actually set the value of the parameter you chose.

'[b]Vibrato Rate'[/b]
CC98 = 8
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]Vibrato Depth'[/b]
CC98 = 9
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]Vibrato Delay'[/b]
CC98 = 10
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]TVF Cutoff Frequency'[/b]
CC98 = 32
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]TVF Resonance'[/b]
CC98 = 33
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]TVF&TVA Envelope Attack Time'[/b]
CC98 = 99
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]TVF&TVA Envelope Decay Time'[/b]
CC98 = 100
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]TVF&TVA Envelope Release Time'[/b]
CC98 = 101
CC99 = 1
Then CC6 controls. 64 is middle, +/- 50 in either direction

'[b]Coarse Pitch of Drum Instrument'[/b]
CC98 = X, where X is the key number of the relevant drum instrument
CC99 = 24
Then CC6 controls. 64 is middle, +/- 64 in either direction

'[b]TVA Level of Drum Instrument'[/b]
CC98 = X, where X is the key number of the relevant drum instrument
CC99 = 26
Then CC6 controls, 0-127

'[b]Panning of Drum Instrument'[/b]
CC98 = X, where X is the key number of the relevant drum instrument
CC99 = 28
Then CC6 controls. 0 is random, 64 is middle, +/- 63 in either direction

'[b]Reverb Send Level of Drum Instrument'[/b]
CC98 = X, where X is the key number of the relevant drum instrument
CC99 = 29
Then CC6 controls, 0-127

'[b]Chorus Send Level of Drum Instrument'[/b] [SC-55 mkII only?]
CC98 = X, where X is the key number of the relevant drum instrument
CC99 = 30
Then CC6 controls, 0-127

'[b]Pitch Bend Sensitivity'[/b]
CC100 = 0
CC101 = 0
Then CC6 controls, 0-24 indicates number of semitones possible to bend (default is 2 semitones, the max of 24 means two octaves).

'[b]Master Fine Tuning'[/b]
CC100 = 1
CC101 = 0
Then both CC6 and CC38 control, with CC6 being the coarser/wider setting and CC38 being finer. The default is both values set to 64, +/- 64 in either direction

'[b]Master Coarse Tuning'[/b]
CC100 = 2
CC101 = 0
Then CC6 controls, 64 is default, +/- 24 in either direction (represents semitones, so two octaves in either direction)

You can set both the RPN and NPRN CC values to 127 to disable them for the channel. This may be useful to not accidentally set other values later on.

'[t[b2]SysEx Messages'[/t]
Much like the '[[midi (format)[MIDI] and especially '[[xg (format)[XG] formats, SysEx messages can be used to send more specialized commands to the SC-55. These are specific sequences of two-digit hex values that change certain parameters; though complicated, they are the only way to control certain things like adjusting the tone of the reverb/chorus or microtuning individual notes to adjust the scale. Check out pages 97-101 of '[l[https://www.manualslib.com/manual/693391/Roland-Sound-Canvas-Sc-55mkii.html?page=97#manual[the manual] if you're curious.


'[#[Restrictions on submit]
Submission should be a .mid file playable on the Roland SC-55 (or SC-55mkII) or through Nuked-SC55 emulator using either of those two ROM sets.


'[#[Playback (for voting)]
If you don't have an SC-55 to check out the entries on, you'll again be using '[l[https://github.com/nukeykt/Nuked-SC55[Nuked-SC55 emulator] to listen.

Much like the '[[xg (format)[XG format], a useful MIDI player is '[l[https://falcosoft.hu/softwares.html#midiplayer[Falcosoft MIDI Player]. Click the "Settings" icon near the top left and set the "Midi Out" Output Port setting to loopMIDI (or whatever loopback device you're using). You should see Nuked-SC55 respond once you start playing the MIDI back.

You could also use a MIDI sequencer such as '[l[https://openmidiproject.osdn.jp/index_en.html[Sekaiju] or '[l[https://github.com/Hans5958/Domino-English-Translation/releases[Domino] being routed to the Nuked-SC55 emulator.


'[#[See also]
- '[[midi (format)]
- '[[mt32 (format)]
- '[[xg (format)]
- '[[C700 VST] (if you are unsure how to set up a VST for MIDI, the C700 guide may help you)
- '[[Specification of General MIDI and Roland MT-32 patches]
- '[l[https://www.tobias-erichsen.de/software/loopmidi.html[loopMIDI] MIDI routing software
- '[l[http://www.midiox.com/myoke.htm[MIDIYoke] - MIDI routing solution compatible with Windows XP

 
C A T E G O R I E S
 
 
Battle Formats