>Haven't written anything using MIDI and JACK (or LADSPA), but would it be poss >ible to have a such system as with Cubase where the softsynths are plugins whi >ch receive time-stamped MIDI events (time-stamp is an offset from the block be >ginning in samples). The MIDI-through events that come into sequencer from the > external MIDI (in) port always have an offset of zero so the synth renders th >e data starting from the first sample in that block. Maybe we need an object w >hich includes Jack an use the timing information to call connected LADSPA plug >ins with the ability to read MIDI events from a stream anc synchronize the MID >I events to audio events using audio clock source and separate tempo map (like > in DirectMusic). Something which integrates the all separate pieces in audio >API's (JACK, LADSPA) but also includes MIDI events and the timing and connecti >ons between them.
none of this, alas, addresses the more fundamental question of how to do the timing correctly. without something like the hard-timer patch, its more or less impossible to do MIDI sequencing correctly under linux. of course, you can do it "well enough" with existing mechanisms, but the reason most people haven't noticed this yet is that there is fairly strong division between audio + MIDI software. its only when *this* MIDI event needs to be delivered at audio frame N that you start to see the problems. there is no way to accurately schedule anything under Linux with hard-timers unless by accurately you mean either "resolution = HZ" or "resolution = RTC Hz" or "resolution = audio interrupt frequency". this was the basis of a long exchange about CLOCK_MONOTONIC on lad recently. --p