<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to User Guide</title><link>https://sourceforge.net/p/jsynthlib/wiki/User%2520Guide/</link><description>Recent changes to User Guide</description><atom:link href="https://sourceforge.net/p/jsynthlib/wiki/User%20Guide/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 17 Feb 2013 13:49:20 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/jsynthlib/wiki/User%20Guide/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage User Guide modified by frankie</title><link>https://sourceforge.net/p/jsynthlib/wiki/User%2520Guide/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -253,7 +253,7 @@

 ### Scene Window

-&lt;p&gt;A &lt;b&gt;&lt;i&gt;&lt;a name="scene"&gt;Scene window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; looks very much like the library window.
+A &lt;b&gt;&lt;i&gt;&lt;a name="scene"&gt;Scene window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; looks very much like the library window.
 It is intended to gather all patches for different synths, which are
 needed in a particular "scene". A "scene" can be a song or a set of
 songs - that depends on you. The advantage of a scene is that
@@ -261,7 +261,8 @@
 addition to the patches themselves. You can transfer the patches all
 together with the "Library-&amp;gt;Transfer Scene" function to the synths.
 Very practical for the recall of a specific sound setup.
-&lt;p&gt;The columns are:
+
+The columns are:
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Synth-- &lt;/b&gt;A shorthand identifier for the synthesizer to which the
 patch belongs. It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt;
@@ -288,12 +289,12 @@
 &lt;li&gt;&lt;b&gt;comment--&lt;/b&gt; This is another field which holds data outside of the
 actual data used by the Synthesizer.&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;In addition to the table of patches, a scene window contains a
+In addition to the table of patches, a scene window contains a
 footer which tells the number of patches in the scene.

 ### Bank Editor Window

-&lt;p&gt;A &lt;b&gt;&lt;i&gt;Bank Editor Window&lt;/i&gt;&lt;/b&gt; looks like a two dimensional
+A &lt;b&gt;&lt;i&gt;Bank Editor Window&lt;/i&gt;&lt;/b&gt; looks like a two dimensional
 table/array of patch names and numbers. This represents a bank of
 patches for a particular synthesizer. The number of patches in the
 bank and the numbering scheme used is dependent on the
@@ -302,22 +303,22 @@
 16-D.

 ### Single Editor Window
-&lt;p&gt;A &lt;b&gt;&lt;i&gt;Single Editor Window&lt;/i&gt;&lt;/b&gt; is by far the most complex window
+A &lt;b&gt;&lt;i&gt;Single Editor Window&lt;/i&gt;&lt;/b&gt; is by far the most complex window
 in the program. This window holds implementation details for one
 single patch. Here you can set various parameters that make the sound
 of the patch using sliders, checkboxes, comboboxes, etc. The layout of
 this window and the controls available depends on the synthesizer to
 which the patch belongs.&lt;/p&gt;

-&lt;p&gt; Although, the exact layout and function of the controls shown in
+Although, the exact layout and function of the controls shown in
 the Single Editor will depend on the synthesizer to which the patch
 belongs, all Single Editor Windows share much in common.

-&lt;p&gt;A Control is an element in the Editor Window which controls a
+A Control is an element in the Editor Window which controls a
 specific aspect of the patch, such as Filter Cutoff or
 Resonance. There are four basic types of controls.

-&lt;p&gt;1. a &lt;b&gt;Slider Control&lt;/b&gt; consists of a label, a slider, and a numeric
+1. a &lt;b&gt;Slider Control&lt;/b&gt; consists of a label, a slider, and a numeric
      readout.. You can tell the current value of the control both
      graphically (by how far the slider is over) and by the value of
      the numeric readout. You can change the value of the control only
@@ -330,15 +331,15 @@
      take a few seconds to process all the incoming data before being
      available to play a note , making real-time 'tweaking' difficult.

-&lt;p&gt;2. a &lt;b&gt;ComboBox Control&lt;/b&gt; consists of a label and a text-field. The
+2. a &lt;b&gt;ComboBox Control&lt;/b&gt; consists of a label and a text-field. The
      text-field tells you what the current value of the control is set
      for. Clicking on this text-field will produce a menu from which
      you can choose one of the other values for the control.

-&lt;p&gt;3. a &lt;b&gt;CheckBox Control&lt;/b&gt; consists of a label and a checkbox. Clicking
+3. a &lt;b&gt;CheckBox Control&lt;/b&gt; consists of a label and a checkbox. Clicking
      the check box will turn the setting the control represents on or off.

-&lt;p&gt;4. an &lt;b&gt;Envelope Control&lt;/b&gt; consists of a graphical depiction of the
+4. an &lt;b&gt;Envelope Control&lt;/b&gt; consists of a graphical depiction of the
      envelope and a label and numeric display for each parameter the
      envelope controls. Commonly, these parameters will be the Attack,
      Delay, Sustain, and Release parameters for a particular DCA. To
@@ -351,21 +352,21 @@
      draw lines connecting all the nodes to show a graphical depiction
      of the envelope given the current settings.

-&lt;p&gt;In addition to these controls, there are a number of interface
+In addition to these controls, there are a number of interface
 elements which do not interact with the synthesizer or patch data and
 only serve to make the presentation of the data more clear.

-&lt;p&gt;1. &lt;b&gt;frames&lt;/b&gt; which surround groups of related controls. For
+1. &lt;b&gt;frames&lt;/b&gt; which surround groups of related controls. For
 example a frame labeled "Filter" might surround a group of sliders
 labeled "Cutoff", "Resonance", and "Envelope Bias" to show you that
 these three parameters are a part of the synth's filter section.

-&lt;p&gt;2. &lt;b&gt;tables&lt;/b&gt; which are simply grid-like structures used to
+2. &lt;b&gt;tables&lt;/b&gt; which are simply grid-like structures used to
 hold parameters. As of version 0.12, only the Oberheim Matrix Editor
 makes use of tables. Note that you can click and drag on the table's
 headings to change the order in which parameters are displayed.

-&lt;p&gt;3. &lt;b&gt;tabs&lt;/b&gt;. By clicking on a tab, you are taken to a
+3. &lt;b&gt;tabs&lt;/b&gt;. By clicking on a tab, you are taken to a
 different set of parameters to edit. Sometimes the tabs surround
 entire editor screens, but usually they surround only a group of
 parameters. For example, In the Yamaha TX81z editor, there are four
@@ -373,7 +374,7 @@
 of controls related to the Operator is set to control the operator you
 have chosen.

-&lt;p&gt;Although Editing on-screen using a mouse or keyboard is efficient
+Although Editing on-screen using a mouse or keyboard is efficient
 and all editing functions can be realized this way, JSynthLib also
 provides another, optional, method to edit controls-- &lt;b&gt;Faders&lt;/b&gt;.  A Fader
 is simply a knob or a slider you might have on a synthesizer or fader
@@ -383,7 +384,7 @@
 are "Controller Surfaces" you can buy which consist only of Faders
 (either as knobs or slider).

-&lt;p&gt;These faders are generally used to edit parameters on synthesizers,
+These faders are generally used to edit parameters on synthesizers,
 but have two major drawbacks. First, they are often designed to work
 only on a certain, hardwired parameter or only for a particular
 synthesizer. Second, its difficult to picture what's happening when
@@ -392,18 +393,18 @@
 are for the parameters (unless you have a motorized controller
 surface).

-&lt;p&gt;JSynthLib allows you to overcome these limitations. If you have a
+JSynthLib allows you to overcome these limitations. If you have a
 Controller Surface or other source of MIDI Controller Messages which
 has at least 16 Faders, you can edit any synthesizer supported by
 JSynthLib and see visual feedback on your computer screen.

-&lt;p&gt;To set up your controller surface, look under
+To set up your controller surface, look under
 Window-&amp;gt;Preferences-&amp;gt;MIDI. Look at that section in this documentation
 for help on setting these up.
 Once set up, when you move a fader, the corresponding control in
 the active Editor Window will move. 

-&lt;p&gt;As you probably realize, however,
+As you probably realize, however,
 there are usually more than 16 controls in an editor window. This is
 where the concept of &lt;b&gt;fader banks&lt;/b&gt; come in. A fader bank is a group of
 16 controls which respond to faders. You can choose which bank your
@@ -416,7 +417,7 @@
 mouse cursor hover over the label for that control and a tool-tip will
 pop up with this information.

-&lt;p&gt;When you close an editor window, a dialog box will pop up asking
+When you close an editor window, a dialog box will pop up asking
 what you wish to do with any changes to the patch. If you choose to
 "Revert to Original", then any changes you have made in the editing
 session will be lost. If you choose to "Keep Changes", the changes are
@@ -515,29 +516,25 @@

 ### Library Menu

-The Library menu on the menu bar allows you to access a number of
-functions to &lt;a href="#library"&gt;Library&lt;/a&gt; and &lt;a href="#scene"&gt;Scene&lt;/a&gt;.
- These functions act on a library or act on all of
-the patches in the library. Functions which manipulate a single patch
-within a library are located under the Patch Menu. The available
-functions in the Library Menu are:
+The Library menu on the menu bar allows you to access a number of functions to &lt;a href="#library"&gt;Library&lt;/a&gt; and &lt;a href="#scene"&gt;Scene&lt;/a&gt;. These functions act on a library or act on all of the patches in the library. Functions which manipulate a single patch
+within a library are located under the Patch Menu. The available functions in the Library Menu are:
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Transfer Scene-- &lt;/b&gt; This transfers all patches of the selected Scene
-to their configured places in the synths.
+to their configured places in the synths.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Sort-- &lt;/b&gt; This function will sort all of the patches in a
 library by either the type, patch name, field1 or field2 field (the
 program will prompt you for the sort field) The sort algorithm used is
 stable, so you can for example sort by patch name and then sort by
 synth in order to get a library that is sorted by synth type and then
-sorted by patch name within each synth type.
+sorted by patch name within each synth type.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Search-- &lt;/b&gt; This function allows you to search for patches
 within a library. You enter the text to search for, and where you want
 the text to be located, whether in the patch name, field1, field2,
 comment, or any of the fields. Then you use the "Find First" button to
 locate the first patch matching the search criteria, or the "Find
-Next" button to locate the next one.
+Next" button to locate the next one.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Crossbreed-- &lt;/b&gt; Crossbreeding patches is a cool way to make
 new 'random' patches. Rather than simply sending random data to a
@@ -547,7 +544,7 @@
 you need an as-large-as-possible library full of patches for the
 synthesizer you wish to create patches for. If the library contains
 patches of more than one type,the command will randomly choose which
-synthesizer it is creating patches for. &lt;br /&gt;
+synthesizer it is creating patches for.

 When you use the crossbreeder, you are shown a dialog with four
 buttons. The "Close" button quits the crossbreeder. The "Generate"
@@ -558,7 +555,7 @@
 one.  If you find something you like, hit the "Keep" button and your
 patch will be appended to the current library. Note that as a random
 patch, it will have a random name, so you'll probably want to go in
-and give it a more useful name later.
+and give it a more useful name later.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Delete Dups--&lt;/b&gt; This function will search through a library for
 identical patches and delete all but one copy. This is most useful
@@ -568,14 +565,14 @@
 perfect duplicates, so if as much as one byte is different, they will
 not be considered duplicates and will not be deleted. Therefore two
 identical patches with different names will not be considered
-duplicates by this function.
+duplicates by this function.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;New Library-- &lt;/b&gt; This creates a new Library which
 contains no patches and displays it on the screen. This function is
-also available from the toolbar.
+also available from the toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;New Scene-- &lt;/b&gt; This creates a new Scene which contains
-no patches and displays it on the screen.
+no patches and displays it on the screen.&lt;/li&gt;
 &lt;/ul&gt;

 ### Patch Menu
@@ -591,11 +588,11 @@
 Window is a Single Patch Editor window, then the patch represented by
 the current position of the editing controls is copied to the
 clipboard. This function is also available from the toolbar and from
-the right-click pop up menu.
+the right-click pop up menu.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Cut--&lt;/b&gt; This command simply performs a &lt;em&gt;Copy&lt;/em&gt; command
 followed by a &lt;em&gt;Delete&lt;/em&gt; command. It is also available from the
-toolbar and from the right-click pop up menu.
+toolbar and from the right-click pop up menu.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Paste-- &lt;/b&gt; This copies a patch from the clipboard to the
 currently selected location in a Library Window or Bank Editor
@@ -608,11 +605,11 @@
 is designed to hold only one particular type of data. If the data type
 is invalid, the paste will not work. The same is true for the Import
 command. This command is also available from the toolbar and from the
-right-click pop up menu.
+right-click pop up menu.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Delete-- &lt;/b&gt; This deletes the currently selected patch in the
 currently focused Library Window or Bank Editor Window. If the current
-window is a Single Editor Window then this command has no function.
+window is a Single Editor Window then this command has no function.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Send-- &lt;/b&gt; This option will send the currently highlighted
 patch in the currently focused Library Window or Bank Edit Window to
@@ -623,18 +620,18 @@
 buffers, so on these synths a set patch (usually the first non-preset)
 will be overwritten with the sent data. In order for the send command
 to work, the synthesizer corresponding to the patch must be correctly
-set up from Window-&amp;gt;synths.
+set up from Window-&amp;gt;synths.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Send to-- &lt;/b&gt; Like Send, this function also sends the currently
 selected patch to the synthesizer specified.  This function is also
-available from the toolbar.
+available from the toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Store-- &lt;/b&gt; Like Send, this function also sends the currently
 selected patch to the correct synthesizer. This option however, will
 prompt you for a patch location (bank and patch numbers) on the
 synthesizer to store the patch to. It will then store it to the
 synthesizer, overwriting whatever patch may already be at that
-location. This function is also available from the toolbar.
+location. This function is also available from the toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Get--&lt;/b&gt; This function will receive sysex data from a
 synthesizer. When you choose this command, a dialog box will appear,
@@ -651,7 +648,7 @@
 'paste' button, the received patch will be pasted in the currently
 focused library. If you wish to discard the received patch, you can
 simply press 'get' again to get a different patch or press 'Cancel' to
-quit the dialog. When your done press 'done'.
+quit the dialog. When your done press 'done'.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Edit--&lt;/b&gt; Using the Editing command on a Patch for the driver
 contains editing support will bring up an Editor Window. This window
@@ -662,7 +659,7 @@
 information you need in order to understand how it generates sound and
 what the various parameters do. This command is also available from
 the right-click menu. See the section under 'Editing Patches' for more
-information
+information&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Play-- &lt;/b&gt; This command will send the currently selected patch
 to the proper synths followed by a MIDI command to play a note.  This
@@ -671,11 +668,11 @@
 it it hit, and how long it is held can be set in the Note Chooser
 Dialog Box, which is accessible from Window-&amp;gt;Preferences-&amp;gt;Play Note. The play
 function is also available from the toolbar and from the right-click
-menu.
+menu.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Reassign-- &lt;/b&gt; Each patch is corresponding to a particular
 synth Driver.  A patch can be used by more than one kind of synths.
-This command select a synth driver.
+This command select a synth driver.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Extract--&lt;/b&gt; You run the extract command on patches which
 represent entire banks of patches rather than singles. Make sure the
@@ -684,16 +681,16 @@
 and replaced with all the single patches which were inside of the
 bank. The same effect can be achieved when importing patches by using
 an option to the "Import All" command. See that part of the
-documentation for more details.
+documentation for more details.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;New Patch--&lt;/b&gt; This command creates a new (blank or default)
 patch. When you choose this option you will be given a list of the
 types of patches you are able to create. (Which patch types are
 available depends on which synth drivers you have loaded). The patch
-will be added to the currently focused patch library window.
+will be added to the currently focused patch library window.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Upload--&lt;/b&gt; Upload a patch to
-&lt;a href="http://www.jsynthlib.org/patches/"&gt;JSynthLib Patch Archive&lt;/a&gt;.
+&lt;a href="http://www.jsynthlib.org/patches/"&gt;JSynthLib Patch Archive&lt;/a&gt;.&lt;/li&gt;
 &lt;/ul&gt;
 ### Window Menu
 &lt;ul&gt;
@@ -738,23 +735,12 @@
 &lt;li&gt;Under &lt;b&gt;General&lt;/b&gt;, you can set the look-and-feel which JSynthLib
 will use.  You can also change the GUI style, MDI (Multiple Document
 Interface: everything in single window) or SDI (Single Document
-Interface: each frame has its own window).
-
-&lt;!--
-You can also change the Platform on which you are running
-JSynthLib. Note that there are two different options for
-MS-Windows. This is because JSynthLib provides two different methods
-to communicate with MIDI devices under Windows. I recommend using the
-WireProvider option.  It seems to work well and can transfer large
-sysex messages. The JavaMIDI option is included in case WireProvider
-does not work on your set up. If this is the case, you should e-mail
-in a bug report, and use JavaMIDI for now.
---&gt;
+Interface: each frame has its own window).&lt;/li&gt;

 &lt;li&gt;In the &lt;b&gt;Directory&lt;/b&gt; tab, you can set the default directory from which
 JSynthLib will attempt to load and save files. The &lt;b&gt;library path&lt;/b&gt;
 determines where the &lt;kbd&gt;.patchlib&lt;/kbd&gt; files are loaded and
-saved. The &lt;b&gt;sysex path&lt;/b&gt; is used by the import and export commands.
+saved. The &lt;b&gt;sysex path&lt;/b&gt; is used by the import and export commands.&lt;/li&gt;

 &lt;li&gt;The &lt;b&gt;MIDI&lt;/b&gt; tab holds MIDI settings.  The parameter called &lt;b&gt;Run
 Initialization on MIDI ports&lt;/b&gt; only needs to be played with if
@@ -767,11 +753,10 @@
 drivers allow more than one program to use the port, but not
 all. These parameters just give you the most control possible.

-&lt;p&gt;&lt;b&gt;MIDI Loopback Test&lt;/b&gt; button brings up a dialog to do
+&lt;b&gt;MIDI Loopback Test&lt;/b&gt; button brings up a dialog to do
 diagnostic test of your MIDI port.
-&lt;!-- add more description --&gt;
-
-&lt;p&gt;The &lt;b&gt;Master Controller Port&lt;/b&gt; determines which MIDI port JSynthLib
+
+The &lt;b&gt;Master Controller Port&lt;/b&gt; determines which MIDI port JSynthLib
 will watch for Notes being played. If notes are played (for example
 from a MIDI keyboard or MIDI sequencer) on this port, JSynthLib will echo them to
 whatever Synthesizer you are currently working with. (Either by having
@@ -779,7 +764,7 @@
 foreground and having a patch selected). This allows you more
 controlling auditioning patches than just using the "play" command. If
 you have no master controller or don't want to use one, disable
-&lt;b&gt;Enable Master Controller&lt;/b&gt; check box.
+&lt;b&gt;Enable Master Controller&lt;/b&gt; check box.&lt;/li&gt;

 &lt;li&gt;The &lt;b&gt;Fader Box&lt;/b&gt; tab allows you to configure your fader box if you want to
 use one. A fader box can be useful when editing patches, see the
@@ -789,7 +774,7 @@
 faders. Note that due to a bug in the MIDI routines used, JSynthLib
 will also receive faders on the master controller port.

-&lt;p&gt;JSynthLib recognizes up to 16 Sliders/Knobs and up to 16
+JSynthLib recognizes up to 16 Sliders/Knobs and up to 16
 Buttons. You can configure which MIDI controller number and channel number
 will recognized as each button and slider. You can either do this by
 hand, or use one of the preset buttons. The Kawai K5000 is set to
@@ -799,27 +784,27 @@
 1-16 as buttons 1-16. Its up to you to configure your PC1600 to send
 these values (its very easy).

-&lt;p&gt;Note that if you are using buttons, buttons 15 and 16 are special
+Note that if you are using buttons, buttons 15 and 16 are special
 purpose, they increment or decrement your fader bank by one.

-&lt;p&gt;There is also a variable for most recent fader (&lt;b&gt;Active Slider&lt;/b&gt;). If this controller
+There is also a variable for most recent fader (&lt;b&gt;Active Slider&lt;/b&gt;). If this controller
 is received it is patched to whatever fader has been accessed most
 recently. For example you could set your mod wheel to send to
-whichever fader you've used most recently.
+whichever fader you've used most recently.&lt;/li&gt;

 &lt;li&gt;When you choose the 'play' command to hear a sound, the patch is
 played at a particular note, velocity and duration. The &lt;b&gt;Play Note&lt;/b&gt;
 tab allows you to determine what note, velocity and duration are
-used.
-
-&lt;li&gt;&lt;b&gt;Repository&lt;/b&gt; tab set up settings for uploading patch.
+used.&lt;/li&gt;
+
+&lt;li&gt;&lt;b&gt;Repository&lt;/b&gt; tab set up settings for uploading patch.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;li&gt;&lt;b&gt;MIDI Monitor--&lt;/b&gt; Open MIDI Monitor window.  This is useful for
-trouble shooting.
+trouble shooting.&lt;/li&gt;
 &lt;/ul&gt;
 ### Pop-up Menu

-If your right-click on a patch in a Library Window or a Bank Editor
+If you right-click on a patch in a Library Window or a Bank Editor
 Window, a menu will appear which allows you to manipulate the patch in
 various ways. All of the functions on this menu are also available
 from the menu bar and a description of what they do can be found under
@@ -831,89 +816,9 @@
 issues relating only to the use of JSynthLib with particular
 synthesizers.

-&lt;!--
-&lt;em&gt;In this section of the documentation, issues relating only to the
-use of JSynthLib with particular synthesizers will be discussed&lt;/em&gt;
-
-&lt;p&gt;&lt;b&gt;Boss-DR660&lt;/b&gt;- It is not possible to edit effects settings on the
-Boss-DR660 with JSynthLib, but all other editing functions are
-available.
-
-&lt;p&gt;&lt;b&gt;Emu Proteus MPS&lt;/b&gt;- This synthesizer lacks a MIDI addressable
-patch buffer. Therefore, when you send or play a patch from within
-JSynthLib, the patch at location 100 on the Proteus will be
-overwritten.  JSynthLib treats this location as an edit buffer.
-
-&lt;p&gt;&lt;b&gt;Ensoniq ESQ-1&lt;/b&gt;- Whenever JSynthLib sends a Patch to the ESQ, the
-synthesizer will go to a screen where you must hit 'exit' on the front
-panel before you can send another patch. This is kind of annoying, so
-if anyone knows a way around this let me know. The other ESQ
-librarians I checked out had the same problem, so it may be
-impossible.
-
-&lt;p&gt;&lt;b&gt;Kawai K4 / K4r&lt;/b&gt;- There are no known issues or problems with this
-synthesizer 
-
-&lt;p&gt;&lt;b&gt;Kawai K5000&lt;/b&gt;- The 'crossbreed' option does not work with this
-synth. Also, note that changes made to patches in the K5000 will be
-lost when you turn it off, unless you perform the backup to
-non-volatile ram from the front panel. Also, Patch A01 will be used as
-the MIDI edit buffer.
-
-&lt;p&gt;&lt;b&gt;Oberheim Matrix 1000&lt;/b&gt;- I've noticed that this synthesizer
-responds slowly to changes of certain parameters, such as the
-Modulation Matrix. This is a limitation of the synthesizer, not of
-JSynthLib.  Luckily, the slow response parameters tend not to be the
-ones you would want to tweak in real time.
-
-&lt;p&gt;&lt;b&gt;Oberheim Matrix 6 / 6r&lt;/b&gt;- I've had one report that the Single
-Driver and the Single Editor for the Matrix 1000 also work with these
-synths, but that the Bank Driver does not, since these use a different
-bank format. Can anyone verify this?
-
-&lt;p&gt;&lt;b&gt;Yamaha TG33&lt;/b&gt; There are no known issues or problems with this
-synthesizer. I am looking for information which would allow me to write
-a Single Editor for this synth.
-
-&lt;p&gt;&lt;b&gt;Yamaha TX81z&lt;/b&gt;- It is possible to make the TX81z's internal MIDI
-buffer overflow if you send it too much Data too quickly. This should
-only happen if you are using a fader box and throwing the faders
-around rapidly.&lt;/p&gt;
-
-&lt;p&gt;&lt;b&gt;Yamaha DX7/TX7/DX7-II/DX7s/TX802&lt;/b&gt;- There are no known issues or problems with this
-synthesizer. I am looking for MIDI specification of the DX1 and DX5 to
-extend the support to these synthesizers.
-
-&lt;p&gt;&lt;b&gt;Yamaha DX21/DX27/DX100- &lt;/b&gt; These synths all use the same editor,
-since they are compatible, however some parameters will not have an
-effect on the sound on all three synths.
-
-&lt;p&gt;&lt;b&gt;Yamaha FS1R&lt;/b&gt;- The common manner of working with the driver is
- first to create a FS1R bank (or to open one). Then you should be able
- to edit a performance by selecting it in the bank. The performance has
- four parts that can make reference to internal voices or ROM voices (A-K).
- When the performance is edited, all the voices are sent to the FS1R.
- When you edit an internal voice of a performance, it is the voice of the
- bank, not the one in the synth memory. So when you close an editor window
- the bank patch is updated or stored in the JSynthLib clipboard. If you want
- to store the patch in the FS1R you have to do it manually for each component
- of the performance (performance an voices).
---&gt;
-
 # Troubleshooting

-&lt;!--
-&lt;b&gt;&lt;i&gt;[Windows]&lt;/i&gt; I can't get the MIDI to initialize. I've tried
-setting the initialization ports to every port in my system, but I
-still get an error on startup&lt;/b&gt;&lt;br&gt;
-
-This usually happens if you are using the JavaMIDI driver.  Go into
-Window-&amp;gt;Preferences-&amp;gt;General and set 'MIDI Platform' to MS-Windows
-(WireProvider). When using the JavaMIDI drivers, certain MIDI devices
-just refuse to work.
---&gt;
-
-&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;MIDI Loopback Test works fine.  But JSynthLib
+&lt;i&gt;[General]&lt;/i&gt;MIDI Loopback Test works fine.  But JSynthLib
 cannot send to MIDI data to my synth and/or cannot receive MIDI data
 from my synth.&lt;/b&gt;&lt;br /&gt;

@@ -922,33 +827,21 @@
 Preferences -&amp;gt; MIDI is not used for data transfer between JSynthLib
 and your synth.

-&lt;!--
-&lt;p&gt;&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;I changed some settings in JSynthLib to values
-that don't work. Now I can't even get it to run well enough to change
-them back!&lt;/b&gt;&lt;br&gt;
-
-Delete the file called &lt;kbd&gt;PatchEdit.config&lt;/kbd&gt; in your JSynthLib
-Directory. Now JSynthLib will go back to it's default settings the
-next time it is run and you can re-configure it.
---&gt;
-
-&lt;p&gt;&lt;b&gt;&lt;i&gt;[Windows]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
+&lt;b&gt;&lt;i&gt;[Windows]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
 It is saved in Windows Repository,
 &lt;kbd&gt;HKEY_CURRENT_USER\Software\JavaSoft\Prefs&lt;/kbd&gt;.

-&lt;p&gt;&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
+&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
 It is saved in &lt;kbd&gt;~/.java/&lt;/kbd&gt;.

-&lt;!-- add information for Mac OS X--&gt;
-
-&lt;p&gt;&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;All the fonts have way to much space between
+&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;All the fonts have way to much space between
 the letters and look awful!&lt;/b&gt;&lt;br /&gt;

 This is a Java issue under GNU/Linux. Supposedly it can be fixed by
 tweaking your fonts.properties file, but I haven't been able to get it
 to look right. Anyone have a fix for this?

-&lt;p&gt;&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;What information should I give when I report a
+&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;What information should I give when I report a
 bug?&lt;/b&gt;&lt;br /&gt;

 If you run JSynthLib with the parameter '2' as in &lt;kbd&gt;java JSynthLib 2
@@ -980,7 +873,7 @@
 SourceForge site&lt;/a&gt; or
 &lt;a href="mailto:jsynthlib-devel@lists.sourceforge.net"&gt;jsynthlib-devel mailing list&lt;/a&gt;.

-&lt;p&gt;If you want write bug fixes, additional drivers/editor or core elements please take
+If you want write bug fixes, additional drivers/editor or core elements please take
 a look at the &lt;a href="./programming.html"&gt;JSynthLib Programmer's Guide&lt;/a&gt;.

 # Acknowledgement
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">frankie</dc:creator><pubDate>Sun, 17 Feb 2013 13:49:20 -0000</pubDate><guid>https://sourceforge.net6dfdcfd7b9deb47f1be91b62f5a32e8dba52fbcd</guid></item><item><title>WikiPage User Guide modified by frankie</title><link>https://sourceforge.net/p/jsynthlib/wiki/User%2520Guide/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,75 +1,18 @@
-
-
-
-&lt;font face="Verdana,arial,helvetica" size="-1"&gt;
-
-&lt;ol type="i"&gt;
-&lt;li&gt;&lt;a href="#overview"&gt;JSynthLib Overview&lt;/a&gt;
-     &lt;ol type="a"&gt;
-     &lt;li&gt;&lt;a href="#purpose"&gt;Purpose&lt;/a&gt;
-     &lt;li&gt;&lt;a href="#features"&gt;Features&lt;/a&gt;
-     &lt;/ol&gt;
-&lt;li&gt;&lt;a href="#install"&gt;Installing JSynthLib&lt;/a&gt;
-&lt;li&gt;&lt;a href="#using"&gt;Using JSynthLib&lt;/a&gt;
-     &lt;ol type="a"&gt;
-     &lt;li&gt;&lt;a href="#windows"&gt;The Main Windows&lt;/a&gt;
-         &lt;ol&gt;
-         &lt;li&gt;&lt;a href="#library window"&gt;Library Window&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#scene window"&gt;Scene Window&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#bank editor window"&gt;Bank Editor Window&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#single editor window"&gt;Single Editor Window&lt;/a&gt;
-         &lt;/ol&gt;
-     &lt;li&gt;&lt;a href="#menus"&gt;The Menu Functions&lt;/a&gt;
-         &lt;ol&gt;
-         &lt;li&gt;&lt;a href="#file menu"&gt;File Menu&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#library menu"&gt;Library Menu&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#patch menu"&gt;Patch Menu&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#window menu"&gt;Window Menu&lt;/a&gt;
-         &lt;li&gt;&lt;a href="#popup menu"&gt;Pop-up Menu&lt;/a&gt;
-         &lt;/ol&gt;
-     &lt;/ol&gt;
-&lt;li&gt;&lt;a href="#synths"&gt;Notes about Particular Synths&lt;/a&gt;
-&lt;li&gt;&lt;a href="#trouble"&gt;Troubleshooting&lt;/a&gt;
-&lt;li&gt;&lt;a href="#contrib"&gt;Contributing to JSynthLib&lt;/a&gt;
-&lt;li&gt;&lt;a href="#acknowledgment"&gt;We wish to say thank you to.....&lt;/a&gt;
-&lt;/ol&gt;
-&lt;a href="#toc" name=""&gt;
-&lt;h2&gt;&lt;a href="#toc" name="overview"&gt;JSynthLib Overview&lt;/a&gt;&lt;/h2&gt;
-
-JSynthLib is a universal MIDI synthesizer librarian / editor. The
-project aims to eventually support all existing synthesizers.
-
-&lt;h3&gt;&lt;a href="#toc" name="purpose"&gt;Why write JSynthLib?&lt;/a&gt;&lt;/h3&gt;
-
-&lt;p&gt;I have a lot of electronic music making equipment: synthesizers,
-midi controllers, effects processors, all kinds of fun stuff, almost
-all of which I bought used off the Internet. So why, after I've spend
-thousands of dollars on hardware, not just spend a couple of hundred
-more and purchase one of the many available commercial universal patch
-editor/ librarians such as MIDIQuest or SoundDiver? I like Free
-Software. I like the control, the power, and the community. With Free
-Software / Open Source / Copyleft the user is a stakeholder not just a
-consumer. (Of course, I'm not a Free Software fanatic or I wouldn't be
-using Java). In 1997 had used GNU/Linux for several months exclusively,
-but finally gave in and set up a dual-boot with Windows 95 in order to
-do MIDI Sequencing. For the past several years I've used Cakewalk to
-sequence and a myriad of Shareware and Freeware editors for various
-synths (some synths I have no editors for).&lt;/p&gt;
-
-&lt;p&gt;Since 1997 both GNU/Linux sequencers and GNU/Linux hardware support have
-improved dramatically, but leaving Windows behind would require
-leaving behind all of the Synth editors I used. So in June 1999, I set
-up to write a universal patch librarian for GNU/Linux. The problem with
-this is that I still do all of my music stuff in Windows, I merely
-hope to convert to GNU/Linux when the software is ready. So I require a
-program which can run under both Operating systems. I began writing in
-C++ using a cross platform GUI library but quickly got tangled in too
-many implementation details and caveats and gave up. Recently I
-realized that Java/Swing gives me the flexibility I need for my
-application. JSynthLib runs under Windows, GNU/Linux, and Mac OS X.
-
-&lt;h3&gt;&lt;a href="#toc" name="features"&gt;JSynthLib Features&lt;/a&gt;&lt;/h3&gt;
+[TOC]
+
+
+# JSynthLib Overview
+JSynthLib is a universal MIDI synthesizer librarian / editor. The project aims to eventually support all existing synthesizers.
+
+## Why write JSynthLib?
+
+I have a lot of electronic music making equipment: synthesizers, midi controllers, effects processors, all kinds of fun stuff, almost all of which I bought used off the Internet. So why, after I've spend thousands of dollars on hardware, not just spend a couple of hundred
+more and purchase one of the many available commercial universal patch editor/ librarians such as MIDIQuest or SoundDiver? I like Free Software. I like the control, the power, and the community. With Free Software / Open Source / Copyleft the user is a stakeholder not just a consumer. (Of course, I'm not a Free Software fanatic or I wouldn't be using Java). In 1997 had used GNU/Linux for several months exclusively, but finally gave in and set up a dual-boot with Windows 95 in order to do MIDI Sequencing. For the past several years I've used Cakewalk to sequence and a myriad of Shareware and Freeware editors for various
+synths (some synths I have no editors for).
+
+Since 1997 both GNU/Linux sequencers and GNU/Linux hardware support have improved dramatically, but leaving Windows behind would require leaving behind all of the Synth editors I used. So in June 1999, I set up to write a universal patch librarian for GNU/Linux. The problem with this is that I still do all of my music stuff in Windows, I merely hope to convert to GNU/Linux when the software is ready. So I require a program which can run under both Operating systems. I began writing in C++ using a cross platform GUI library but quickly got tangled in too many implementation details and caveats and gave up. Recently I realized that Java/Swing gives me the flexibility I need for my application. JSynthLib runs under Windows, GNU/Linux, and Mac OS X.
+
+## Features

 &lt;!-- Should each line end with period '.', or not? --&gt;
 &lt;ul&gt;
@@ -108,7 +51,7 @@
      preview without a MIDI controller
 &lt;/ul&gt;

-&lt;h4&gt;Editor Features&lt;/h4&gt;
+### Editor Features

 &lt;ul&gt;
 &lt;li&gt;Edit patches graphically through on screen sliders, envelopes,
@@ -124,7 +67,7 @@
      Peavey PC1600) to edit any synth.
 &lt;/ul&gt;

-&lt;h4&gt;Extensibility Features&lt;/h4&gt;    
+### Extensibility Features

 &lt;ul&gt;
 &lt;li&gt;New Drivers and Editors can be created relatively easily by
@@ -133,9 +76,9 @@
      sysex and interface with patch data
 &lt;/ul&gt;

-&lt;h2&gt;&lt;a href="#toc" name="install"&gt;Installing JSynthLib&lt;/a&gt;&lt;/h2&gt;
-
-&lt;h3&gt;Step 1: Java Runtime Environment&lt;/h3&gt;
+#Installing JSynthLib
+
+## Step 1: Java Runtime Environment

 Make sure you have the J2SE JRE (Java Run Time Environment) or SDK
 (Software Development Kit) which supports Java 1.4 or later. If you do
@@ -148,7 +91,7 @@
 Mac OS X comes with java preinstalled. but you should be sure you have
 the latest update installed.

-&lt;h3&gt;Step 2: MIDI Provider&lt;/h3&gt;
+## Step 2: MIDI Provider

 JSynthLib-0.19 and/or later uses MIDI Provider, a platform dependent
 layer of the Java MIDI API.  Depends on a version of your Java
@@ -164,12 +107,12 @@
 &lt;kbd&gt;WireProvider.jar&lt;/kbd&gt; under &lt;kbd&gt;$JAVA_HOME/jre/lib/ext/&lt;/kbd&gt;
 directory and put &lt;kbd&gt;WireProvider.dll&lt;/kbd&gt; under
 &lt;kbd&gt;$JAVA_HOME/jre/bin/&lt;/kbd&gt; directory.  ($JAVA_HOME is the root
-directory of J2SE installation.)
+directory of J2SE installation.)&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;GNU/Linux&lt;/b&gt;

 If you have a J2SE version 1.5 or newer installed, you don't have to
-install a MIDI Provider.&lt;p&gt;
+install a MIDI Provider.

 If you use older version of J2SE, download the latest
 &lt;kbd&gt;LinuxCharDev.jar&lt;/kbd&gt; from &lt;a&gt;&lt;kbd&gt;LinuxCharDev&lt;/kbd&gt;. Please see the &lt;a href="http://www.tritonus.org/"&gt;Tritonus: Open Source Java Sound&lt;/a&gt;
-web site for further information.
+web site for further information.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Mac OS X&lt;/b&gt;

-&lt;!--If you have a J2SE older than version 1.5 installed, c
-1.5 isn't availble for OS X yet, and it probably won't contain a
-builtin MIDI provider.--&gt;
-At this point (June, 2004) you need to install a MIDI Provider.&lt;p&gt;
+At this point (June, 2004) you need to install a MIDI Provider.

 Download the latest &lt;kbd&gt;CAProvider.jar&lt;/kbd&gt; from &lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
 SourceForge site&lt;/a&gt; and copy it under
 &lt;kbd&gt;/Library/Java/Extensions/&lt;/kbd&gt;
 (&lt;kbd&gt;~/Library/Java/Extensions/&lt;/kbd&gt; should also work for a single
-user installation).&lt;p&gt;
+user installation).

 You may use &lt;a href="http://www.cems.uwe.ac.uk/~lrlang/plumstone/"&gt;Plum Stone&lt;/a&gt;
 instead of &lt;kbd&gt;CAProvider&lt;/kbd&gt;.
-&lt;/ul&gt;
-
-&lt;h3&gt;Step 3: Installing and Invoking JSynthLib&lt;/h3&gt;
+&lt;/li&gt;&lt;/ul&gt;
+
+## Step 3: Installing and Invoking JSynthLib

 &lt;ul&gt;
 &lt;li&gt;Download the latest &lt;kbd&gt;JSynthLib-XXX.jar&lt;/kbd&gt; file from &lt;a&gt;&lt;/a&gt; and copy it to any directory (for example
     &lt;kbd&gt;c:\Program Files\JSynthLib\&lt;/kbd&gt; or
     &lt;kbd&gt;~/Applications/jsynthlib/&lt;/kbd&gt;).&lt;p&gt;
-    Application bundle may be provided for Mac OS X.
-
-&lt;li&gt;Invoke JSynthLib.
-&lt;ul&gt;
+    Application bundle may be provided for Mac OS X.&lt;/li&gt;
+
+&lt;li&gt;Invoke JSynthLib.&lt;/li&gt;

 &lt;li&gt;[MS Windows] Run JSynthLib.jar &lt;!--either by double-clicking the
     icon or--&gt; by typing &lt;kbd&gt;java -jar JSynthLib-XXX.jar&lt;/kbd&gt; from
     the command prompt.  You may create a shortcut on the desktop to
-    JSynthLib.jar.
+    JSynthLib.jar.&lt;/li&gt;

 &lt;li&gt;[GNU/Linux] Run JSynthLib.jar by typing &lt;kbd&gt;java -jar
-    JSynthLib-XXX.jar&lt;/kbd&gt; from the shell prompt.
+    JSynthLib-XXX.jar&lt;/kbd&gt; from the shell prompt.&lt;/li&gt;

 &lt;li&gt;[Mac OS X] Run JSynthLib.jar by typing &lt;kbd&gt;java
      -Dapple.laf.useScreenMenuBar=true -jar JSynthLib-XXX.jar&lt;/kbd&gt;
     from the Terminal. You can also double click the jar file, but then
     each window will have it's own menu bar.
-    Application bundle would remove this step.
-&lt;/ul&gt;
+    Application bundle would remove this step.&lt;/li&gt;

 &lt;li&gt;Go to Window-&amp;gt;Preferences and set preferences (such as look and
     feel, default file directories, default MIDI port, etc.) as you
-    wish.
+    wish.&lt;/li&gt;

 &lt;li&gt;Go to Window-&amp;gt;Synths and add and configure the synthesizers you
-    want to use with JSynthLib.
-&lt;!--
-&lt;li&gt;Quit JSynthLib after you are done configuring it and restart
-    it. Now you can go back into it and use it.
---&gt;
-&lt;/ul&gt;
-
-&lt;!--
-&lt;h4&gt;Mac OS 9&lt;/h4&gt;
-
-JSynthLib can use the javaMIDI library for MIDI I/O. This Library has
-been ported to Mac OS 9, so in theory, this could be used to run
-JSynthLib on Mac OS 9. Unfortunately, Apple has really dropped the ball
-on providing modern Java support for their older Operating System. If
-Java JDK 1.4 ever becomes available for Mac OS 9, JSynthLib should be able
-to run under it.
---&gt;
-
-&lt;h2&gt;&lt;a href="#toc" name="using"&gt;Using JSynthLib&lt;/a&gt;&lt;/h2&gt;
-
-&lt;h3&gt;&lt;a href="#toc" name="windows"&gt;Windows&lt;/a&gt;&lt;/h3&gt;
+    want to use with JSynthLib.&lt;/li&gt;
+&lt;/ul&gt;
+
+
+# Using JSynthLib
+## The Main Windows

 There are four main types of windows which you will be working with
 when using JSynthLib. Each provides access to a particular type of
 data.&lt;p&gt;

-&lt;h4&gt;&lt;a href="#toc" name="library window"&gt;Library Window&lt;/a&gt;&lt;/h4&gt;
+### Library Window
+
 A &lt;b&gt;&lt;i&gt;&lt;a name="library"&gt;Library window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; holds patches. Different
 types of patches can be stored in one library, or you can use a
 library to hold only patches for a particular synthesizer.

-&lt;p&gt;A Library Window looks like a table where each row
+A Library Window looks like a table where each row
 represents one patch.  The columns represent different pieces of
 information about the patch.

-&lt;p&gt;The columns are:
+The columns are:
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Synth-- &lt;/b&gt;A shorthand identifier for the synthesizer to which the
 patch belongs. For example, if a patch is for a Yamaha TG33
 Synthesizer, this field might read "TG33". These identifiers merely
 help the user to see what patch goes with each synthesizer and are
 merely arbitrary identifiers. The identifier used for each synthesizer
-can be changed in the Window-&amp;gt;synths menu.
+can be changed in the Window-&amp;gt;synths menu.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Type-- &lt;/b&gt; This tells what kind of patch the patch is. The most
 common values for this field are "Single" which means the patch
@@ -300,7 +224,7 @@
 a drum machine would probably have a "DrumKit" type rather than a
 "Single" type. Words like "Single", "Multi", and "Bank" are standard
 synthesizer jargon. If you are unfamiliar with synthesizer terminology
-you should probably brush up in order to use this program.
+you should probably brush up in order to use this program.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;PatchName-- &lt;/b&gt; Obviously, this is the name of the patch. Note
 that this is the name of the patch as it appears in the actual
@@ -308,7 +232,7 @@
 the synthesizer impresses upon its data. For example, if the
 synthesizer only allows for 6 characters in a patch name, so will
 JSynthLib. Some synthesizers do not support patch names at all, and
-most of the time "Bank" type patches will not support names.
+most of the time "Bank" type patches will not support names.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;field1 / field2--&lt;/b&gt; These two fields hold data outside of the
 actual data used by the Synthesizer and can therefore hold values even
@@ -316,18 +240,19 @@
 meaning of these two fields is user defines, for example, you could
 set all of the field1 values in a library to be the name of the author
 of the patch and all of the field2 values to be the type of instrument
-that the patch is trying to emulate (Guitar/Piano/Drum, etc)
+that the patch is trying to emulate (Guitar/Piano/Drum, etc)&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;comment--&lt;/b&gt; This is another field which holds data outside of the
 actual data used by the Synthesizer. The main difference between
 field1 / field2 and comment is that the comment field can hold longer
 strings and that you can not sort a library based on the comment
-field.
-&lt;/ul&gt;
-&lt;p&gt;In addition to the table of patches, a library window contains a
+field.&lt;/li&gt;
+&lt;/ul&gt;
+In addition to the table of patches, a library window contains a
 footer which tells the number of patches in the library.

-&lt;h4&gt;&lt;a href="#toc" name="scene window"&gt;Scene Window&lt;/a&gt;&lt;/h4&gt;
+### Scene Window
+
 &lt;p&gt;A &lt;b&gt;&lt;i&gt;&lt;a name="scene"&gt;Scene window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; looks very much like the library window.
 It is intended to gather all patches for different synths, which are
 needed in a particular "scene". A "scene" can be a song or a set of
@@ -340,33 +265,34 @@
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Synth-- &lt;/b&gt;A shorthand identifier for the synthesizer to which the
 patch belongs. It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt;
-above.
+above.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Type-- &lt;/b&gt; It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt;
-above.
+above.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;PatchName-- &lt;/b&gt; Obviously, this is the name of the patch. 
-It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt; above.
+It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt; above.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Bank Number--&lt;/b&gt; This is the first difference to the library.
 This column contains the bank number for your patch, since patches are usually
 organized in banks in the synthesizers. You can select a bank with a drop-down
 menu. The actual content of the drop-down is determined by the patch type and
-the architecture of the synth.
+the architecture of the synth.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Patch Number--&lt;/b&gt; 
 This column contains the patch number for your patch within the bank.
 Again, you can select a patch number with a drop-down
 menu. The actual content of the drop-down is determined by the patch type and
-the architecture of the synth.
+the architecture of the synth.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;comment--&lt;/b&gt; This is another field which holds data outside of the
-actual data used by the Synthesizer.
+actual data used by the Synthesizer.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;In addition to the table of patches, a scene window contains a
 footer which tells the number of patches in the scene.

-&lt;h4&gt;&lt;a href="#toc" name="bank editor window"&gt;Bank Editor Window&lt;/a&gt;&lt;/h4&gt;
+### Bank Editor Window
+
 &lt;p&gt;A &lt;b&gt;&lt;i&gt;Bank Editor Window&lt;/i&gt;&lt;/b&gt; looks like a two dimensional
 table/array of patch names and numbers. This represents a bank of
 patches for a particular synthesizer. The number of patches in the
@@ -375,7 +301,7 @@
 a bank numbered 0-99, which the Kawai K4 holds 64 numbered 1-A to
 16-D.

-&lt;h4&gt;&lt;a href="#toc" name="single editor window"&gt;Single Editor Window&lt;/a&gt;&lt;/h4&gt;
+### Single Editor Window
 &lt;p&gt;A &lt;b&gt;&lt;i&gt;Single Editor Window&lt;/i&gt;&lt;/b&gt; is by far the most complex window
 in the program. This window holds implementation details for one
 single patch. Here you can set various parameters that make the sound
@@ -502,41 +428,40 @@
 into a patch library of bank of your choosing. This is useful if you
 like the new edits you have created, but also like the original patch.

-
-&lt;h3&gt;&lt;a href="#toc" name="menus"&gt;The Menu Functions&lt;/a&gt;&lt;/h3&gt;
-
-&lt;h4&gt;&lt;a href="#toc" name="file menu"&gt;File Menu&lt;/a&gt;&lt;/h4&gt;
+## The Menu Functions
+### File Menu
+
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Open-- &lt;/b&gt;This prompts you for a file name and then loads the
 previously saved library under that name from disk and displays it on
 the screen. Note that if the library is very large, the program might
 take several seconds to read it from disk. The filename of the loaded
 library is placed on the top frame of the Library Window. This
-function is also available from the Toolbar.
+function is also available from the Toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Save-- &lt;/b&gt;This saves a library window to disk. The library
 window which you wish to save must be the currently focused (active)
 window when you choose this option. If the library does not have a
 file name, then the program will pop up a save as dialog box just as
 if you had chosen the Save As Option instead. This function is also
-available from the Toolbar.
+available from the Toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Save As-- &lt;/b&gt; this function pops up a file dialog box to ask
 you for a new name and then saves the currently focused Library Window
-under that name.
+under that name.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Import--&lt;/b&gt; This function will load raw Sysex data and/or MIDI
 files from disk into the currently focused Library Window or Bank
 Editor Window.  If a driver is installed (under Window-&amp;gt;Synths) which
 recognizes the format of this data, then it will be turned into a
 patch of the proper type, otherwise it will be listed as "unknown".
-This function is also available from the toolbar.
+This function is also available from the toolbar.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Export--&lt;/b&gt; This function will save the raw Sysex data from the
 currently selected patch (in a Library Window or Bank Editor Window)
 to disk, stripping away field1, field2, and comment. The data will be
 in the raw form suitable for sending to the synthesizer of importing
-into another editor for that type of data.
+into another editor for that type of data.&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Import All--&lt;/b&gt; This is a powerful function that is very useful
 when you first start using JSynthLib. It is designed to quickly import
@@ -582,12 +507,13 @@
 Patch-&amp;gt;Extract option. If both this option and the option to place the
 filename in field1 or field2 are checked, each of the extracted
 patches will get the filename followed by their location in the bank
-placed in their field. For example " MYSOUNDS1.SYX 34 ".
+placed in their field. For example " MYSOUNDS1.SYX 34 ".&lt;/li&gt;

 &lt;li&gt;&lt;b&gt;Exit--&lt;/b&gt; Basically this command just exits the program.
-It will &lt;em&gt;not&lt;/em&gt; warn you about unsaved data!
-&lt;/ul&gt;
-&lt;h4&gt;&lt;a href="#toc" name="library menu"&gt;Library Menu&lt;/a&gt;&lt;/h4&gt;
+It will &lt;em&gt;not&lt;/em&gt; warn you about unsaved data!&lt;/li&gt;
+&lt;/ul&gt;
+
+### Library Menu

 The Library menu on the menu bar allows you to access a number of
 functions to &lt;a href="#library"&gt;Library&lt;/a&gt; and &lt;a href="#scene"&gt;Scene&lt;/a&gt;.
@@ -651,7 +577,8 @@
 &lt;li&gt;&lt;b&gt;New Scene-- &lt;/b&gt; This creates a new Scene which contains
 no patches and displays it on the screen.
 &lt;/ul&gt;
-&lt;h4&gt;&lt;a href="#toc" name="patch menu"&gt;Patch Menu&lt;/a&gt;&lt;/h4&gt;
+
+### Patch Menu

 The Patch menu allows you to access a number of functions which
 manipulate individual patches which are located either in a Library
@@ -768,7 +695,7 @@
 &lt;li&gt;&lt;b&gt;Upload--&lt;/b&gt; Upload a patch to
 &lt;a href="http://www.jsynthlib.org/patches/"&gt;JSynthLib Patch Archive&lt;/a&gt;.
 &lt;/ul&gt;
-&lt;h4&gt;&lt;a href="#toc" name="window menu"&gt;Window Menu&lt;/a&gt;&lt;/h4&gt;
+### Window Menu
 &lt;ul&gt;
 &lt;li&gt;&lt;b&gt;Synths--&lt;/b&gt; This is where you tell JSynthLib what synthesizers
 you have and how they are configured. When you open this window, you
@@ -890,7 +817,7 @@
 &lt;li&gt;&lt;b&gt;MIDI Monitor--&lt;/b&gt; Open MIDI Monitor window.  This is useful for
 trouble shooting.
 &lt;/ul&gt;
-&lt;h4&gt;&lt;a href="#toc" name="popup menu"&gt;Pop-up Menu&lt;/a&gt;&lt;/h4&gt;
+### Pop-up Menu

 If your right-click on a patch in a Library Window or a Bank Editor
 Window, a menu will appear which allows you to manipulate the patch in
@@ -898,7 +825,7 @@
 from the menu bar and a description of what they do can be found under
 their menu bar entries in this documentation.

-&lt;h2&gt;&lt;a href="#toc" name="synths"&gt;Notes on Particular Synths&lt;/a&gt;&lt;/h2&gt;
+# Notes about Particular Synths

 Windows -&amp;gt; Synths -&amp;gt; Show Details -&amp;gt; Information shows you
 issues relating only to the use of JSynthLib with particular
@@ -973,7 +900,7 @@
  of the performance (performance an voices).
 --&gt;

-&lt;h2&gt;&lt;a href="#toc" name="trouble"&gt;Troubleshooting JSynthLib&lt;/a&gt;&lt;/h2&gt;
+# Troubleshooting

 &lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">frankie</dc:creator><pubDate>Sun, 17 Feb 2013 13:41:04 -0000</pubDate><guid>https://sourceforge.netd9afd1901aa432d7496933f67fb0b6418018ad5b</guid></item><item><title>WikiPage User Guide modified by frankie</title><link>https://sourceforge.net/p/jsynthlib/wiki/User%2520Guide/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">frankie</dc:creator><pubDate>Sun, 17 Feb 2013 11:30:58 -0000</pubDate><guid>https://sourceforge.net74700c05675738b22fca3bc355f34dbbdcbaf14e</guid></item><item><title>WikiPage Documentation modified by frankie</title><link>https://sourceforge.net/p/jsynthlib/wiki/Documentation/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana,arial,helvetica" size="-1"&gt;&lt;/p&gt;
&lt;ol type="i"&gt;
&lt;li&gt;&lt;a href="#overview"&gt;JSynthLib Overview&lt;/a&gt;
     &lt;ol type="a"&gt;
     &lt;li&gt;&lt;a href="#purpose"&gt;Purpose&lt;/a&gt;
     &lt;li&gt;&lt;a href="#features"&gt;Features&lt;/a&gt;
     &lt;/ol&gt;
&lt;li&gt;&lt;a href="#install"&gt;Installing JSynthLib&lt;/a&gt;
&lt;li&gt;&lt;a href="#using"&gt;Using JSynthLib&lt;/a&gt;
     &lt;ol type="a"&gt;
     &lt;li&gt;&lt;a href="#windows"&gt;The Main Windows&lt;/a&gt;
         &lt;ol&gt;
         &lt;li&gt;&lt;a href="#library window"&gt;Library Window&lt;/a&gt;
         &lt;li&gt;&lt;a href="#scene window"&gt;Scene Window&lt;/a&gt;
         &lt;li&gt;&lt;a href="#bank editor window"&gt;Bank Editor Window&lt;/a&gt;
         &lt;li&gt;&lt;a href="#single editor window"&gt;Single Editor Window&lt;/a&gt;
         &lt;/ol&gt;
     &lt;li&gt;&lt;a href="#menus"&gt;The Menu Functions&lt;/a&gt;
         &lt;ol&gt;
         &lt;li&gt;&lt;a href="#file menu"&gt;File Menu&lt;/a&gt;
         &lt;li&gt;&lt;a href="#library menu"&gt;Library Menu&lt;/a&gt;
         &lt;li&gt;&lt;a href="#patch menu"&gt;Patch Menu&lt;/a&gt;
         &lt;li&gt;&lt;a href="#window menu"&gt;Window Menu&lt;/a&gt;
         &lt;li&gt;&lt;a href="#popup menu"&gt;Pop-up Menu&lt;/a&gt;
         &lt;/ol&gt;
     &lt;/ol&gt;
&lt;li&gt;&lt;a href="#synths"&gt;Notes about Particular Synths&lt;/a&gt;
&lt;li&gt;&lt;a href="#trouble"&gt;Troubleshooting&lt;/a&gt;
&lt;li&gt;&lt;a href="#contrib"&gt;Contributing to JSynthLib&lt;/a&gt;
&lt;li&gt;&lt;a href="#acknowledgment"&gt;We wish to say thank you to.....&lt;/a&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="#toc" name=""&gt;&lt;br /&gt;
&lt;h2&gt;&lt;a href="#toc" name="overview"&gt;JSynthLib Overview&lt;/a&gt;&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;JSynthLib is a universal MIDI synthesizer librarian / editor. The&lt;br /&gt;
project aims to eventually support all existing synthesizers.&lt;/p&gt;
&lt;h3&gt;&lt;a href="#toc" name="purpose"&gt;Why write JSynthLib?&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;I have a lot of electronic music making equipment: synthesizers,
midi controllers, effects processors, all kinds of fun stuff, almost
all of which I bought used off the Internet. So why, after I've spend
thousands of dollars on hardware, not just spend a couple of hundred
more and purchase one of the many available commercial universal patch
editor/ librarians such as MIDIQuest or SoundDiver? I like Free
Software. I like the control, the power, and the community. With Free
Software / Open Source / Copyleft the user is a stakeholder not just a
consumer. (Of course, I'm not a Free Software fanatic or I wouldn't be
using Java). In 1997 had used GNU/Linux for several months exclusively,
but finally gave in and set up a dual-boot with Windows 95 in order to
do MIDI Sequencing. For the past several years I've used Cakewalk to
sequence and a myriad of Shareware and Freeware editors for various
synths (some synths I have no editors for).&lt;/p&gt;

&lt;p&gt;Since 1997 both GNU/Linux sequencers and GNU/Linux hardware support have
improved dramatically, but leaving Windows behind would require
leaving behind all of the Synth editors I used. So in June 1999, I set
up to write a universal patch librarian for GNU/Linux. The problem with
this is that I still do all of my music stuff in Windows, I merely
hope to convert to GNU/Linux when the software is ready. So I require a
program which can run under both Operating systems. I began writing in
C++ using a cross platform GUI library but quickly got tangled in too
many implementation details and caveats and gave up. Recently I
realized that Java/Swing gives me the flexibility I need for my
application. JSynthLib runs under Windows, GNU/Linux, and Mac OS X.

&lt;h3&gt;&lt;a href="#toc" name="features"&gt;JSynthLib Features&lt;/a&gt;&lt;/h3&gt;

&lt;!-- Should each line end with period '.', or not? --&gt;
&lt;ul&gt;
&lt;li&gt;Create / Load / Save heterogeneous collections of Patches in
     Libraries. Libraries can contain various types of patches and
     patches for multiple synths can be stored in a single library.
&lt;li&gt;Attach comments and user defined attributes to patches. Can be
     used for Author, instrument, rating, etc.)
&lt;li&gt;Sort Libraries by patch name or attributes
&lt;li&gt;Automatically eliminate duplicates from libraries
&lt;!-- Sysex or sysex? --&gt;
&lt;li&gt;Import / Export raw Sysex (MIDI System Exclusive Message)
     Data. JSynthLib automatically determines the patch type for sysex
     data if a suitable driver is loaded.
&lt;li&gt;Import MIDI Files and extract containing Sysex Data. JSynthLib
     automatically determines the patch type for sysex data if a
     suitable driver is loaded.
&lt;li&gt;Cut / Copy / Paste patches between Libraries and also banks of
     Patches
&lt;li&gt;Easy Creation of Banks of Patches by Dragging Patches from other
     banks and Libraries
&lt;li&gt;Automatically extract all patches from a bank
&lt;li&gt;Automatically import all patches in a directory and optionally
     auto extract all patches from banks.
&lt;li&gt;Search function to find patches in large libraries
&lt;li&gt;Store Patches to any location on a Synth or to a temporary buffer
     (where supported) for previewing etc.
&lt;li&gt;Receive sysex from Synths (max size 256k)
&lt;li&gt;Request sysex dumps from Synths 
&lt;li&gt;Create new patches or banks
&lt;li&gt;Cross Breed patches to create new patches by combining aspects of
     existing patches
&lt;li&gt;Automatically patch master controller to proper synthesizer to
     preview patch
&lt;li&gt;"Play" function with User selected Note, duration and velocity to
     preview without a MIDI controller
&lt;/ul&gt;

&lt;h4&gt;Editor Features&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Edit patches graphically through on screen sliders, envelopes,
     check boxes, etc.
&lt;li&gt;Send changes to synths in real time (on synths supporting this
     feature)
&lt;li&gt;Automatically patch master controller to proper synthesizer to
     preview patch
&lt;li&gt;"Play" function with User selected Note, duration and velocity to
     preview without a MIDI controller
&lt;li&gt;Allow on screen controls to be manipulated with MIDI
     controllers. This allows you to use a MIDI fader box (such as a
     Peavey PC1600) to edit any synth.
&lt;/ul&gt;

&lt;h4&gt;Extensibility Features&lt;/h4&gt; 

&lt;ul&gt;
&lt;li&gt;New Drivers and Editors can be created relatively easily by
     extending given Java Classes
&lt;li&gt;Widget set (sliders, checkboxes etc) which automatically send
     sysex and interface with patch data
&lt;/ul&gt;

&lt;h2&gt;&lt;a href="#toc" name="install"&gt;Installing JSynthLib&lt;/a&gt;&lt;/h2&gt;

&lt;h3&gt;Step 1: Java Runtime Environment&lt;/h3&gt;

Make sure you have the J2SE JRE (Java Run Time Environment) or SDK
(Software Development Kit) which supports Java 1.4 or later. If you do
not have it, you can download it from &lt;a href="http://java.sun.com"&gt;http://java.sun.com/&lt;/a&gt;.  If you develop a
Java program (for example a JSynthLib synth driver for your synth),
you need SDK.  Otherwise you need JRE. It spends your disk space
less.&lt;p&gt;

Mac OS X comes with java preinstalled. but you should be sure you have
the latest update installed.

&lt;h3&gt;Step 2: MIDI Provider&lt;/h3&gt;

JSynthLib-0.19 and/or later uses MIDI Provider, a platform dependent
layer of the Java MIDI API.  Depends on a version of your Java
Environment, you have to install a MIDI Provider.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Microsoft Windows&lt;/b&gt;

If you have a J2SE version 1.4.2 or newer installed, you don't have to
install a MIDI Provider.&lt;p&gt;

If you use older version of J2SE, download the binary package of &lt;a href="http://www.geocities.com/ggehnen/"&gt;WireProvider&lt;/a&gt; and put
&lt;kbd&gt;WireProvider.jar&lt;/kbd&gt; under &lt;kbd&gt;$JAVA_HOME/jre/lib/ext/&lt;/kbd&gt;
directory and put &lt;kbd&gt;WireProvider.dll&lt;/kbd&gt; under
&lt;kbd&gt;$JAVA_HOME/jre/bin/&lt;/kbd&gt; directory.  ($JAVA_HOME is the root
directory of J2SE installation.)

&lt;li&gt;&lt;b&gt;GNU/Linux&lt;/b&gt;

If you have a J2SE version 1.5 or newer installed, you don't have to
install a MIDI Provider.&lt;p&gt;

If you use older version of J2SE, download the latest
&lt;kbd&gt;LinuxCharDev.jar&lt;/kbd&gt; from &lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
SourceForge site&lt;/a&gt; and copy it under
&lt;kbd&gt;$JAVA_HOME/jre/lib/ext/&lt;/kbd&gt; directory.  Then create a file
&lt;kbd&gt;linuxdevices.conf&lt;/kbd&gt; under the main JSynthLib Directory to
reflect your setup.  Here is an example;

&lt;pre&gt;
/dev/null
/dev/midi
&lt;/pre&gt;

Each line in this file represents one device that you wish to have
accessible in JSynthLib.&lt;br /&gt;

With the LinuxCharDev MIDI Provider no concurrent access of the used
devices is provided. The OSS/"ALSA rawmidi" interfaces are used.&lt;p&gt;

You may also use the Tritonus ALSA MIDI Provider instead of
&lt;kbd&gt;LinuxCharDev&lt;/kbd&gt;. Please see the &lt;a href="http://www.tritonus.org/"&gt;Tritonus: Open Source Java Sound&lt;/a&gt;
web site for further information.

&lt;li&gt;&lt;b&gt;Mac OS X&lt;/b&gt;

&lt;!--If you have a J2SE older than version 1.5 installed, c
1.5 isn't availble for OS X yet, and it probably won't contain a
builtin MIDI provider.--&gt;
At this point (June, 2004) you need to install a MIDI Provider.&lt;p&gt;

Download the latest &lt;kbd&gt;CAProvider.jar&lt;/kbd&gt; from &lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
SourceForge site&lt;/a&gt; and copy it under
&lt;kbd&gt;/Library/Java/Extensions/&lt;/kbd&gt;
(&lt;kbd&gt;~/Library/Java/Extensions/&lt;/kbd&gt; should also work for a single
user installation).&lt;p&gt;

You may use &lt;a href="http://www.cems.uwe.ac.uk/~lrlang/plumstone/"&gt;Plum Stone&lt;/a&gt;
instead of &lt;kbd&gt;CAProvider&lt;/kbd&gt;.
&lt;/ul&gt;

&lt;h3&gt;Step 3: Installing and Invoking JSynthLib&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Download the latest &lt;kbd&gt;JSynthLib-XXX.jar&lt;/kbd&gt; file from &lt;a href="http://www.jsynthlib.org/"&gt;JSynthLib Home Page&lt;/a&gt; or &lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
    SourceForge site&lt;/a&gt; and copy it to any directory (for example
    &lt;kbd&gt;c:\Program Files\JSynthLib\&lt;/kbd&gt; or
    &lt;kbd&gt;~/Applications/jsynthlib/&lt;/kbd&gt;).&lt;p&gt;
    Application bundle may be provided for Mac OS X.

&lt;li&gt;Invoke JSynthLib.
&lt;ul&gt;

&lt;li&gt;[MS Windows] Run JSynthLib.jar &lt;!--either by double-clicking the
    icon or--&gt; by typing &lt;kbd&gt;java -jar JSynthLib-XXX.jar&lt;/kbd&gt; from
    the command prompt.  You may create a shortcut on the desktop to
    JSynthLib.jar.

&lt;li&gt;[GNU/Linux] Run JSynthLib.jar by typing &lt;kbd&gt;java -jar
    JSynthLib-XXX.jar&lt;/kbd&gt; from the shell prompt.

&lt;li&gt;[Mac OS X] Run JSynthLib.jar by typing &lt;kbd&gt;java
     -Dapple.laf.useScreenMenuBar=true -jar JSynthLib-XXX.jar&lt;/kbd&gt;
    from the Terminal. You can also double click the jar file, but then
    each window will have it's own menu bar.
    Application bundle would remove this step.
&lt;/ul&gt;

&lt;li&gt;Go to Window-&amp;gt;Preferences and set preferences (such as look and
    feel, default file directories, default MIDI port, etc.) as you
    wish.

&lt;li&gt;Go to Window-&amp;gt;Synths and add and configure the synthesizers you
    want to use with JSynthLib.
&lt;!--
&lt;li&gt;Quit JSynthLib after you are done configuring it and restart
    it. Now you can go back into it and use it.
--&gt;
&lt;/ul&gt;

&lt;!--
&lt;h4&gt;Mac OS 9&lt;/h4&gt;

JSynthLib can use the javaMIDI library for MIDI I/O. This Library has
been ported to Mac OS 9, so in theory, this could be used to run
JSynthLib on Mac OS 9. Unfortunately, Apple has really dropped the ball
on providing modern Java support for their older Operating System. If
Java JDK 1.4 ever becomes available for Mac OS 9, JSynthLib should be able
to run under it.
--&gt;

&lt;h2&gt;&lt;a href="#toc" name="using"&gt;Using JSynthLib&lt;/a&gt;&lt;/h2&gt;

&lt;h3&gt;&lt;a href="#toc" name="windows"&gt;Windows&lt;/a&gt;&lt;/h3&gt;

There are four main types of windows which you will be working with
when using JSynthLib. Each provides access to a particular type of
data.&lt;p&gt;

&lt;h4&gt;&lt;a href="#toc" name="library window"&gt;Library Window&lt;/a&gt;&lt;/h4&gt;
A &lt;b&gt;&lt;i&gt;&lt;a name="library"&gt;Library window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; holds patches. Different
types of patches can be stored in one library, or you can use a
library to hold only patches for a particular synthesizer.

&lt;p&gt;A Library Window looks like a table where each row
represents one patch.  The columns represent different pieces of
information about the patch.

&lt;p&gt;The columns are:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Synth-- &lt;/b&gt;A shorthand identifier for the synthesizer to which the
patch belongs. For example, if a patch is for a Yamaha TG33
Synthesizer, this field might read "TG33". These identifiers merely
help the user to see what patch goes with each synthesizer and are
merely arbitrary identifiers. The identifier used for each synthesizer
can be changed in the Window-&amp;gt;synths menu.

&lt;li&gt;&lt;b&gt;Type-- &lt;/b&gt; This tells what kind of patch the patch is. The most
common values for this field are "Single" which means the patch
represents a single patch in the synthesizer or "Bank" which means
this patch actually holds an entire bank (set) of patches. Other
values are possible for particular types of synthesizers, for example,
a drum machine would probably have a "DrumKit" type rather than a
"Single" type. Words like "Single", "Multi", and "Bank" are standard
synthesizer jargon. If you are unfamiliar with synthesizer terminology
you should probably brush up in order to use this program.

&lt;li&gt;&lt;b&gt;PatchName-- &lt;/b&gt; Obviously, this is the name of the patch. Note
that this is the name of the patch as it appears in the actual
synthesizer data for the patch, so it suffers the same limitations as
the synthesizer impresses upon its data. For example, if the
synthesizer only allows for 6 characters in a patch name, so will
JSynthLib. Some synthesizers do not support patch names at all, and
most of the time "Bank" type patches will not support names.

&lt;li&gt;&lt;b&gt;field1 / field2--&lt;/b&gt; These two fields hold data outside of the
actual data used by the Synthesizer and can therefore hold values even
for patches belonging to synthesizers which lack patch names. The
meaning of these two fields is user defines, for example, you could
set all of the field1 values in a library to be the name of the author
of the patch and all of the field2 values to be the type of instrument
that the patch is trying to emulate (Guitar/Piano/Drum, etc)

&lt;li&gt;&lt;b&gt;comment--&lt;/b&gt; This is another field which holds data outside of the
actual data used by the Synthesizer. The main difference between
field1 / field2 and comment is that the comment field can hold longer
strings and that you can not sort a library based on the comment
field.
&lt;/ul&gt;
&lt;p&gt;In addition to the table of patches, a library window contains a
footer which tells the number of patches in the library.

&lt;h4&gt;&lt;a href="#toc" name="scene window"&gt;Scene Window&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A &lt;b&gt;&lt;i&gt;&lt;a name="scene"&gt;Scene window&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; looks very much like the library window.
It is intended to gather all patches for different synths, which are
needed in a particular "scene". A "scene" can be a song or a set of
songs - that depends on you. The advantage of a scene is that
it contains the locations for the patches in the synth's memories in
addition to the patches themselves. You can transfer the patches all
together with the "Library-&amp;gt;Transfer Scene" function to the synths.
Very practical for the recall of a specific sound setup.
&lt;p&gt;The columns are:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Synth-- &lt;/b&gt;A shorthand identifier for the synthesizer to which the
patch belongs. It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt;
above.

&lt;li&gt;&lt;b&gt;Type-- &lt;/b&gt; It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt;
above.

&lt;li&gt;&lt;b&gt;PatchName-- &lt;/b&gt; Obviously, this is the name of the patch. 
It's the same as in the &lt;a href="#library"&gt;library window&lt;/a&gt; above.

&lt;li&gt;&lt;b&gt;Bank Number--&lt;/b&gt; This is the first difference to the library.
This column contains the bank number for your patch, since patches are usually
organized in banks in the synthesizers. You can select a bank with a drop-down
menu. The actual content of the drop-down is determined by the patch type and
the architecture of the synth.

&lt;li&gt;&lt;b&gt;Patch Number--&lt;/b&gt; 
This column contains the patch number for your patch within the bank.
Again, you can select a patch number with a drop-down
menu. The actual content of the drop-down is determined by the patch type and
the architecture of the synth.

&lt;li&gt;&lt;b&gt;comment--&lt;/b&gt; This is another field which holds data outside of the
actual data used by the Synthesizer.
&lt;/ul&gt;
&lt;p&gt;In addition to the table of patches, a scene window contains a
footer which tells the number of patches in the scene.

&lt;h4&gt;&lt;a href="#toc" name="bank editor window"&gt;Bank Editor Window&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A &lt;b&gt;&lt;i&gt;Bank Editor Window&lt;/i&gt;&lt;/b&gt; looks like a two dimensional
table/array of patch names and numbers. This represents a bank of
patches for a particular synthesizer. The number of patches in the
bank and the numbering scheme used is dependent on the
synthesizer. For example,the Oberheim Matrix 1000 holds 100 patches in
a bank numbered 0-99, which the Kawai K4 holds 64 numbered 1-A to
16-D.

&lt;h4&gt;&lt;a href="#toc" name="single editor window"&gt;Single Editor Window&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A &lt;b&gt;&lt;i&gt;Single Editor Window&lt;/i&gt;&lt;/b&gt; is by far the most complex window
in the program. This window holds implementation details for one
single patch. Here you can set various parameters that make the sound
of the patch using sliders, checkboxes, comboboxes, etc. The layout of
this window and the controls available depends on the synthesizer to
which the patch belongs.&lt;/p&gt;

&lt;p&gt; Although, the exact layout and function of the controls shown in
the Single Editor will depend on the synthesizer to which the patch
belongs, all Single Editor Windows share much in common.

&lt;p&gt;A Control is an element in the Editor Window which controls a
specific aspect of the patch, such as Filter Cutoff or
Resonance. There are four basic types of controls.

&lt;p&gt;1. a &lt;b&gt;Slider Control&lt;/b&gt; consists of a label, a slider, and a numeric
     readout.. You can tell the current value of the control both
     graphically (by how far the slider is over) and by the value of
     the numeric readout. You can change the value of the control only
     by moving the slider. You can either click to the side of the
     pointer on the slider, drag the pointer, or click on it and then
     use the arrows on the keyboard. In any case, each time the value
     is changed, JSynthLib will send a real-time sysex message to the
     synthesizer (on synths which support real time sysex messages)
     telling it to update the value internally. Some synthesizers may
     take a few seconds to process all the incoming data before being
     available to play a note , making real-time 'tweaking' difficult.

&lt;p&gt;2. a &lt;b&gt;ComboBox Control&lt;/b&gt; consists of a label and a text-field. The
     text-field tells you what the current value of the control is set
     for. Clicking on this text-field will produce a menu from which
     you can choose one of the other values for the control.

&lt;p&gt;3. a &lt;b&gt;CheckBox Control&lt;/b&gt; consists of a label and a checkbox. Clicking
     the check box will turn the setting the control represents on or off.

&lt;p&gt;4. an &lt;b&gt;Envelope Control&lt;/b&gt; consists of a graphical depiction of the
     envelope and a label and numeric display for each parameter the
     envelope controls. Commonly, these parameters will be the Attack,
     Delay, Sustain, and Release parameters for a particular DCA. To
     change a parameter, simply click and drag one of the nodes
     (rectangles) on the envelope. Some nodes control two parameters,
     one on the vertical axis and one on the horizontal. Others
     control only one parameter and are therefore fixed in position on
     one axis. There are also some nodes which do not control any
     parameters and are therefore fixed in position. JSynthLib will
     draw lines connecting all the nodes to show a graphical depiction
     of the envelope given the current settings.

&lt;p&gt;In addition to these controls, there are a number of interface
elements which do not interact with the synthesizer or patch data and
only serve to make the presentation of the data more clear.

&lt;p&gt;1. &lt;b&gt;frames&lt;/b&gt; which surround groups of related controls. For
example a frame labeled "Filter" might surround a group of sliders
labeled "Cutoff", "Resonance", and "Envelope Bias" to show you that
these three parameters are a part of the synth's filter section.

&lt;p&gt;2. &lt;b&gt;tables&lt;/b&gt; which are simply grid-like structures used to
hold parameters. As of version 0.12, only the Oberheim Matrix Editor
makes use of tables. Note that you can click and drag on the table's
headings to change the order in which parameters are displayed.

&lt;p&gt;3. &lt;b&gt;tabs&lt;/b&gt;. By clicking on a tab, you are taken to a
different set of parameters to edit. Sometimes the tabs surround
entire editor screens, but usually they surround only a group of
parameters. For example, In the Yamaha TX81z editor, there are four
tabs, one for each Operator, by clicking on one of them, the section
of controls related to the Operator is set to control the operator you
have chosen.

&lt;p&gt;Although Editing on-screen using a mouse or keyboard is efficient
and all editing functions can be realized this way, JSynthLib also
provides another, optional, method to edit controls-- &lt;b&gt;Faders&lt;/b&gt;.  A Fader
is simply a knob or a slider you might have on a synthesizer or fader
box which sends a MIDI control message, when moved. Almost all
synthesizers have at least one or two, and some advanced ones such as
the Kawai K5000S have as many as sixteen or more. In addition, there
are "Controller Surfaces" you can buy which consist only of Faders
(either as knobs or slider).

&lt;p&gt;These faders are generally used to edit parameters on synthesizers,
but have two major drawbacks. First, they are often designed to work
only on a certain, hardwired parameter or only for a particular
synthesizer. Second, its difficult to picture what's happening when
editing this way, because you don't get any visual feedback. You can't
simply look at a Controller Surface and tell what the current settings
are for the parameters (unless you have a motorized controller
surface).

&lt;p&gt;JSynthLib allows you to overcome these limitations. If you have a
Controller Surface or other source of MIDI Controller Messages which
has at least 16 Faders, you can edit any synthesizer supported by
JSynthLib and see visual feedback on your computer screen.

&lt;p&gt;To set up your controller surface, look under
Window-&amp;gt;Preferences-&amp;gt;MIDI. Look at that section in this documentation
for help on setting these up.
Once set up, when you move a fader, the corresponding control in
the active Editor Window will move. 

&lt;p&gt;As you probably realize, however,
there are usually more than 16 controls in an editor window. This is
where the concept of &lt;b&gt;fader banks&lt;/b&gt; come in. A fader bank is a group of
16 controls which respond to faders. You can choose which bank your
fader movements are sent to either by using the 15th and 16th buttons
on you Controller Surface (if your controller surface supplies buttons
and well has faders) or by using the "Next Fader Bank" Option on the
toolbar. Note that the labels for the controls in the currently
selected fader bank are darkened slightly. To determine which fader
bank and fader number will move a particular control, simply let the
mouse cursor hover over the label for that control and a tool-tip will
pop up with this information.

&lt;p&gt;When you close an editor window, a dialog box will pop up asking
what you wish to do with any changes to the patch. If you choose to
"Revert to Original", then any changes you have made in the editing
session will be lost. If you choose to "Keep Changes", the changes are
stored over the original patch in the library and the original version
is lost. The third option "Revert and send Changes to Clipboard" is
the best of both worlds. The Original patch is kept as in the "Revert
to Original" setting,but the changed version of the patch is placed on
the clipboard. You can then use the Patch-&amp;gt;Paste command to place it
into a patch library of bank of your choosing. This is useful if you
like the new edits you have created, but also like the original patch.

&lt;h3&gt;&lt;a href="#toc" name="menus"&gt;The Menu Functions&lt;/a&gt;&lt;/h3&gt;

&lt;h4&gt;&lt;a href="#toc" name="file menu"&gt;File Menu&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Open-- &lt;/b&gt;This prompts you for a file name and then loads the
previously saved library under that name from disk and displays it on
the screen. Note that if the library is very large, the program might
take several seconds to read it from disk. The filename of the loaded
library is placed on the top frame of the Library Window. This
function is also available from the Toolbar.

&lt;li&gt;&lt;b&gt;Save-- &lt;/b&gt;This saves a library window to disk. The library
window which you wish to save must be the currently focused (active)
window when you choose this option. If the library does not have a
file name, then the program will pop up a save as dialog box just as
if you had chosen the Save As Option instead. This function is also
available from the Toolbar.

&lt;li&gt;&lt;b&gt;Save As-- &lt;/b&gt; this function pops up a file dialog box to ask
you for a new name and then saves the currently focused Library Window
under that name.

&lt;li&gt;&lt;b&gt;Import--&lt;/b&gt; This function will load raw Sysex data and/or MIDI
files from disk into the currently focused Library Window or Bank
Editor Window.  If a driver is installed (under Window-&amp;gt;Synths) which
recognizes the format of this data, then it will be turned into a
patch of the proper type, otherwise it will be listed as "unknown".
This function is also available from the toolbar.

&lt;li&gt;&lt;b&gt;Export--&lt;/b&gt; This function will save the raw Sysex data from the
currently selected patch (in a Library Window or Bank Editor Window)
to disk, stripping away field1, field2, and comment. The data will be
in the raw form suitable for sending to the synthesizer of importing
into another editor for that type of data.

&lt;li&gt;&lt;b&gt;Import All--&lt;/b&gt; This is a powerful function that is very useful
when you first start using JSynthLib. It is designed to quickly import
a large amount of data into a Library Window. If you've been using
other editor or librarian programs to manipulate your synthesizer data
or if you have downloaded patches for your synthesizer from the
Internet, you might have a large patch library that you will want
accessible from JSynthLib. If your patch Library is stored in the
proprietary format of some other Synthesizer Librarian program, you
will have to get that program to export it to the industry standard
.SYX format (raw Sysex Data). The Import All command will take all the
files in a directory and attempt to import them into JSynthLib.&lt;br /&gt;

You will be prompted for several options when you choose this
function. First you must choose a directory to import from The Java
Standard for choosing directories from a file dialog is to
single-click on it so the directory name is highlighted, but do not
enter the directory you wish to import from. If you accidental enter
the directory you wish to import from, back up one level before
hitting the OK button on the file dialog.&lt;br /&gt;

Next, you must choose which types of patches you wish to import at
this time. You will be given a list of each Synthesizer driver you
have installed in your system, each with a checkbox next to it. Check
the box to include that type of patch in your import. If you check the
box for "unknown" then even data that the program does not understand
will be imported. For example, you can use this to create one big
library of all your patches for all your synths, or you can import
only the singles patches for a particular synth in order to create a
library of all your patches for that synth.&lt;br /&gt;

You are also given the option to place the filename from which each
patch came from either in field1 or field2. This is useful if the
patch does not have a name of if you've grown accustomed to referring
to it by its file name.  You are also given the option of
automatically extracting patches from banks. When you import patches,
you might get full banks of patches in addition to singles.  To access
these patches, you must choose to edit the Bank Data. Sometimes this
is desirable, but often you'll want to see all of your Single Patches
at the top level of your library. If this option is checked, any banks
that are imported will be automatically extracted and the patches
taken out and placed in the library (you can do this yourself with the
Patch-&amp;gt;Extract option. If both this option and the option to place the
filename in field1 or field2 are checked, each of the extracted
patches will get the filename followed by their location in the bank
placed in their field. For example " MYSOUNDS1.SYX 34 ".

&lt;li&gt;&lt;b&gt;Exit--&lt;/b&gt; Basically this command just exits the program.
It will &lt;em&gt;not&lt;/em&gt; warn you about unsaved data!
&lt;/ul&gt;
&lt;h4&gt;&lt;a href="#toc" name="library menu"&gt;Library Menu&lt;/a&gt;&lt;/h4&gt;

The Library menu on the menu bar allows you to access a number of
functions to &lt;a href="#library"&gt;Library&lt;/a&gt; and &lt;a href="#scene"&gt;Scene&lt;/a&gt;.
 These functions act on a library or act on all of
the patches in the library. Functions which manipulate a single patch
within a library are located under the Patch Menu. The available
functions in the Library Menu are:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Transfer Scene-- &lt;/b&gt; This transfers all patches of the selected Scene
to their configured places in the synths.

&lt;li&gt;&lt;b&gt;Sort-- &lt;/b&gt; This function will sort all of the patches in a
library by either the type, patch name, field1 or field2 field (the
program will prompt you for the sort field) The sort algorithm used is
stable, so you can for example sort by patch name and then sort by
synth in order to get a library that is sorted by synth type and then
sorted by patch name within each synth type.

&lt;li&gt;&lt;b&gt;Search-- &lt;/b&gt; This function allows you to search for patches
within a library. You enter the text to search for, and where you want
the text to be located, whether in the patch name, field1, field2,
comment, or any of the fields. Then you use the "Find First" button to
locate the first patch matching the search criteria, or the "Find
Next" button to locate the next one.

&lt;li&gt;&lt;b&gt;Crossbreed-- &lt;/b&gt; Crossbreeding patches is a cool way to make
new 'random' patches. Rather than simply sending random data to a
synthesizer (which would likely end up sending it lots of garbage and
out-of-range values), the crossbreed command generates random
combinations of the patches in a library. To use it to best affect,
you need an as-large-as-possible library full of patches for the
synthesizer you wish to create patches for. If the library contains
patches of more than one type,the command will randomly choose which
synthesizer it is creating patches for. &lt;br /&gt;

When you use the crossbreeder, you are shown a dialog with four
buttons. The "Close" button quits the crossbreeder. The "Generate"
button creates a new random patch and plays it for you. The "Play"
button replays the patch in case you want to hear it again. You can
also use the master keyboard controller to play with your random
patch. If you don't like a patch, simply hit generate to create a new
one.  If you find something you like, hit the "Keep" button and your
patch will be appended to the current library. Note that as a random
patch, it will have a random name, so you'll probably want to go in
and give it a more useful name later.

&lt;li&gt;&lt;b&gt;Delete Dups--&lt;/b&gt; This function will search through a library for
identical patches and delete all but one copy. This is most useful
immediately after you have imported all your patches in to
JSynthLib. Many times copies of the same patch are sitting around in
different places on a hard drive. This only deletes patches that are
perfect duplicates, so if as much as one byte is different, they will
not be considered duplicates and will not be deleted. Therefore two
identical patches with different names will not be considered
duplicates by this function.

&lt;li&gt;&lt;b&gt;New Library-- &lt;/b&gt; This creates a new Library which
contains no patches and displays it on the screen. This function is
also available from the toolbar.

&lt;li&gt;&lt;b&gt;New Scene-- &lt;/b&gt; This creates a new Scene which contains
no patches and displays it on the screen.
&lt;/ul&gt;
&lt;h4&gt;&lt;a href="#toc" name="patch menu"&gt;Patch Menu&lt;/a&gt;&lt;/h4&gt;

The Patch menu allows you to access a number of functions which
manipulate individual patches which are located either in a Library
Window, a Bank Edit Window, or (for some functions) in a Single Patch
Editor Window. The available functions in the Patch Menu are:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Copy--&lt;/b&gt; This function copies the currently selected patch to
the clipboard. It will copy the currently highlighted patch from the
currently focused Library Window or Bank Edit Window. If the current
Window is a Single Patch Editor window, then the patch represented by
the current position of the editing controls is copied to the
clipboard. This function is also available from the toolbar and from
the right-click pop up menu.

&lt;li&gt;&lt;b&gt;Cut--&lt;/b&gt; This command simply performs a &lt;em&gt;Copy&lt;/em&gt; command
followed by a &lt;em&gt;Delete&lt;/em&gt; command. It is also available from the
toolbar and from the right-click pop up menu.

&lt;li&gt;&lt;b&gt;Paste-- &lt;/b&gt; This copies a patch from the clipboard to the
currently selected location in a Library Window or Bank Editor
Window. If the currently focused window is a Library Window but no
patch is selected, then the patch will be appended, otherwise it will
be inserted before the selected patch. If the currently focused window
is a Bank Editor Window, then the patch on the clipboard will
&lt;em&gt;replace&lt;/em&gt; the currently highlighted patch. Note also that while a
Library Window can hold any type of sysex data, a Bank Editor Window
is designed to hold only one particular type of data. If the data type
is invalid, the paste will not work. The same is true for the Import
command. This command is also available from the toolbar and from the
right-click pop up menu.

&lt;li&gt;&lt;b&gt;Delete-- &lt;/b&gt; This deletes the currently selected patch in the
currently focused Library Window or Bank Editor Window. If the current
window is a Single Editor Window then this command has no function.

&lt;li&gt;&lt;b&gt;Send-- &lt;/b&gt; This option will send the currently highlighted
patch in the currently focused Library Window or Bank Edit Window to
the proper synthesizer. The idea is to send the data so that you can
test it out. On synths which support it, the data will be sent to a
temporary edit buffer so that no other data in the synthesizer is
overwritten. Unfortunately, not all synths support temporary edit
buffers, so on these synths a set patch (usually the first non-preset)
will be overwritten with the sent data. In order for the send command
to work, the synthesizer corresponding to the patch must be correctly
set up from Window-&amp;gt;synths.

&lt;li&gt;&lt;b&gt;Send to-- &lt;/b&gt; Like Send, this function also sends the currently
selected patch to the synthesizer specified.  This function is also
available from the toolbar.

&lt;li&gt;&lt;b&gt;Store-- &lt;/b&gt; Like Send, this function also sends the currently
selected patch to the correct synthesizer. This option however, will
prompt you for a patch location (bank and patch numbers) on the
synthesizer to store the patch to. It will then store it to the
synthesizer, overwriting whatever patch may already be at that
location. This function is also available from the toolbar.

&lt;li&gt;&lt;b&gt;Get--&lt;/b&gt; This function will receive sysex data from a
synthesizer. When you choose this command, a dialog box will appear,
giving you several options. First, choose which kind of patch you wish
to get from any of the installed synthesizer drivers. Where
applicable, you must also chose a bank and patch number for the patch
to get. Once this is all set, press the 'Get' button. If JSynthLib
knows the correct code to automatically start the sysex dump for your
chosen driver, it will do so. Otherwise, you will be prompted to
manually start the patch dump from the front panel of the
synthesizer. Once JSynthLib receives data from the synth, it will tell
you how many bytes have been received. When the entire sysex dump has
been received, you must decide what to do with it. If you press the
'paste' button, the received patch will be pasted in the currently
focused library. If you wish to discard the received patch, you can
simply press 'get' again to get a different patch or press 'Cancel' to
quit the dialog. When your done press 'done'.

&lt;li&gt;&lt;b&gt;Edit--&lt;/b&gt; Using the Editing command on a Patch for the driver
contains editing support will bring up an Editor Window. This window
will consist of various sliders, checkboxes, and other controls which
can be manipulated to change the patch. The layout and function of
these controls is dependent on the architecture of the synthesizer you
are working with. Your synthesizer manual should give you the
information you need in order to understand how it generates sound and
what the various parameters do. This command is also available from
the right-click menu. See the section under 'Editing Patches' for more
information

&lt;li&gt;&lt;b&gt;Play-- &lt;/b&gt; This command will send the currently selected patch
to the proper synths followed by a MIDI command to play a note.  This
is useful for checking a patch out quickly or without a master
controller keyboard. The specifics on which note is played, how hard
it it hit, and how long it is held can be set in the Note Chooser
Dialog Box, which is accessible from Window-&amp;gt;Preferences-&amp;gt;Play Note. The play
function is also available from the toolbar and from the right-click
menu.

&lt;li&gt;&lt;b&gt;Reassign-- &lt;/b&gt; Each patch is corresponding to a particular
synth Driver.  A patch can be used by more than one kind of synths.
This command select a synth driver.

&lt;li&gt;&lt;b&gt;Extract--&lt;/b&gt; You run the extract command on patches which
represent entire banks of patches rather than singles. Make sure the
bank patch you wish to extract is highlighted in the currently focused
library window. When you choose this option, the bank will be deleted
and replaced with all the single patches which were inside of the
bank. The same effect can be achieved when importing patches by using
an option to the "Import All" command. See that part of the
documentation for more details.

&lt;li&gt;&lt;b&gt;New Patch--&lt;/b&gt; This command creates a new (blank or default)
patch. When you choose this option you will be given a list of the
types of patches you are able to create. (Which patch types are
available depends on which synth drivers you have loaded). The patch
will be added to the currently focused patch library window.

&lt;li&gt;&lt;b&gt;Upload--&lt;/b&gt; Upload a patch to
&lt;a href="http://www.jsynthlib.org/patches/"&gt;JSynthLib Patch Archive&lt;/a&gt;.
&lt;/ul&gt;
&lt;h4&gt;&lt;a href="#toc" name="window menu"&gt;Window Menu&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Synths--&lt;/b&gt; This is where you tell JSynthLib what synthesizers
you have and how they are configured. When you open this window, you
will see a list of the "Synth Drivers" which you have installed. Note
that many synths have more than one Synth Driver, all of which are
installed in order to use all functionality on that synth. The
left-most parameter is a shorthand "ID" for the synthesizer.
JSynthLib doesn't care what this is set to, its simply short name
given to the synth that JSynthLib will use to refer to that
synth. Generally, you will keep the defaults. You might change this,
for example, If you've become accustomed to calling your Yamaha TX81z,
"Yamaha" or "Bob" rather than "TX81z" (the default). The middle
parameter is the name of the driver. To the right are two parameters
which tell JSynthLib how to access the synthesizer. You must correctly
set the MIDI port and channel (Device ID) for your synthesizer. &lt;/p&gt;

&lt;p&gt;Three buttons at the bottom allow more functionality. You can only
add or remove drivers if no Library or Editor windows are currently
opened. The add button pops up a list of all the synthesizers
supported by your version of JSynthLib. You choose one from the list
in order to install it and then configure it as explained above. When
you choose a synthesizer, all the drivers associated with that
synthesizer will be installed. There is also a button to remove, or
uninstall a synthesizer driver, for example if you no longer own a
particular synth. The third button closes the Synth dialog.&lt;/p&gt;

&lt;p&gt;As of version 0.15, there is an additional button called
"Auto-Scan".  When you chose this option, JSynthLib will attempt
to scan your MIDI ports for supported Synthesizers and correctly add
and configure them for you. It is not able to detect certain synths
(such as Yamaha and Roland) and you should double check the settings it
determines for accuracy, but it can still be more convenient then
having to add and configure them all by hand.&lt;/p&gt;

&lt;li&gt;&lt;b&gt;Preferences--&lt;/b&gt;
Preferences dialog is used to configure various settings that determine how
JSynthLib functions.  There are six tabs "General", "Directories", "MIDI",
"Fader Box", "Play Note", and "Repository".
&lt;ul&gt;
&lt;li&gt;Under &lt;b&gt;General&lt;/b&gt;, you can set the look-and-feel which JSynthLib
will use.  You can also change the GUI style, MDI (Multiple Document
Interface: everything in single window) or SDI (Single Document
Interface: each frame has its own window).

&lt;!--
You can also change the Platform on which you are running
JSynthLib. Note that there are two different options for
MS-Windows. This is because JSynthLib provides two different methods
to communicate with MIDI devices under Windows. I recommend using the
WireProvider option.  It seems to work well and can transfer large
sysex messages. The JavaMIDI option is included in case WireProvider
does not work on your set up. If this is the case, you should e-mail
in a bug report, and use JavaMIDI for now.
--&gt;

&lt;li&gt;In the &lt;b&gt;Directory&lt;/b&gt; tab, you can set the default directory from which
JSynthLib will attempt to load and save files. The &lt;b&gt;library path&lt;/b&gt;
determines where the &lt;kbd&gt;.patchlib&lt;/kbd&gt; files are loaded and
saved. The &lt;b&gt;sysex path&lt;/b&gt; is used by the import and export commands.

&lt;li&gt;The &lt;b&gt;MIDI&lt;/b&gt; tab holds MIDI settings.  The parameter called &lt;b&gt;Run
Initialization on MIDI ports&lt;/b&gt; only needs to be played with if
JSynthLib tells you to on startup or if you want to free the ports for
another program. Basically, it needs to grab a couple of MIDI ports on
your system when it starts up to initialize itself. Normally it just
grabs the first ones it sees and thats fine. On some systems though,
the first MIDI ports will be in use by some other program, or you'll
want them left alone for some other program to use. Most MIDI port
drivers allow more than one program to use the port, but not
all. These parameters just give you the most control possible.

&lt;p&gt;&lt;b&gt;MIDI Loopback Test&lt;/b&gt; button brings up a dialog to do
diagnostic test of your MIDI port.
&lt;!-- add more description --&gt;

&lt;p&gt;The &lt;b&gt;Master Controller Port&lt;/b&gt; determines which MIDI port JSynthLib
will watch for Notes being played. If notes are played (for example
from a MIDI keyboard or MIDI sequencer) on this port, JSynthLib will echo them to
whatever Synthesizer you are currently working with. (Either by having
an editor open in the foreground or having a library open in the
foreground and having a patch selected). This allows you more
controlling auditioning patches than just using the "play" command. If
you have no master controller or don't want to use one, disable
&lt;b&gt;Enable Master Controller&lt;/b&gt; check box.

&lt;li&gt;The &lt;b&gt;Fader Box&lt;/b&gt; tab allows you to configure your fader box if you want to
use one. A fader box can be useful when editing patches, see the
section of this documentation on editing patches for details of what
they do. If you want to enable faders, you just check the enable box
and set the fader port to the port on which you want to receive
faders. Note that due to a bug in the MIDI routines used, JSynthLib
will also receive faders on the master controller port.

&lt;p&gt;JSynthLib recognizes up to 16 Sliders/Knobs and up to 16
Buttons. You can configure which MIDI controller number and channel number
will recognized as each button and slider. You can either do this by
hand, or use one of the preset buttons. The Kawai K5000 is set to
respond to the 16 knobs on your Kawai as the 16 sliders and ignore the
buttons. The Peavey PC1600 preset simply responds to controller 24 on
channels 1-16 as sliders 1 through 16 and controllers 25 on channels
1-16 as buttons 1-16. Its up to you to configure your PC1600 to send
these values (its very easy).

&lt;p&gt;Note that if you are using buttons, buttons 15 and 16 are special
purpose, they increment or decrement your fader bank by one.

&lt;p&gt;There is also a variable for most recent fader (&lt;b&gt;Active Slider&lt;/b&gt;). If this controller
is received it is patched to whatever fader has been accessed most
recently. For example you could set your mod wheel to send to
whichever fader you've used most recently.

&lt;li&gt;When you choose the 'play' command to hear a sound, the patch is
played at a particular note, velocity and duration. The &lt;b&gt;Play Note&lt;/b&gt;
tab allows you to determine what note, velocity and duration are
used.

&lt;li&gt;&lt;b&gt;Repository&lt;/b&gt; tab set up settings for uploading patch.
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;MIDI Monitor--&lt;/b&gt; Open MIDI Monitor window.  This is useful for
trouble shooting.
&lt;/ul&gt;
&lt;h4&gt;&lt;a href="#toc" name="popup menu"&gt;Pop-up Menu&lt;/a&gt;&lt;/h4&gt;

If your right-click on a patch in a Library Window or a Bank Editor
Window, a menu will appear which allows you to manipulate the patch in
various ways. All of the functions on this menu are also available
from the menu bar and a description of what they do can be found under
their menu bar entries in this documentation.

&lt;h2&gt;&lt;a href="#toc" name="synths"&gt;Notes on Particular Synths&lt;/a&gt;&lt;/h2&gt;

Windows -&amp;gt; Synths -&amp;gt; Show Details -&amp;gt; Information shows you
issues relating only to the use of JSynthLib with particular
synthesizers.

&lt;!--
&lt;em&gt;In this section of the documentation, issues relating only to the
use of JSynthLib with particular synthesizers will be discussed&lt;/em&gt;

&lt;p&gt;&lt;b&gt;Boss-DR660&lt;/b&gt;- It is not possible to edit effects settings on the
Boss-DR660 with JSynthLib, but all other editing functions are
available.

&lt;p&gt;&lt;b&gt;Emu Proteus MPS&lt;/b&gt;- This synthesizer lacks a MIDI addressable
patch buffer. Therefore, when you send or play a patch from within
JSynthLib, the patch at location 100 on the Proteus will be
overwritten.  JSynthLib treats this location as an edit buffer.

&lt;p&gt;&lt;b&gt;Ensoniq ESQ-1&lt;/b&gt;- Whenever JSynthLib sends a Patch to the ESQ, the
synthesizer will go to a screen where you must hit 'exit' on the front
panel before you can send another patch. This is kind of annoying, so
if anyone knows a way around this let me know. The other ESQ
librarians I checked out had the same problem, so it may be
impossible.

&lt;p&gt;&lt;b&gt;Kawai K4 / K4r&lt;/b&gt;- There are no known issues or problems with this
synthesizer 

&lt;p&gt;&lt;b&gt;Kawai K5000&lt;/b&gt;- The 'crossbreed' option does not work with this
synth. Also, note that changes made to patches in the K5000 will be
lost when you turn it off, unless you perform the backup to
non-volatile ram from the front panel. Also, Patch A01 will be used as
the MIDI edit buffer.

&lt;p&gt;&lt;b&gt;Oberheim Matrix 1000&lt;/b&gt;- I've noticed that this synthesizer
responds slowly to changes of certain parameters, such as the
Modulation Matrix. This is a limitation of the synthesizer, not of
JSynthLib.  Luckily, the slow response parameters tend not to be the
ones you would want to tweak in real time.

&lt;p&gt;&lt;b&gt;Oberheim Matrix 6 / 6r&lt;/b&gt;- I've had one report that the Single
Driver and the Single Editor for the Matrix 1000 also work with these
synths, but that the Bank Driver does not, since these use a different
bank format. Can anyone verify this?

&lt;p&gt;&lt;b&gt;Yamaha TG33&lt;/b&gt; There are no known issues or problems with this
synthesizer. I am looking for information which would allow me to write
a Single Editor for this synth.

&lt;p&gt;&lt;b&gt;Yamaha TX81z&lt;/b&gt;- It is possible to make the TX81z's internal MIDI
buffer overflow if you send it too much Data too quickly. This should
only happen if you are using a fader box and throwing the faders
around rapidly.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Yamaha DX7/TX7/DX7-II/DX7s/TX802&lt;/b&gt;- There are no known issues or problems with this
synthesizer. I am looking for MIDI specification of the DX1 and DX5 to
extend the support to these synthesizers.

&lt;p&gt;&lt;b&gt;Yamaha DX21/DX27/DX100- &lt;/b&gt; These synths all use the same editor,
since they are compatible, however some parameters will not have an
effect on the sound on all three synths.

&lt;p&gt;&lt;b&gt;Yamaha FS1R&lt;/b&gt;- The common manner of working with the driver is
 first to create a FS1R bank (or to open one). Then you should be able
 to edit a performance by selecting it in the bank. The performance has
 four parts that can make reference to internal voices or ROM voices (A-K).
 When the performance is edited, all the voices are sent to the FS1R.
 When you edit an internal voice of a performance, it is the voice of the
 bank, not the one in the synth memory. So when you close an editor window
 the bank patch is updated or stored in the JSynthLib clipboard. If you want
 to store the patch in the FS1R you have to do it manually for each component
 of the performance (performance an voices).
--&gt;

&lt;h2&gt;&lt;a href="#toc" name="trouble"&gt;Troubleshooting JSynthLib&lt;/a&gt;&lt;/h2&gt;

&lt;!--
&lt;b&gt;&lt;i&gt;[Windows]&lt;/i&gt; I can't get the MIDI to initialize. I've tried
setting the initialization ports to every port in my system, but I
still get an error on startup&lt;/b&gt;&lt;br&gt;

This usually happens if you are using the JavaMIDI driver.  Go into
Window-&amp;gt;Preferences-&amp;gt;General and set 'MIDI Platform' to MS-Windows
(WireProvider). When using the JavaMIDI drivers, certain MIDI devices
just refuse to work.
--&gt;

&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;MIDI Loopback Test works fine.  But JSynthLib
cannot send to MIDI data to my synth and/or cannot receive MIDI data
from my synth.&lt;/b&gt;&lt;br /&gt;

Make sure "MIDI In Port" and "MIDI Out Port" in Windows -&amp;gt; Synths
dialog is setup correctly.  Note that MIDI port setting in Windows -&amp;gt;
Preferences -&amp;gt; MIDI is not used for data transfer between JSynthLib
and your synth.

&lt;!--
&lt;p&gt;&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;I changed some settings in JSynthLib to values
that don't work. Now I can't even get it to run well enough to change
them back!&lt;/b&gt;&lt;br&gt;

Delete the file called &lt;kbd&gt;PatchEdit.config&lt;/kbd&gt; in your JSynthLib
Directory. Now JSynthLib will go back to it's default settings the
next time it is run and you can re-configure it.
--&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;[Windows]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
It is saved in Windows Repository,
&lt;kbd&gt;HKEY_CURRENT_USER\Software\JavaSoft\Prefs&lt;/kbd&gt;.

&lt;p&gt;&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;Where is the JSynthLib setting is saved?&lt;/b&gt;&lt;br /&gt;
It is saved in &lt;kbd&gt;~/.java/&lt;/kbd&gt;.

&lt;!-- add information for Mac OS X--&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;[GNU/Linux]&lt;/i&gt;All the fonts have way to much space between
the letters and look awful!&lt;/b&gt;&lt;br /&gt;

This is a Java issue under GNU/Linux. Supposedly it can be fixed by
tweaking your fonts.properties file, but I haven't been able to get it
to look right. Anyone have a fix for this?

&lt;p&gt;&lt;b&gt;&lt;i&gt;[General]&lt;/i&gt;What information should I give when I report a
bug?&lt;/b&gt;&lt;br /&gt;

If you run JSynthLib with the parameter '2' as in &lt;kbd&gt;java JSynthLib 2
&amp;gt; outputfile&lt;/kbd&gt;, JSynthLib will place debug information regarding any errors
that occur in the file 'outputfile'. Sending this file with your bug
report would be useful. Also, make sure to include all relevant
information about what you were doing when the bug occurred and what
your system setup is like.

&lt;h2&gt;&lt;a href="#toc" name="contrib"&gt;Contributing to JSynthLib&lt;/a&gt;&lt;/h2&gt;
If you like JSynthLib and want to contribute, you can do this in many ways:
&lt;ul&gt;
&lt;li&gt;bug reports
&lt;li&gt;suggestions how to improve the usability or functionality
&lt;li&gt;providing wanted documentation of synthesizers or others
&lt;li&gt;writing/improving JSynthLib's documentation
&lt;li&gt;writing bugfixes
&lt;li&gt;writing own drivers and editors
&lt;li&gt;adding support of other platforms/OS (JavaSound MidiProvider)
&lt;li&gt;improving the JSynthLib core
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
SourceForge site&lt;/a&gt; maintenance
&lt;li&gt;...
&lt;/ul&gt;

The common place to address your notes should be the Tracker on &lt;a href="http://sourceforge.net/projects/jsynthlib/"&gt;JSynthLib
SourceForge site&lt;/a&gt; or
&lt;a href="mailto:jsynthlib-devel@lists.sourceforge.net"&gt;jsynthlib-devel mailing list&lt;/a&gt;.

&lt;p&gt;If you want write bug fixes, additional drivers/editor or core elements please take
a look at the &lt;a href="./programming.html"&gt;JSynthLib Programmer's Guide&lt;/a&gt;.

&lt;h2&gt;&lt;a href="#toc" name="acknowledgment"&gt;We wish to say thank you to....&lt;/a&gt;&lt;/h2&gt;
...a large number of contributors. Currently the list is not included here,
because we would forget one or two for sure. So we left them out complete.
&lt;p&gt;
But we would like to say "thank you" to the people outside of the JSynthLib development team
who gave us some time saving code examples and ideas:
&lt;ul&gt;
&lt;li&gt;Joakim Eriksson for his DKnob widget (see at 
&lt;a href="http://www.dreamfabric.com/"&gt; www.dreamfabric.com &lt;/a&gt;).
&lt;/ul&gt;

&lt;/font&gt;




&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">frankie</dc:creator><pubDate>Sun, 17 Feb 2013 11:25:40 -0000</pubDate><guid>https://sourceforge.net4720554739f575c6c6c1e0333dd197b918cc7f1b</guid></item></channel></rss>