Re: [LAD] JACK Synthesizer Manager Proposal

From: Dennis Schulmeister <linux-audio-dev@email-addr-hidden>
Date: Sun Jan 27 2008 - 13:55:51 EET

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@email-addr-hidden
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@email-addr-hidden
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Sun Jan 27 16:15:19 2008

This archive was generated by hypermail 2.1.8 : Sun Jan 27 2008 - 16:15:19 EET