THE KORG MS20ic AS GENERAL PURPOSE MIDI CONTROLLER Art Hunkins abhunkin@uncg.edu www.arthunkins.com 11/20/2018 The Korg MS20ic is not intended to serve as a general purpose MIDI controller, to say the least. As a piece of hardware, it recreates the venerable Korg MS20 synthesizer, but instead of producing audio, it sends MIDI messages via USB to proprietary Korg software that in turn produces sound. I was quite familiar with the original MS20, and was eager to compose a live performance work for its "reincarnation", the MS20ic. Seeing multiple relatively inexpensive MS20ic's available on-line (eBay), I thought this a good opportunity to combine my current interest in digital technology with my older involvement with analog: traditional hardware "synth" with newer, sound-producing (and emulating) software. Indeed, I hoped to create a work performable by the entire MS20 line: the original MS20, the MS20 mini, as well as the MS20ic. So I bought a used MS20ic on eBay, at the time not realizing that the proprietary and sound-producing software, Korg's Legacy Collection (now simply the Korg Collection) was not included with my purchase. (The software is currently available from Korg for 49$US.) Soon I found myself thoroughly confused and frustrated by how I experienced interfacing with Korg's MS20 hardware/software product line. I was mired in a chaos of bundles, coupons, multiple registrations, product codes, upgrade options, website changes and multiple product editions. With only a used MS20ic, my path forward was not at all clear. Eventually, it occurred to me that, for the present, it might be productive to explore what could be done with the MS20ic *without* proprietary software, i.e., as a general purpose MIDI controller. I was surprised to find that it could function fairly well in a number of contexts - both as a basic keyboard controller and as a more general set of rotary controllers. It turns out that the MS20ic outputs standard MIDI notes and controller data - and all without a special MIDI driver. (The special Korg USB MIDI driver is not required for anything discussed here.) These native outputs are detailed in the sheet, KORG MS20ic MIDI Output.pdf, that accompanies this article. (The sheet also indicates the alternate MIDIOx mappings described below, and shows how similar changes of the user's choice can readily be made. It further demonstrates how other MIDI devices may be adapted to settings for which they were not originally intended.) Firstly, the unit serves as a basic 3-octave keyboard controller without any special mappings. The keys are velocity sensitive, and the modulation wheel functions as expected. The Volume control serves as a Master Volume as well. (The Portamento control also regulates Portamento Time - which is not useful here, but will be valuable in the Keyboard Enhanced routine discussed below.) Incidentally, the Volume (switch) does not have to be "on" for the MS20ic to output messages. From here on, various mappings are necessary. For Windows, the OS I use, this involves the MIDIOx and MIDIYoke utilities. (I understand that the same kind of results can be had on the Mac, with MIDIPipe plus the IAC driver This built-in driver acts as a virtual MIDI cable between applications, much like MIDIYoke.) Both MIDIOx and MIDIYoke can be downloaded from http://www.midiox.com; the MIDIOx install is midioxse.exe. MIDIYoke comes as 32-bit only, so it must be installed (Midi Yoke Setup.msi - the Updated MIDI Yoke NT driver) in Compatability mode on 64-bit systems. For 64-bit machines: prior to installation, right-click on the .msi, then select Properties | Compatability, and check the "Run this program in compatability mode" box. MIDIYoke normally installs a fixed number of 8 input and output ports - to which MIDIOx and your real-time audio software (for me, Csound), can connect. To set up MIDIOx and MIDIYoke for alternate MS20ic mappings: Once you've installed MIDIOx and MIDIYoke, plug in your MS20ic and open MIDIOx. Click Options | MIDI Devices, and select MS-20 Controller (or USB Audio Device) as MIDI Input, and Out To MIDI Yoke 1 as MIDI Output (OK). Click Options again, and Data Mapping. Select Load to add your desired .txm MIDI map from wherever you have stored it. Finally, check the "Turn Map On (after OK)" box and click OK. (Note that you can modify and save your MIDI map here as well as externally via text editor, if you wish.) At this point you can check your modified MIDI messages in MIDIOx's Monitor Output window. To try the remapped controls in your audio output program (for me, Csound), just select the MIDI Yoke 1 port in your application. (In Csound, all 8 of MIDIYoke's ports will be listed in your input port options. You could have chosen any of the 8, as long as it's the same one in both MIDIOx and your application.) Now for the four primary remappings: KORG MS20ic KBD Enhanced.txm, KORG MS20ic16 Controllers.txm, KORG MS20ic 29 Controllers.txm, and KORG MS20ic 13 Controllers.txm. (Note that the MS20ic outputs all messages on channel 1, as do all our remappings. If necessary, the output channel may be changed in these mappings by substituting a different channel number for the second "1" in the line. Of course this must be done for all lines of affected code, i.e., each individual controller). The "KBD Enhanced" mapping permits more flexible keyboard controller operation (the mapping supplements the native ability described above). Most importantly it permits keyboard transposition - by up to 4 octaves down and 3 octaves plus a fifth up. The default is set to one octave down. The pushbutton becomes a portamento off/on switch (controller 65) to be used with the Portamento (time) control. Finally, the Fine Tune control transforms into a Damper pedal switch (Continuous Controller 64), with 0 being "off" and any other value "on" (127). As with the mappings that follow, instructions for making alternative changes of your choice are given in the remapping files themselves; such changes can be easily made in any text editor (e.g., Notepad). The "16 Controllers" and "29 Controllers" (as well as "13 Controllers") are set up on the MS20ic as a controller bank. *All three mappings disable the KORG's keyboard*, as otherwise inadvertently pressing a key affects the hardware's output (for reasons unknown). The "16 controllers" version includes the knobs enclosed by the two vertical dark lines (the left-most, jagged) on the left side of the panel. The reassignment of controller numbers is from bottom to top, left to right. Numbering is successive, starting with the (default) value of 20. Thus the first two rows contain 6 controllers each (CC 20-25, 26-31), and the remaining rows 2, 1 and 1 each (through CC 35). The "29 Controllers" simply extends the 16-controller version, using other available knobs on the panel. The next set of 5 controllers (remapped starting at default CC 36) are the remaining knobs at the end of row 1 (the External Signal Processor section), followed by the five at the extreme left of row 3, and concluding with the third through fifth knobs of the top row. (The first two controls of this row are not useful for our purposes, not being continuous. They could be valuable to select among up to four specific values for a given purpose however; see the MIDI Output .pdf.) The "13 Controllers" version is a simpler alternative to "16 Controllers" when 13 or fewer (especially between 7 and 13) are needed. Here only the entire bottom row of 13 knobs, beginning at the extreme left, is involved (remapped to CC 20 - 32 by default). This is perhaps the most "intuitive" arrangement of all - granting that none of these controller remappings are particularly intuitive! Finally, there are two supplementary, combination mappings: KORG MS20ic KBD Enh + 16 Ctrl.txm and KORG MS20ic KBD Enh + 29 Ctrl.txm. As is probably self-evident, they simply marry enhanced keyboard features to a 16 or 29 controller set. They are recommended only for when you need the keyboard; otherwise use the 16 or 29 controller versions. One important performance hint: Be sure to set *all* knobs to zero before doing anything else. (This includes the four-way switch knobs in the VCO1 and VCO2 boxes; set all 4 to their left-most [0] positions.) Then move any knobs necessary to some other initial setting. Reason: Whenever the KORG's (Master) Volume control is switched from Power Off to On, it sends out the current values of *all* knobs, which if not zero can be disastrous. (Similar behavior can be found in some software controllers.) Any accidental movement of unused knobs could also be problematic, as some of their CC numbers might well duplicate those in your controller bank. In any case, you are cordially invited to create your own, hopefully more intuitive, MS20ic mappings, tailored to your own specialized requirements - should you feel so inclined. (Or, frankly, you might indeed opt for a more appropriate MIDI controller!)