I've found the bad guy: it's the old version of the PortMidi Library, that's packaged with pd's source. After replacing it with a newer version (131) and recompiling, the midi overflow bug is gone. I couldn't get the latest version of portmidi compiled on os x 10.6.8 (probably a cmake issue).
Now that all midi messages are coming in, I've noticed that pd handles some midi system messages incorrectly. Seems like Pd assumes, that system messages always carry three data bytes (like sysex messages). But there are messages like Midi Time Code or Song Position Pointer, which have one or two data bytes.
cheers, Jan
On 3.6.13 17:07 , Jan Baumgart wrote:
Seems like [midirealtimein] is working under os x (although there's an obsolete error "message midirealtimein: works under MSW only").
But when receiving a realtime messages (248, 250 or 252) [midiin] and [notein] output 0. Maybe this is related to the fifo overflow.
Correction: the status byte for the song position pointer is 242 (dec - not hex)
On 3.6.13 15:18 , Jan Baumgart wrote:
Hi there,
I'm experiencing a severe bug, when sending a Song Position Pointer message (0x242 0 0) to pd.
After sending just one SPP message to pd, the status window says: "warning: MIDI timing FIFO overflowed".
When looking at the output of [midiin] I see "242 0 0 0" repeated endlessly.
The Song Position Pointer message belongs to the System Common Messages and has two data bytes. Pd seems to get confused with this message. Where is the third data byte coming from?
I'm running precompiled vanilla pd-0.44-3 from puckette's site on 32-bit intel mac (os x 10.6.8).
I have a related second question: Is there any way to receive midi realtime messages with pd on os x? I'm trying to receive Midi Beat Clock...
cheers, Jan