--- a
+++ b/hexter.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+  <head>
+    <title>hexter DSSI plugin</title>
+    <link rel="stylesheet" href="screen.css" media="screen">
+  </head>
+  <body>
+  <table summary="visual layout"><tr><td>
+  <img src="hexter-icon.jpg" width=144 height=144 alt="hexter icon">
+  </td><td>
+  <h1>hexter</h1>
+  <h2>Yamaha DX7 modeling DSSI plugin</h2>
+  </td></tr></table>
+  <p id="nav">
+  <a href="index.html">DSSI main page</a>
+  &ndash;
+  <a href="download.html#hexter">hexter download</a>
+  </p>
+  <h2>Introduction</h2>
+  <p>hexter is a software synthesizer that models the sound generation of
+  a Yamaha DX7 synthesizer.  It can easily load most DX7 patch bank
+  files, accept patch editing commands via MIDI sys-ex messages, and
+  recreate the sound of the DX7 with greater accuracy than any
+  previous open-source emulation (that the author is aware of....)</p>
+  <p>hexter operates as a plugin for the Disposable Soft Synth
+  Interface (DSSI).  DSSI is a plugin API for software instruments
+  (soft synths) with user interfaces, permitting them to be hosted
+  in-process by Linux audio applications.  More information on DSSI
+  can be found on the <a href="index.html">DSSI main page</a>.
+  <p>hexter is written by Sean Bolton, and copyright (c)2004 under the
+  GNU General Public License, version 2 or later. While this
+  software is 'free' within the requirements of that license, I
+  (Sean) would appreciate any or all of the following should you
+  find hexter useful:</p>
+  <ul>
+    <li> an email stating where you're from and how you're using
+        hexter, sent to &lt;musound /at/ jps /dot/ net&gt;.
+    <li> copies of or links to music you've created with hexter.
+    <li> any favorite patches you create for hexter, or any patches
+        that work on a real DX7 but not on hexter.
+    <li> suggestions for improving hexter.
+  </ul>
+  <p>hexter benefited greatly from previous open-source efforts, most
+      notably Juan Linietsky's rx-saturno, and <a
+      href="http://www.fluidsynth.org/">FluidSynth</a> by Peter
+      Hanappe, et al. See the AUTHORS file in the hexter
+      distribution for more details.</p>
+  <h2>Requirements</h2>
+  <p>hexter requires the following:</p>
+  <ul>
+    <li> <a href="download.html">DSSI</a> version 0.4 or greater.
+    <li> <a href="http://plugin.org.uk/liblo/">liblo</a> version
+        0.12 or greater, a library implementing the Open
+        Sound Control protocol.
+    <li> <a href="http://www.freedesktop.org/software/pkgconfig/">
+        pkgconfig</a> with PKG_CONFIG_PATH set appropriately to pick
+        up DSSI and liblo.
+    <li> <a href="http://www.gtk.org/">GTK+</a> version 1.2.x.
+    <li> the <a href="http://www.ladspa.org/">LADSPA</a> v1.x SDK.
+    <li> the <a href="http://www.alsa-project.org/">ALSA</a>
+        headers (DSSI plugins use ALSA structures, but not
+        the actual drivers, so you don't necessarily need the
+        drivers installed.)
+    <li> a working DSSI host.  hexter has been tested with the
+        jack-dssi-host available in <a href="download.html">the DSSI
+        distribution</a>.
+  </ul>
+  <h2>Download and Installation</h2>
+  <p>hexter may be downloaded from <a
+  href="http://sourceforge.net/project/showfiles.php?group_id=104230&package_id=134428">here</a>.</p>
+  <p>hexter uses GNU autoconf and automake, and pkgconfig, so
+  installation is only slightly more complicated than
+  `<code>./configure &amp;&amp; make &amp;&amp; make install</code>'.  See the
+  README file for specifics.
+  <h2>Screenshot</h2>
+  <p>This mostly-boring screenshot shows the GUIs for two instances of
+  hexter.  Note that sys-ex editing is currently being used in the
+  channel 1 instance (details below).</p>
+  <img src="hexter-screenshot.png" alt="hexter screenshot">
+  <h2>Operation</h2>
+  <p>To run the hexter plugin under the <code>jack-dssi-host</code> provided
+  in <a href="download.html">the DSSI distribution</a>, I do the
+  following:</p>
+  <ol>
+  <li><p>Start <a href="http://jackit.sourceforge.net/">JACK</a>.</p>
+  <li><p>Start <code>jack-dssi-host</code>, supplying the correct
+    plugin path and filename (substitute <code>&lt;prefix&gt;</code>
+    as appropriate):</p>
+    <code>
+    $ DSSI_PATH=&lt;prefix&gt;/lib/dssi sudo jack-dssi-host hexter.so
+    </code>
+    <p><code>jack-dssi-host</code> should start, and moments later the hexter
+    graphic user interface should appear.</p>
+  <li><p>Use aconnect or <a href="http://www.suse.de/~mana/kalsatools.html">
+    kaconnect</a> to connect <code>jack-dssi-host</code> to a MIDI
+     source, such as <a
+     href="http://www.alsa-project.org/~iwai/alsa.html">vkeybd</a>.</p>
+  <li><p>Begin playing sounds!  If you get no response, try selecting the
+    `Configuration' tab in the hexter GUI, and click the `Send Test
+    Note' button.  This sends a note directly via the host to the
+    plugin, so if you hear sound now, look for a problem between the
+    host and your MIDI source.  If you still don't hear sound, I'd
+    look for a problem between the host and your output device.  If
+    you continue having trouble, you might recompile with
+    <code>DSSP_DEBUG</code> bit 2 set, which will cause the plugin
+    to continuously output a quiet buzz to help debug your outgoing
+    signal path.</p>
+  </ol>
+  <p>hexter starts up with a default set of sound presets, or `patches',
+    that you can select either by selecting the GUI
+    `Patches' tab and clicking on the patch name, or by
+    sending a MIDI program change from your MIDI source with the
+    appropriate program number.</p>
+  <h2>Patch Import/Export</h2>
+  <p>hexter can import DX7 patch bank files in two formats:</p>
+  <ul>
+  <li><p>The standard 32-voice bulk dump sys-ex format.  These are 4104
+   bytes long, and you can find a million of them by Googling for "dx7
+   patches".  hexter places no restrictions on their filenames.</p>
+  <li><p>Raw packed patch data. These are 128 bytes per patch, and may
+  contain any number of patches (although hexter can only load up to
+  128 of them.)  These must have the filename suffix
+  "<code>.dx7</code>" for hexter to recognize them.</p>
+  </ul>
+  <p>You may use the "<code>Import Patch Bank...</code>" option in
+  the <code>File</code> menu to import patches.  After selecting the
+  filename, you will need to specify the program number (0 to 127)
+  at which to begin importing the patches.
+  <p>Several patch bank files are installed with hexter in
+  <code>&lt;prefix&gt;/share/hexter/</code>.</p>
+  <p>You may also export patch banks using the <code>File</code> menu
+  "<code>Export Patch Bank...</code>" option.  You can then select
+  which of the formats to save in, and what range of patches to
+  export.  Finally, select the filename to which you want to save --
+  hexter will not (yet) supply the "<code>.dx7</code>" extension for
+  raw patch dumps, so make sure you do.
+  <h2>Synthesizer Configuration</h2>
+  <p>On the `Configuration' tab of the hexter GUI,  there are four
+    controls for configuring hexter:</p>
+  <ul>
+  <li><p>tuning: sets the tuning of this instance of the plugin,
+      as Hz for A-above-middle-C.</p>
+  <li><p>polyphony (instance): Sets the maximum polyphony for this instance
+    of the plugin.  If you attempt to play more notes than this
+    setting, already-playing notes will be killed so that newer
+    notes can be played.</p>
+  <li><p>polyphony (global): Sets the maximum polyphony for all hexter
+    instances running on this host.  If you are getting xruns, try
+    reducing this setting.</p>
+  <li><p>monophonic modes: sets poly/mono operation for this instance of
+    the plugin to one of the following:</p>
+    <ul>
+    <li>`Off'  - polyphonic operation.
+    <li>`On'   - monophonic operation, where the envelopes are
+             retriggered upon each incoming note on event. 
+    <li>`Once' - monophonic operation, where the envelopes are triggered
+             only on the first note on of a legato phrase -- that
+             is, if you hold one note while playing a second, the
+             envelopes will not be retriggered for the second note. 
+    <li>`Both' - monophonic operation, where the envelopes are
+             retriggered at each note on, and upon note off when
+             other keys are still held.
+    </ul>
+  </ul>
+  <h2>Sys-Ex Patch Editing</h2>
+  <p>hexter does not include a user interface for editing patches, but it
+  can receive MIDI system exclusive messages from you favorite patch
+  editor/librarian.  <a
+  href="http://www.jsynthlib.org/">JSynthLib</a> works well in
+  combination with the ALSA <code>virmidi</code> device, or you can
+  try the ncurses-based editor included with hexter (see
+  <code>extra/tx_edit.c</code>).</p>
+  <p>Sys-ex patch editing is enabled on the
+  `Configuration' tab by depressing the `Enable
+  Sys-Ex Editing' button.  The hexter GUI then creates an
+  ALSA MIDI client and displays its client and port number in the
+  status window below the `Sys-Ex Receive Channel'
+  slider.  Set the channel appropriately and route your patch editor
+  to this port using aconnect or similar, and the hexter instance
+  will be ready to receive patch edits.</p>
+  <p>Patch edits accumulate as an `overlay' replacing the current
+  patch. Clicking the `Discard Changes' or selecting another patch
+  from the `Patches' tab will discard the edits.  Clicking `Save
+  Changes into Patch Bank' will allow you to do just that.</p>
+  <p>Note that hexter only <i>receives</i> MIDI sys-ex messages, and
+  does not send them.  Also, it only receives single patch dumps and
+  voice parameter changes, so any `get patch data from synth' or
+  `send 32 voices to synth' functions of your librarian will not
+  work -- any patch you wish the edit must originate in your
+  librarian, or you must export it from hexter first as a file, then
+  load it into your librarian from that.</p>
+  <h2>MIDI Controller Mapping</h2>
+  <p>Currently, hexter responds to pitch bend and sustain pedal controls.
+  Other controls will be implemented soon....</p>
+  <div align=right><small>Page hosted by <br><a href="http://sourceforge.net/"><img src="http://sourceforge.net/sflogo.php?group_id=104230&type=1" border="0" alt="SourceForge.net Logo"/></a></small></div>
+  </body>