Guitar | Bass | Keyboard | Microphones | Mixers | Audio Interfaces | Monitors | Sequencers | Soft Synths | Live Sound | Drums | Club | Accessories | Blowouts
How to Write a Sonar Instrument Definition .ins file
By Rich the Tweak
You can make an instrument definition inside Sonar if you don't mind typing in all the names for the patches on your synths. This was not much of a problem when synths only had 127 patches, but now many synths have well over 1000 patches and some like the Triton have over 3000! That's a lot of typing.
There is an easier way. You can build the .ins file script in windows notepad with a few edits in Microsoft Word. If you have access to a list of patchnames, and the bank select controllers your synth uses, (normally found in the synth's manual) it is simply a matter of cut and paste. I'm going to show you how with a simple example.
I'm going to give you tips for writing your own .ins files but under one condition: Please do NOT ask me for assistance writing your files. Instead open up an .ins file and study it. Don't come whining to me that you don't understand it. Some old synths that used arcane methods of bank select may take hours of troubleshooting before the secret unlocks. I'm going to show you some hard ones. Of course, I'll give you some tips on what to do when confronted with the most hard-to-script synth.
A Not-so-Simple Example
The example below is a working .ins file for my TG-77 synth module that has 3 banks. I could have gone into this deeper and defined controllers and drum maps and more, but I decided to keep it simple as most of us just want the bloody patchnames in!
The tricky part is the ".Instrument Definitions" section and figuring out that all important Bank Select Method and "Patch" number in brackets. The Patch number varies greatly from synth to synth. For More on this read the Sonar Manual. How did I get those numbers 18, 21, 22? The TG-77 uses a very old bank select method. It sends a preset value over patch 100 to switch the bank. Ensoniq VFX's also used this method. So to call up bank 2, patch 2, sonar sends it preset #118, then #2. As Cakewalk writes: "Take the patch number and subtract 100 to derive the bank number." That's kinda confusing. What they mean is Take the number of the preset that changes the bank number and subtract 100 to get the bank number Sonar will understand. How do you find that preset? Dude, you go in your sequencer, and try every preset over 100 if you think you have a synth using this kind of bank select. C'mon, it's not that hard.
There are 4 bank select methods defined in Sonar
The TG-77 above uses #4. Now lets go to a "Normal" but difficult Bank select scheme, the proteus 2000, which can hold up to 24 banks or 3,072 patches! Trust me, you don't want to type this one out in Sonar. You might never finish, go mad, be late for work the next day, get fired in the process. Funny, huh? What isn't so funny is that if you DO try it in Sonar and lets say you are at name #120 in a bank, then try it out and realize you missed name #2, you have to erase names 3-120 and start where you made the mistake. Oh the livid pain! This is why we do it in Notepad.
A More Complex Example
Take a look at the Proteus 2000 codes with a Word Expedition board added. This uses the "normal" method of bank select.
You see that Banks 512-519 reference the internal ROM banks 0-8; Banks 1152-1155 reference banks 0-3 on the World Expedition Rom. How did they arrive at those numbers? Here's the trick. You have to know the MSB and the LSB of the bank as defined by Emu. This is found in Emu's manual, but the simple way to find out is to press the "audition" button on any Proteus module and it will tell you want these numbers are. For example, pressing audition of a Word Expedition presets will show MSB:009 LSB2 if the patch is in bank 2. So how do they get the number out of that? It's simple math.
MSB multiplied by 128, plus LSB equals the bank number (MSBx128+LSB=N)
In the case of the Word Expedition Rom, that's 9x128 =1152 +2=1154 Boy aren't we having fun now!
For more on computing the specific bank number that goes in the brackets after "Patch" see
Page 526 of the Sonar 3 manual. You must know the MSB and LSB of the bank as defined by the manufacturer in most cases. If the synth uses a
Controller 0 Only method then the banks will follow in logical order from 0. (O,1,2,3, etc).
Tip: You don't have to write these from scratch. You can export .ins files out of Sonar to get started. I recommend creating the instrument definition in Sonar, defining bank select, controllers, GM if necessary, then exporting it to add patchnames for the banks. Or you can download one from a website if it exists for your synth and edit in your custom patch names.
Tip: If you can't find the manual, then you may be in luck if your synth sends program and bank select commands over MIDI. Most keyboards do, but many modules do not. Put Sonar in record mode and change the banks and patches from the front panel.
Tip: The biggest problem synths are, other than old synths, are those that use ROM cards and Rom boards. These usually have a MSB and LSB defined by the manufacturer that may or may not be the manual. In these cases you may have to do a sysex dump and analyze the data with a HEX to Decimal converter.
Tip: SoundDiver does NOT make .ins files, but it is useful for copying blocks of patchnames. Highlight a full bank of sounds, select COPY (CNTL C), open the windows note pad and press CNTL-V (Paste).
Other editors claim to make .INS files and you may want to check them out. These include Triton Edit Pro, Midiquest www.squest.com and possibly others.
One last tip: You can associate the extension .ins with the Windows notepad so it open it up as a .txt file. This will not corrupt the file. .ins is normally associated with windows internet settings, so that must be changed if you want to double click an .ins file into notepad.
I remain, Rich the Tweakmeister
ps. download my proteus 2000 .ins file for further study.