You are here

Sonar: Using Instrument Definition Files

Sonar Tips & Techniques By Craig Anderton
Published September 2012

Instrument definitions make life easier when using hardware instruments or effects with Sonar.

Despite the ascendancy of software synthesizers, most of us still use some MIDI-controlled hardware synths or signal processors. To simplify working with them in Sonar, you can use Instrument Definition files (with an INS suffix) that specify the synth's (or effect's) presets and controllers. Upon loading the INS, that instrument definition becomes a part of Sonar. And, when you want to call up a preset, instead of having to figure out which particular preset to assign, you can simply choose its name from a MIDI track's patch pop-up menu (you may also need to specify a bank). Similarly, when assigning automation from the Edit Filter, you can choose the desired controller by name and not have to concern yourself with its number.

Got Any ID?

However, first you need an INS file. We'll cover the four ways to obtain one, going from easiest to hardest:

  • Load one of the definitions that's included with Sonar. This is a fairly limited collection of older synths; you can download the collection of files shipped with the latest version of Sonar (which will be compatible with older versions) at www.cakewalk.com/support/dl.aspx?DLID=1848.
  • Locate a user-generated definition, so you don't have to write one yourself. Cakewalk have collected several of them, which you can download from www.cakewalk.com/support/dl.aspx?DLID=1849. It's also worth searching the 'net, as there are quite a few user-generated instrument definitions in various corners of the web.
  • Modify an existing file that's 'close enough' that you don't have to start from scratch.
  • Write your own file.

Writing an Instrument Definition file isn't particularly difficult; it's sort of like writing an SFZ file or some other text-based code. While some of the process may seem intimidating as you read over this column, when you actually have the Instrument Definition text in front of you, and similar versions, so that you can copy the basic format, it's not that difficult.

After making an instrument definition available, you need to assign your MIDI outputs and channels to the desired instrument.After making an instrument definition available, you need to assign your MIDI outputs and channels to the desired instrument.

Lock & Load

The default INS file location is [your user name]/AppData/ Roaming/ Cakewalk/SONAR X1. You'll see the '.ins' files mixed in with various other files. Any INS files that you import (as described later) become part of a master.ins file, which is also in the same folder. This is the file in which Sonar actually looks for its data.

For example, suppose you have an Ensoniq TS10 synthesizer (which you were smart enough to keep around because it has polyphonic aftertouch). This is supported by Sonar, which simplifies the procedure we're about to describe. (The same procedure is also used to load a user-generated instrument definition file, except that in order to load it, you'd need to navigate to wherever you saved the downloaded file.)

  • Go Edit/Preferences and, under MIDI, click on Instruments.
  • Click on Define. If you don't see the instrument you want, click on Import.
  • Navigate to the folder with the INS files, as described above. In this example, you'd click on Ensoniq.ins, then click Open. (If you still don't see an appropriate instrument, you'll need to give up and go to a more complex option.)
  • With many Sonar instrument definitions, you'll see multiple instruments. For example, in the case of Ensoniq, there are not only several synths but also definitions for the DP/2 and DP/4. You would simply click on Ensoniq TS10, then click OK.
  • The TS10 will appear along with the other available instruments. in the Define Instruments and Names window. Now click on Close.
  • You're now back to the Instruments window, with your MIDI interface's outputs and channels on the left, and "uses instrument...” on the right. You can assign any or all channels to a particular instrument, but any channels you assign to one instrument will not be available for assigning to other instruments unless you de-assign the existing assignments first. You can click-drag down all the available channels on the left, then click on an instrument in the right, to assign all those channels to that instrument.
  • Click on Apply, then click on Close. Now go to a MIDI track in Sonar's track view.

The upper 'standard' listing was already provided; copying and modifying it to match the TS10 MIDI implementation for controllers creates a listing that the Instrument Definitions at the bottom can reference.The upper 'standard' listing was already provided; copying and modifying it to match the TS10 MIDI implementation for controllers creates a listing that the Instrument Definitions at the bottom can reference.

From the MIDI track's Channel pop-up menu, choose a channel for the instrument. Select the desired bank from the Bank pop-up menu, then choose the desired Patch from the patch pop-up menu. The synth will switch to the patch you selected, and you're ready to go.

However, note, in this case, that if you select automation from the track's Edit Filter, there are no TS10-specific controllers listed. This is fairly common; often, an instrument definition will include only patches, but not controllers. So let's segue into how to modify an instrument definition.

Adding Controllers

You first need to find a MIDI implementation chart so you can enter the appropriate controllers. If you don't have a manual handy, you'll need to play 'Ask the Internet'.

The Ensoniq.ins file is a standard text file, so you can open it up with Notepad in order to modify it (I made Notepad the default program for opening INS files; that way it's not necessary to change the suffix to open or save the file).

A typical instrument definition file has six main sections, each of which is preceded by a full stop: .Patch Names, .Note Names (this if for drum sounds), .Controller Names, .RPN names, .NRPN Names, and .Instrument Definitions. You enter specific data (for example, Patch Names) in the appropriate section, then refer to that section in the .Instrument Definitions section itself. We'll show an example of this shortly. Comment lines are preceded by a semi-colon.

Look in the .Controller Names section to see if there's any controller listing that matches the actual MIDI implementation. The closest in the Ensoniq.ins file is [Standard], so we'll copy it and modify it to match the TS10 MIDI implementation chart. Name this listing [TS10 Controllers].

Selecting MIDI automation using the Edit Filter will show the controllers and controller numbers you just entered — which definitely simplifies controller assignments.Selecting MIDI automation using the Edit Filter will show the controllers and controller numbers you just entered — which definitely simplifies controller assignments.

Now, under the .Instrument Definitions section, there's already an entry for the TS10 (if there hadn't been, the patches would never have shown up). But the existing Control statement is simply Control=0.127, so it only specifies that a range of MIDI controllers are available, not what they are. We can change this to Control=TS10 Controllers so that it refers back to the entries made under .Controller Names. (Remember, this is code, so inconsistencies or typos will mess things up!)

Save the file. Now re-import it into Sonar (following steps 1-7 above) to integrate your changes into the master.ins file. Assuming you've selected the right instrument as a target, the next time you go to the edit filter and select Automation/MIDI, you'll see the names you just entered associated with various controllers.

Time To Define

We've covered the basics, which is what most people will need. There are two main aspects of creating your own file from scratch: entering all the patch names for a synth, and, for those synths having more than 128 patches, the method of bank selection. If typing a zillion patch names makes your head explode, you may be able to download a patch list as a DOC or PDF file where you can select the text, then paste it into the INS file. You'll probably need to clean it up, but it's better than typing in all those names.

By expanding folders, you can see the names of Banks included for individual instruments in the left pane of the Define Instruments and Names window, as well as all Bank names for all instruments in the right pane.By expanding folders, you can see the names of Banks included for individual instruments in the left pane of the Define Instruments and Names window, as well as all Bank names for all instruments in the right pane.

The bank selection process can be complicated, as there are four basic methods. The most common is to use a Controller 0 or Controller 32 message, or a combination of messages from the two controllers. However, older synthesizers may simply use a patch number. Bank selection is an essential part of the .Instrument Definition section; you can see the specified patch names for banks in the Define Instruments and Names window by expanding the folders called Patch Names for Banks in the left pane, or Patch Names in the right pane, which lists all patch names for all instruments in the master.ins file.

Describing how to create an Instrument Definition from scratch would take much more space than remains but, fortunately, there are some useful tutorials on how to do this. One is Sonar's own help menu; while you're on the Define Instruments and Names window, click on Help. There's also Cakewalk's Instrument Definitions support document. Another helpful tutorial is 'How to Write a Sonar Instrument Definition' at . The more you search the web, the more you'll find. Just don't forget to check whether a file already exists; there's a good chance someone has already done the hard work for you.    

Buy Related Tutorial Videos