On Sat, 2008-01-26 at 19:16 +0100, Dennis Schulmeister wrote:
Just a litte question to better understand your idea.
How would a
sequencer request a certain patch on a certain channel on a certain
port?
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 throughy the JSM, the JSM providing all
necessary info to the sequencer and changing connections.
With plain MIDI the sequencer would just send the
appropriate control
change / program change values on the given channel and midi port.
Without knowing which device would interpret the values in which way.
How would that be different with an abstraction layer? How could an
abstraction layer assure that a given PC/CC value pair would always
refer to a certain kind of patch? Regardless of the system and
synthesizer setup employed.
Obviously there would be some kind of translation. But
who would define
the translation rules? Who would define what kind of patches JSM can
handle and which not. The JSM developers might come up with a "snappy
synth bass". All a user would have to do was to tell JSM how to select a
"snappy synth bass" patch on a given synthesizer.
But they might not come up with a "blurry sound
from space which sounds
like a cat screaming when its tail gets clamped by the door". The user
wouldn't be able to reliably select such a patch. Simply because it
wouldn't be offered to him. On the other hand he could extend the
translation rules to offer such a patch. But than again it wouldn't work
on a foreign setup.
The minimum the abstraction layer would do, is automatic switching
between profiles. One per environment. This way you would not have to
adapt everything on each iteration of working on a project in turns.
Patch selections could be stacked. One selection for each environment.
The next thing could be virtual ports to represent roles in the project.
Roles like drum-module or lead-synth.
Then replacing unavailable patches with patches that are similar as far
as that can be discerned from meta-data.
--
Thorsten Wilms
thorwil's design for free software:
http://thorwil.wordpress.com/