Hi Audun,
Thank you for answering.
  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 think that contradicts to what Thorsten wrote:
  I think the patch selection would be more part of the
JSM than the
 sequencer, but the details must be figured out in collaboration with
 sequencer authors. So it wouldn't be the sequencer requesting a patch,
 but rather patch selection through the JSM, the JSM providing all
 necessary info to the sequencer and changing connections. 
Thorsten also writes about JSM providing info to the sequencer. But as I
understand it the trick is that the sequencer tells JSM what sound it
wants so that JSM can find and select an appropriate patch from one of
the available synthesizers.
I think such a scheme could be implemented without a change to the
sequencers. JSM being in between the sequencer and the synthesizers
would receive the patch changes (PC / CC) from the sequencer and perform
a translation to them before sending them to one of the synthesizers.
+-Sequencer-+         +-----JSM-----+                      +---------+
|           |         |             |    --CC 32 / PC 56-->| Synth A |
| #TRACK 1# |-PC 32---|->Synth Bass-|-\ /                  +---------+
|           |         |             |  X
| #TRACK 2# |-PC 06---|->Rhodes EP--|-/ \                  +---------+
|           |         |             |    --PC 98---------->| Synth B |
+-----------+         +-------------+                      +---------+
That's how I understand it: JSM implements a standard patch list. Much
like the General MIDI patch list (only more comprehensive). When JSM
receives a patch change it makes use of the user provided synth profile
in order find a synthesizer and to select a fitting patch from it.
There's no need for JSM to talk back to the sequencer since it wouldn't
make any difference.
But it could be even easier:
  From the outside, the computer can be dealt with like
a single
 compound synthesizer. Different synthesizers can be triggered from
 ranges on a single keyboard (key splits). Synthesizers can be layered.
 The whole setup can be switched with program changes. 
In such a scenario the sequencer (or master keyboard) wouldn't need to
bother about patch selection at all. Patch selection would be entirely
JSM's domain:
+-Sequencer-+         +-----JSM-----+                      +---------+
|           |         |             |    --CC 32 / PC 56-->| Synth A |
| #TRACK 1# |---------|->Synth Bass-|-\ /                  +---------+
|           |         |             |  X
| #TRACK 2# |---------|->Rhodes EP--|-/ \                  +---------+
|           |         |             |    --PC 98---------->| Synth B |
+-----------+         +-------------+                      +---------+
Yours sincerely,
Dennis Schulmeister
--
Dennis Schulmeister - Schifferstr. 1 - 76189 Karlsruhe - Germany
Tel: +49 721/5978883 - Mob: +49 152/01994400 - eMail: dennis(a)windows3.de
Now moved to the corridor: Hermes! (
http://ncc-1701a.homelinux.net)
(mostly German)
http://www.windows3.de - 
http://www.denchris.de
http://www.audiominds.com - 
http://www.motagator.net/bands/65
<GunPG KeyID: B8382C97>
On Sun, 2008-01-27 at 00:24 +0100, Audun Halland wrote:
  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-
 _______________________________________________
 Linux-audio-dev mailing list
 Linux-audio-dev(a)lists.linuxaudio.org
 
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev