If you don't mind recompiling Pd, you can control the MIDI queue size by editing this line in s_midi.c:
#define MIDIQSIZE 1024
I think it has to be a power of 2. You could make it 0x100000, for instance (a million-ish).
To easily recompile Pd on a Mac, install the developer package (compiler chain which I think is now called Xcode), open a shell, Cd to Pd-x.app/Contents/Resources/src, edit s_midi.c, and type "make".
cheers Miller
On Sat, Jun 24, 2017 at 10:25:41AM +0100, mario buoninfante wrote:
Hi All,
I'm trying to record a bunch of sysex received from and external machine (sequencer/synthesizer).
I tried using both [midiin] and [sysexin], and I've always got the same result: "MIDI timing FIFO overflowed" printed on the console, and a lot of data missing (I'm sure about that, cause I know how big the stored file should be, and also cause it's an external flash dump, so I should be able to send back this sysex to the unit, but when I do this the unit gets stuck).
I know for sure that the unit is sending sysex at a really fast rate, as fast as it can (at the moment I don't remember how fast exactly, but I can double check).
is there a way to setup a kind of buffer? something that allows you to accumulate this data before they pass through [midiin] or [sysex].
I'd like to give some context (and believe me, I don't really like this kind of comparisons, at all!).
as it's something I'm doing for work reasons, I had to try using MaxMSP and I ended up with something that works. the only thing I had to do is changing the parameter related to the "scheduler time interval". so, what happens there is the following: Unit sends these messages as fast as it can, MaxMSP receives and accumulates all the messages, and pass them to the patch one after another at a slower rate then the Unit's one.
do we have something similar on Pd?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list