Dennis Schulmeister wrote:
So the idea is to decouple patch selection from the
sequencers. A
sequencer would just send MIDI data to a MIDI port offered to it by JSM.
JSM in turn would provide the necessary means to select a patch from any
synthesizer available.
The idea is to provide the JSM with a patch and synth (and other
metadata) database,
and a mechanism for sequencers to connect to and query the database. So
patch selection
will happen in the sequencer in the classical sense: I imagine that a
"patch" database entry
will contain the necessary information the sequencer needs in order to
get the right
sound from it's midi tracks: The port to connect to (A JSM jack midi
input port), the midi
channel and the required program and bank changes. The only thing that
changes inside
the sequencer is that it doesn't have to care about midi metadata, it
gets it for free from the
JSM. The sequencer is entirely free as to whether it wants to read the
JSM database or not.
The same old midi data is sent, and it can be set up by hand using low
level midi numbers
if one wants that instead.
Of course for such a feature an arbitrary large library of meta-data of
all patches of all MIDI-capable synthesizers ever built and written
would be needed. :)
Metadata for most synths are available via a simple google search. The
plan for JSM is to
be able to read and import the standard instrument definition formats
and put the instrument definitions in
it's database, ready for sequencers to read. Some of the patch
categorization has to be set up
by hand, but some of it could also be automated due to the nature of
naming patches what they
sound like: A patch that sounds like a piano will likely have "piano"
somewhere in its patch name,
and JSM will hopefully correctly deduce that it belongs in the "piano"
category.
-Audun Halland-