And another thing, when selecting high priority, I do hear sound initially, but it is totally fucked up (timingwise), and the process gets killed finally by the watchdog.
lieven moors wrote: > I tried the test program with a suprising result. > The timing sounds rock solid, with normal permissions, and with a > duration of 62.5 ms. > > P.S. > When I selected realtime permission, the process was killed by > das_watchdog, and I heard nothing. > (das_watchdog guards for realtime processes that block the system) > > William Andrew Burnson wrote: >> Here is my test program to play back notes in a single JUCE thread to >> help detect jitter: >> http://williamburnson.com/midi-test.tar.gz >> >> To use it, follow INSTRUCTIONS (basically, drop >> juce_amalgamated.cpp/h into the folder and type make) >> >> I tried using snd_seq_drain_output and I didn't notice any difference... >> >> ---- Original message ---- >> >>> Date: Tue, 11 Aug 2009 15:43:31 +0200 (CEST) >>> From: "Kjetil S. Matheussen" <[email protected]> Subject: >>> Re: [CM] Fwd: Linux/Midi Test To: lieven moors <[email protected]> >>> Cc: Heinrich Taube <[email protected]>, [email protected], >>> Andrew Burnson <[email protected]> >>> >>> >>> >>> On Tue, 11 Aug 2009, lieven moors wrote: >>> >>> >>>> I think I might know what the problem is with Juce. I had a look at >>>> the >>>> Juce code myself, >>>> and it looks like sendMessageNow() is not calling the >>>> snd_seq_drain_output(). >>>> >>> For what its worth, the one time I've written code which sends >>> midi via alsa, the code calls snd_seq_drain_output as last >>> operation. I don't remember what I did back then, but this >>> could definitely be the problem. It sounds likely, at least. >>> >>> >>> static void alsaseq_PutMidi( >>> struct MidiLink *midilink, >>> uint32_t msg >>> ) >>> { >>> unsigned int d3=(msg>>8)&0xff; >>> unsigned int d2=(msg>>16)&0xff; >>> unsigned int d1=(msg>>24)&0xff; >>> >>> unsigned char buffer[3]={d1,d2,d3}; >>> snd_seq_event_t ev; >>> snd_midi_event_t *midi_ev; >>> snd_midi_event_new( 10, &midi_ev ); >>> >>> snd_seq_ev_clear( &ev ); >>> snd_midi_event_encode(midi_ev, >>> buffer, >>> 3, >>> &ev); >>> snd_midi_event_free( midi_ev ); >>> >>> snd_seq_ev_set_source(&ev,midilink->port); >>> snd_seq_ev_set_subs(&ev); >>> >>> snd_seq_ev_schedule_tick( &ev, radium_queue, 1, 1); >>> >>> snd_seq_event_output(radium_seq, &ev); >>> >>> snd_seq_drain_output(radium_seq); >>> >>> } >>> >>> >> >> > > _______________________________________________ Cmdist mailing list [email protected] http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
