> On Thu, 14 Aug 2008 07:35:24 +0200
> Ralf Mardorf <email@example.com> wrote:
>> the sequencer timing source for Rosegarden is set to "(auto)", but there
>> also is the choice between
>> - system timer (software timer)
>> - RTC timer (battery hardware clock)
>> - PCM Playback 0-0-0
>> - PCM Capture 0-0-1
>> I think the trouble I've got with MIDI events that are sometimes some ms
>> to early or correct or some ms to late is caused by improper handling of
>> MIDI event buffers, maybe by Jack, that would explain why the timing is
>> better (probably okay to make music) for DSSIs, but maybe it has to do
>> with the use of different timers or something else.
>> How can I make sure that all MIDI events are synced by one timer?
> I had a timing problem with Rosegarden where, for no obvious reason it
> would suddenly race. switching from 'auto' to 'RTC' completely cured
> this. Maybe that is what you need to do.
I think I can test it tonight. RTC seems to be a good idea:
-------- Original Message --------
Subject: Re: [Jack-Devel] Sequencer timing source
Date: Thu, 14 Aug 2008 16:31:56 +0200
From: Ralf Mardorf <firstname.lastname@example.org>
To: Rui Nuno Capela <email@example.com>
CC: Nedko Arnaudov <firstname.lastname@example.org>, email@example.com
Rui Nuno Capela wrote:
> Ralf Mardorf wrote:
>> Nedko Arnaudov wrote:
>>> Ralf Mardorf <firstname.lastname@example.org> writes:
>>>> the sequencer timing source for Rosegarden is set to "(auto)", but
>>>> also is the choice between
>>>> - system timer (software timer)
>>>> - RTC timer (battery hardware clock)
>>>> - PCM Playback 0-0-0
>>>> - PCM Capture 0-0-1
>>>> I think the trouble I've got with MIDI events that are sometimes
>>>> some ms
>>>> to early or correct or some ms to late is caused by improper
>>>> handling of
>>>> MIDI event buffers, maybe by Jack, that would explain why the
>>>> timing is
>>>> better (probably okay to make music) for DSSIs, but maybe it has to do
>>>> with the use of different timers or something else.
>>> AFAIK Rosegarden does not use JACK MIDI, it uses ALSA sequencer MIDI
>>> API. So I dont see how JACK can be blamed for "improper handling of
>>> event buffers".
>>>> How can I make sure that all MIDI events are synced by one timer?
>>> The obvious solution: Use JACK for both audio and MIDI.
>>> The hidden solution use same clock source for MIDI and audio. It may be
>>> that last two options in timing source selection will do that.
>>> Disclaimer: I'm not actually using Rosegarden and my understanding
>>> Rosegarden MIDI event scheduling is quite limited too. So it may be
>>> idea to wait for Chris Cannam reply (I think he is subscribed to this
>> Thank you Nedko
>> do I understand it right, that QJackCtl's connections tab "ALSA" does
>> connect ALSA MIDI clients and they have nothing to do with Jack? Okay,
>> than ALSA might be not good or is using another timer than Rosegarden
>> or ...
>> I don't like Rosegarden, but it seems to be the best sequencer for
>> Linux, so I have to use it, if I won't install a Windows.
>> Just to narrow down the cause for the fluctuation of the timing of MIDI
>> events, I would use any sequencer. Is there a Sequencer using Jack MIDI
>> and are there soundfont and GIG sample players that use Jack MIDI?
>> QSynth seems only to know ALSA and OSS for MIDI.
>> I guess it has to do with the timers. Maybe Rosegarden and the DSSI
>> Fluidsynth are using the same timer, but QSynth Fluidsynth is using
>> another timer.
> qsynth, fluidsynth, rosegarden, qjackctl alsa connections tab, are all
> using the alsa-seq infrastructure for midi capture, queueing, routing
> and playback. where applicable.
> alsa-seq is mainly implemented through the snd-seq-midi kernel module
> and has no relationship to the jack audio service. although there's
> currently an alsa-seq backend for jack midi, it has its own separate
> issues that is not in call here.
> the alsa-seq midi interface has these programmatic option for you to
> choose timers and that's exactly what rosegarden offers you. as a
> kernel module it all mostly depends on which kernel configuration
> you're running.
> for example, if you're using the system timer option it helps a lot if
> your kernel is configured with CONFIG_HZ_1000 and not the
> CONFIG_HZ_250 as is the default on all distros. otoh, if the rtc is
> the default timer assigned by alsa-seq, then it's way better you have
> it CONFIG_PREEMPT_RT aka realtime kernel. anyway, your troubles seem
> related to jitter in midi timing and thus probably due to scheduling
> delays. it thus helps a lot having a realtime kernel tuned for the
> of course, wrt rosegarden, Chris Cannam is the authority at hand, not
I guess the kernel-rt for Suse and the kernel-multimedia for 64 Studio
are using CONFIG_PREEMPT_RT. Someone from the 64 Studio list got another
timing trouble with Rosegarden and set the timer from auto to RTC and
now it's fine for him. Ah, yes jitter is the right word. I imagined that
one timer is used to push MIDI event information to a buffer and another
timer is interpreting this information wrong, when pulling it from the
buffer or something like this. Because I set nice from -10 to -19, while
the value for rtprio is set to 99, I thought there should be no
scheduling delays any more. Is this a fallacy?
I will try RTC for Rosegarden and test some other sequencers.
Yes, this is a help, even if it shouldn't work.
I'll report later.
64studio-users mailing list