INSmaker Tutorial

1.What is INS Maker?

I decided to write INS Maker because I was dissatisfied with the coverage of Cakewalk and Sonar instrument definition files for several of my MIDI instruments.

INS Maker queries MIDI instruments and creates custom Cakewalk/Sonar .ins (instrument definition) files. INS Maker currently is designed to support the following instruments:

  • Access Virus, Virus Rack, and Indigo
  • Ensoniq MR-Rack, MR-61, MR-76 and ZR-76
  • Korg TRITON, pro, proX, Rack, Studio and KARMA
  • Kurzweil K2000, K2500 and K2600
  • Novation Nova, Nova Laptop, Nova II, Supernova, Supernova II
  • Roland JP-8000 and JP-8080

As each manufacturer and instrument uses different sysex (system exclusive) message formats, I do not support any other instruments. However, I have released the INS Maker source code under GPL, so other programmers may be able to adapt the source code.

INS Maker does not generate instrument definitions for softsynths (software synthesizers).

INS Maker creates the following sections of an instrument definition file:

  • Patch Names
  • Note Names (drum maps)
  • Instrument Definitions

INS Maker identifies each patch as a Program (Sound), Drum, or Performance (Combi) patch. If the patch is identified as a drum patch, INS Maker creates a drum key map so that Cakewalk/Sonar will display the correct patch names for each drum key in the piano roll view.

The resulting instrument definition file is a text file that can be viewed and/or edited with any text editor such as Notepad. The file can be imported into Cakewalk, Sonar or any other program that uses a Cakewalk-style .ins file.

INS Maker works with Windows 95 and later versions of Windows. I have tested INS Maker on Win 95, Win ME and Win 2000; users have also reported success with Win 98 and Win XP. If you encounter any problems, please check that you are using the latest version of the program.

2. Installing INS Maker

INS Maker is compiled as a standalone executable using static libraries. As a result, installing INS Maker will not overwrite any operating system or third party DLL’s (dynamic libraries). INS Maker is distributed in a compressed .zip file. No “setup” program is required to install INS Maker – simply use a utility such as Winzip to unzip it into a suitable directory on your PC.

3. Removing INS Maker

To remove INS Maker, simply delete the INS Maker directory after saving any .ins or other files that you wish to keep.

4. Using INS Maker

Navigate to the directory where you installed INS Maker and click (or double-click, depending on your desktop settings) the INS Maker icon to start INS Maker.

The INS Maker dialog window should appear:

Here is an explanation of the form:

4.1 File Parameters

Instrument Name – the instrument name that you want Cakewalk/Sonar to display. It is advisable to choose a name that is short but that will be unique in your instrument definitions. If the instrument name is not unique, it may conflict with another existing instrument name when imported into Cakewalk/Sonar.

File Name – the path name of the instrument definition file that INS Maker creates. The Browse button invokes a Windows file dialog. If no file extension is explicity specified, INS Maker will append a file extension of “.ins” to the file name when it creates the file.

4.2 MIDI Parameters

Make/Model – select the make and model of your instrument from the drop-down list. Based on the make and model you select, INS Maker will display a context-sensitive list of banks and other options.

MIDI In/MIDI Out – the MIDI ports that connect to your MIDI instrument. INS Maker will send requests using the MIDI Out port and receive replies using the MIDI In port.

Channel – the sysex device number or channel for the MIDI instrument.

Delay – the time delay in milliseconds that INS Maker will insert between sysex requests.

Timeout – the elapsed time in milliseconds after a request is sent until the INS Maker stops waiting for a reply.

Retries – the number of times INS Maker will resend a sysex request before giving up.

Categories – if the current make/model exposes sound categories, the Category checkbox will be enabled. Check this box if you want INS Maker to include sound categories in patch names. Including categories makes the patch names longer but you will be able to search by category in Cakewalk/Sonar.

Patch Numbers – Check this box if you want INS Maker to include patch numbers in patch names. Including patch numbers makes the patch names longer but patch numbers make it easier to reference parameters on your instrument.

Note Names – if the current make/model exposes sample names or key maps for drum kits, the Note Names checkbox will be enabled. Check this box if you want INS Maker to generate note names for the Cakewalk/Sonar piano roll view. For some instruments, including note names can increase the amount of time that it takes to generate the instrument definition, because INS Maker must retrieve extra information from your instrument; however note names make it easier to work with drum kits in the piano roll view as keys will be labeled to describe the sounds they will make.

Check Banks to Include – INS Maker will display a list of possible banks for the selected make/model. The default is to process all banks. Check banks that you want to include; uncheck banks that you want to skip. Previous versions always processed all banks. The checklist gives you a convenient way to process a single bank or a few banks.

4.3 Other Controls

Log File – INS Maker logs its progress here for you to view.

OK – Click here to being processing.

Cancel – Click here to cancel or abort processing.

Close – Click here to close the window and exit INS Maker.

4.4 Operation

Default values are supplied that should work on most systems. You need only select the MIDI in and out ports and enter an instrument name and a file name. The OK button will not be enabled until all required information has been entered. Click the OK button to begin processing and this is what you should see:

INS Maker shows the progress by displaying and writing progress to the log file, and by showing how much work has been done in the progress bar. Processing may take some time (10 or more minutes, depending on the number of patch banks). Processing can be canceled at any time. When processing has completed, you may exit the application and import the resulting instrument definition file into Cakewalk/Sonar. You may re-run INS Maker any time you change expansion cards or reprogram patches. While INS Maker is running, do not initiate any unrelated MIDI events or sysex messages on the target MIDI instrument – INS Maker is not smart enough to differentiate between replies to INS Maker requests and unrelated MIDI messages.

5. Program Notes

1. INS Maker writes a log file in the current working directory named ‘INS Maker.log’ containing the same contents as is displayed in the View Log box. The log file is overwritten each time the OK button is clicked.
2. INS Maker will run in debug mode if it is started with a command line argument of /debug. When in debug mode, INS Maker displays “INS Maker – Debug Mode” in the caption and writes hexadecimal dumps of sysex messages as they are transmitted and received along with additional debugging information into the log file.
3. INS Maker 1.2 has been tested and used successfully by me and other users, but I make no warranties as to its usefulness or suitability and your use is at your own risk. It would be a good idea to make backup copies of your current Cakewalk/Sonar instrument definition files before importing new instrument definitions.
4. INS Maker is distributed under GPL as open source freeware.

6. Instrument Notes

Sample .ins files for the tested instruments are included in the INS file for your reference. You may use or delete them as you wish.

6.1 Access Virus/Indigo

I tested a Virus Rack and an Indigo 2. If the delay parameter is set too low, INS Maker may send the next request before the instrument is ready to receive. Increasing the delay parameter to 500 milliseconds resolves the problem.

6.2 Ensoniq MR/ZR

I tested a ZR-76 and an MR-Rack, I have not tested INS Maker’s handling of Performance patches; however I have coded what I believe to be a proper handling of performance patches based on the MR Sysex documentation.


I tested a TRITON-Rack with MOSS and orchestral options, and users have reported success with TRITON Classic and KARMA. INS Maker supports KORG bank mode only. GM(2) mode is not currently supported. Sysex must be enabled on the instrument. The generated .INS file will contain two instruments for the TRITON/KARMA: one instrument with PROG/MULTI banks and a second instrument with COMBI banks. When configuring Cakewalk, you can map either the PROG/MULTI instrument, the COMBI instrument or both, but the TRITON can only be in one mode at a time. Most users use PROG/MULTI mode.

6.4 Kurzweil K2K

I tested a K2000R, a K2500RS with KDFX and a K2600XS. With a K2K there is not really a clear-cut difference between a “sound” program and a “drum” program and there is more than one way to make a “drum” program. Currently, INS Maker uses a simple rule to decide if a program is a drum program: if a program uses seven or more different keymaps, then INS Maker treats the program as a drum program and generates a drum map.

6.5 Novation Nova

I tested a Supernova II keyboard. Different Novation models have different numbers of performance, program and drum banks. Since the Nova does not reply if a requested bank is missing, if INS Maker does not receive a reply after the specified number of retries, it will skip the non-existent bank and move on to the next one. For drum banks, INS Maker generates one patch for each drum bank and also generates the associated drum map. The generated .INS file will contain two instruments for the Nova: one instrument with performance banks and a second instrument with program and drum banks.

6.6 Roland JP8K

I tested a JP-8080 and the JP-8000 has also been reported to work.

Check to make sure that the JP8K is set to receive sysex (system exclusive) messages. To do this, press the Edit button, then press the MIDI button repeatedly until “RX Exclusive SW” is displayed. You can toggle the setting to “ON” with the Dec/Inc buttons.

The factory default for the MIDI device ID on the JP8K is 17. You can check the device id by pressing the Edit button, then pressing the MIDI button repeatedly until “Device ID” appears. The INS Maker sysex device number should be set to the JP8K Device ID – 1. In other words, if the JP8K device id is 17, then set the INS Maker sysex device number to 16.

INS Maker automatically detects a S2M-5/S4M-5 memory card if one is present, and will generate patch and performance names for all banks, including all user, preset and card banks. Since patches and performances are selected using different MIDI channels, the generated .INS file will contain two instruments for the JP8K: one instrument with patch banks and a second instrument with performance banks. When configuring Cakewalk, you can connect the patch MIDI channels to the patch instrument and connect the performance MIDI channel to the performance instrument.

7. Importing Instrument Definitions into Cakewalk/Sonar

Important Note: Before reconfiguring your instrument definitions, it’s always a good idea to make a backup copy of the master instrument definition file. On my system, this can be found at “C:\Program Files\Cakewalk\SONAR 3 Producer Edition\Master.ins”. If you save a copy of the master file, you can restore the file to revert to the prexisting instrument definitions.

You may use INS Maker to generate a custom Cakewalk/Sonar compatible instrument definition file for any of the synthesizers that INS Maker supports. However, in order for the generated instrument definition to be available in Cakewalk/Sonar, you must import the instrument definition. This can be done from within Cakewalk/Sonar:

1. From the Options menu, select Instruments (Options->Instruments). You should see a dialog similar to this:

2. Click the “Define” button, and another dialog will appear similar to this:

3. Click the “Import” button and a File Open dialog will appear:

4. Navigate to the instrument definition file that you wish to import and open the file. An instrument definition file may define more than one instrument. When the file is opened, a dialog will display a list of available instrument definition to import. Select the instrument definition(s) you wish to import and click “OK”.

5. If the instrument definition has been successfully imported, it will now appear in the tree view on the left-hand side of the dialog. In the following dialog, the Triton definition has been expanded for illustration.

6. Click the “Close” button to return to the Assign Instruments dialog. This dialog permits you to assign the instrument definition to one or more MIDI ports/channels. To assign the instrument definition to the appropriate ports/channels, select the MIDI ports/channels and then click the name of the instrument definition to be assigned.

7. Click the “OK” button to save the mapping and exit the dialog.

If you have been successful, when you assign a MIDI port and channel to a MIDI track, all of the patches from the instrument definition will be available, as illustrated in the following screen shot:

Copyright © 2000-2004 by John Bair. ALL RIGHTS RESERVED.