Quick start guide

To get more detailed information, click on the heading to go to the same section in the Step-by-step guide.
This page has only the notes we took while having a JSynthLib class under a tree in the Bahamas.

1. Start a new project

If you followed the instructions from 1. Before you start, you've already done this.

2. Library support

Having library support means being able to save and load sysex data from and to your synth.

2.1. synthDevice

This file is the file to start with.
First just declare and construct the new Device class,
then run core/DeviceListWriter to add your device to JSynthLib's list.

2.2. Drivers

Now the drivers can be added.
There are 3 types of drivers: SingleDriver, BankDriver and Converter and
two types of patches: SinglePatch and BankPatch.
The methods of Driver, BankDriver and Converter are put in a table here.

2.2.1. synthPatchDriver

A patchDriver (aka SingleDriver) can save and load a SinglePatch. A SinglePatch holds an array of System Exclusive messages describing a single patch (preset, performance, ...) on your synth and info about that sysex data. You can also load sysexdata of a complete bank in one SinglePatch, to do that you would want to write a patchDriver for that sysexdata. For e.g. drumkits, it can be convenient to have them as one patch.
A patchDriver has certain methods you always have to override, other methods only have to be overridden in case your synth's design asks for it.

2.2.2. synthBankDriver

A bankDriver is what you use to save or load sysexdata of a bank of patches in another patch, a BankPatch.
The sysexdata can be sysex that was loaded from a device-frontpanel-initiated bulk dump saved as a .syx file, or from a request that was sent by the BankDriver and responded to by the device.

2.2.3. synthBankConverter

A Converter converts a BankPatch to an array of SinglePatches. It has only two methods:
createPatches(byte[] sysex) and extractPatch(Patch p). If createPatches returns a Patch array,
extractPatch should just call createPatches with the sysexdata of the given BankPatch.

3. Editors

For the editors, there is a range of sysex widgets available. The YamahaTX81z Editor is recommended as a start to look at.

3.1. synthPatchEditor

Is there something specific about a patchEditor or are all editors based on the same principles ? I've not yet started building an editor so, somebody else may help me by filling in the rest of the information starting from here. I'm still busy improving the library support section on this wiki and in my Roland SPD-11 driver atm.

3.2. synthBankEditor

There's no info on the programmer's guide about a BankEditor.

Note: the methods of PatchBasket, PatchEditorFrame and BankEditorFrame are put in a table here.

4. GUI

JSynthLib provides the scrollPane, there you have to put your sections in, and in your sections you can put the SysexWidgets.

5. Testing

Edit Makefile, starting at line 105 where you have to add a line about your driver.