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
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
Hi Miller,
thanks for the suggestion. Glad to hear there's a "workaround"! I'll try this before on my Linux machine, so on Monday I can do the same with the computer I have at work.
it would be great to have this as an option, for example, in Preferences. I know probably it's a kind of niche feature, but this would help a lot in dealing with sysex stuff.
cheers,
Mario
On 25/06/17 00:37, Miller Puckette wrote:
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