Sorry to be late to this little party, but that's timezones for you ...
Emanuel Rumpf wrote:
2010/1/29 Folderol <folderol(a)ukfsn.org>rg>:
> On Fri, 29 Jan 2010 18:16:03 +0100
> Emanuel Rumpf <xbran(a)web.de> wrote:
>
>> I don't know if this is known:
>> Yoshimi 054 pre2 and pre4 both disconnect from jack, when pressing
>> many keys (~10) at the same time on my midi keyboard.
>> This does not happen with yoshimi 038
>>
>>
> Cant repeat that here. Are you using jack-midi or alsa-midi? I'm using
> alsa-midi.
> I can stick both arms down flat across the keyboard without it
> disconnecting - get rather a lot of xruns though!
That's one of my standard QA tests, perhaps the only standard QA test I
regularly apply. Xruns I get, disconnects I don't.
I've connected the keyboard through jack-midi to
yoshimi.
I think jackd kicks yoshi off, because it consumes too much time
in the rt-process then, although this doesn't really explain why it doesn't
happen with 038 that fast.
That's puzzling, almost interesting. The main differences from 0.038 that I can
think of are a switch to pthread_create managing the priority setting on the
audio/midi threads, and some refinements to the locking when changes to parameter
controls are in progress. At face value
It just saw it with 038 too. Yoshi stopped for a
moment,
but did not get disconnected from jackd, instead jackd reported some xruns.
I'm playing with a latency of 8ms, btw., at a rate of 48000.
A question pops up:
Which would be the most appropriate behavior,
when running out of time in the process thread ?
Stop processing voices ?
Process them, allowing to xrun ? No, I think.
Process them, but disconnect from jack ? No, I think.
Any other options ?
A total rewrite of the synth? Sorry, not this little black duck!!
What we've got so far is a rewrite of the audio/midi drivers, but the core
synth engine remains as was apart from a few relatively minor efficiency/
performance refinements.
The concept of a wall clock for the process callback to keep a check on is
interesting (I have thought about it). Given the structure of
Master::MasterAudio(), your rule selection candidates don't really fit
what's currently going on in there, which brings us back to the total
rewrite question.
Since the wall clock thing has come up, one thing I am curious about is the
timing of the midi notes. At present, you can't have a note-on/note-off during
the generation of a buffer full of audio.
I'm inclined to agree with Will, that the cause of your grief seems more to do
with general midi issues rather than yoshi specific ones, though I will have
a think about the 038 -> 054-pre differences.
cheers, Cal