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!
; comment TG77 INS File by
TweakHeadz Lab ;when a semi-colon starts the
line, the whole line is not ;read by Sonar
.Patch Names ;Note the
period before "Patch Names" This tells Sonar
the ;patchnames are coming
[Yamaha TG-77
Internal] ;Note the brackets.
The txt inside must exactly match that listed ;in the bank
definitions at the end. 0=
DX7 Piano1 ;note the number
format "0=, 1=, 2=, etc. You can add these on to a ;list of names
in Microsoft Word under "bullets and numbering" 1= WoodBassRT 2= TX Bass RT 3= Standup
RT 4= Late Bass 5= E.PIANO 1 6= DX7 Piano2 7= DX7
Piano3 8= Spacoid rt 9= Spacoi2 rt 10= Tinkler RT 11=
New Bass 12= AutoSeq 13= SP|Mystery 14= Dynabow 15=
CicadaMist 16= St.MiksSwp 17= Afrik-Perc 18= Wood
Bass 19= Rimba 20= LupeeLou 21= M1 Symph 22=
Metamonics 23= Horguestre 24= Mute Trmpt 25=
Spacestrgs 26= AttackBass 27= Vibra-Bell 28=
Dreamtopia 29= Acid*3oh3 30= MatrixBrss 31=
St.Michel2 32= `phasepad` ;
---list truncated to save space
[Yamaha TG-77 Bank 2] 0=
SC:Neworld 1= SC.Stratos 2= SC.Ripples 3= SC.Digitak 4=
SC.Hone 5= SC:Spaces 6= SC|Sybaby 7= SC|Icedrop 8=
SC|Wired 9= SL.Gnome 10= SL.SawMono 11= SL:SqrMono 12=
SL.Pro77 ; ---list truncated to
save space
[Yamaha TG-77 Bank 1] 0=
SP|Cosmo 1= SP:Metroid 2= SP:Diamond 3= SP.Sqrpad 4=
SP|Arianne 5= SP:Sawpad 6= SP:Darkpad 7= SP|Mystery 8=
SP.Padfaze 9= SP:Twilite 10= SP|Annapad 11= AP.Ivory 12=
AP|CP77 13= AP|Bright ;
---list truncated to save space
.Instrument
Definitions
[Yamaha TG-77] ;The name of the
instrument, note brackets BankSelMethod=3 ;Bank Select method (0, 1, 2, or 3) Patch[18]=Yamaha TG-77 Bank 2 ;The
all-important line. "Patch" means "bank", the number in
[brackets] is ;critical and depends on the bank selection method
and numbers used by the ;synth internally--see
below Patch[21]=Yamaha
TG-77 Bank 1 ;Note the text after the
equal sign MUST match the patch name bank ;header defined in the
[brackets] earlier in the file. Its case
sensitive. Patch[22]=Yamaha TG-77
Internal
|
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
0. Normal
1. Controller 0 only (MSB)
2. Controller 32 only (LSB)
3. Patch 100-127
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.
.Instrument
Definitions
[E-MU Proteus 2000] Control=E-MU
Proteus 2000 Patch[3]=E-MU Proteus 2000 USER 3 Patch[2]=E-MU
Proteus 2000 USER 2 Patch[1]=E-MU Proteus 2000 USER
1 Patch[0]=E-MU Proteus 2000 USER 0 Patch[1155]=E-MU Proteus
2000 WE 3 Patch[1154]=E-MU Proteus 2000 WE 2 Patch[1153]=E-MU
Proteus 2000 WE 1 Patch[1152]=E-MU Proteus 2000 WE
0 Patch[519]=E-MU Proteus 2000 CMPSR 7 Patch[518]=E-MU Proteus
2000 CMPSR 6 Patch[517]=E-MU Proteus 2000 CMPSR
5 Patch[516]=E-MU Proteus 2000 CMPSR 4 Patch[515]=E-MU Proteus
2000 CMPSR 3 Patch[514]=E-MU Proteus 2000 CMPSR
2 Patch[513]=E-MU Proteus 2000 CMPSR 1 Patch[512]=E-MU Proteus
2000 CMPSR 0 |
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 http://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.
Good Luck!
I remain, Rich the Tweakmeister
ps. download my proteus 2000 .ins file for further
study.
|