Mark Knecht wrote on Mon, 23-Feb-2004:
Jesse Chappell wrote:
> In addition, work is being done on midi-over-JACK
which will provide
> sample accurate timestamped midi events via a new jack port type. Programs
> that use this interface will get all the benefits of sample-synced
> realtime performance from their sampler/synth, plus the ability
> to render accurately non-realtime when JACK is in "freewheel" mode.
Please explain to me how any of this is supposed
to work for the big
world out there using Windows and Mac sequencer platforms. Today we are
*all* using GSt on separate boxes for our sequencers. I just don't see
it. These platforms are going to generate a MIDI event. They don't know
a GSt MIDI event from an LS MIDI event. LS is going to play the note
when it receives the MIDI event. How can it do anything differently?
MIDI itself doesn't send a timestamp. How's that supposed to work?
If your only conduit to that separate machine is via a purely MIDI interface,
this initial effort isn't going to help you...
Even in the case of the VSTi wrapper on the
Windows platforms (as
has been discussed) I cannot understand that even if you can timestamp a
MIDI event before you send it over Ethernet (and I'm not sure you can
accurately enough in those environments) how are you going to do this
when there is jitter in the clocking on those systems?
The stuff i mentioned above only helps things when the sound producing
software runs on the same JACK graph as the midi event producing
software. Thus, only on the same machine.... at the moment.
I'll submit that on a Linux only set of boxes
(well, possibly
plural) it may be very possible to do something non-standard and get it
to work, although I'd like to now what the latency overhead is going to
be. If that's what you're going for then that could be cool for Linux
only users. (Not the goal ofthe LS project I thought, but I've certainly
been wrong before.)
The underpinnings of midi-over-jack should be able to bridge to the local host's
existing hardware (and software) MIDI api (ALSA, CoreMidi, etc)
but once it hits that (and out to another machine in realtime)
the whole picture is unchanged from your multi-machine gigastudio
perspective.
jlc