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