-
Pandas
I use Pd with Jack.
I use the QjackCtl patchbay to make sure Pd connects it's MIDI ins/outs and load that on QjackCtl startup automatically.The patchbay can use regular expressions to instantiate connections, you just need to be careful about the "many-to-many" type of situations.
-
Pandas
@whale-av Update on pipewire - it is taking over; it is the default now, and both jack and pulseaudio have pipewire wrappers.
On Fedora distros, it is the default.Even QjackCtl (control GUI for JACK) is now disabling it's hardware controls in favor of pipewire.
However, pipewire does not yet have a standardized GUI, but the visual patching component from QjackCtl has been forked into a standalone app.
Pipewire seems great, although I'd wish they'd ditch the video stuff and concentrate on audio more, and GUI / ease of use.
We'll see. Is it better than WASAPI or ASIO4ALL, I don't know. But it works out-of-the-box.
-
Pandas
@whale-av Thanks.
It seems the MIDI clock patch does not reset properly. Or, there should be a delay of some sorts when syncing to MIDI clock.
My apologies, this went a bit too far out of scope.
I can nudge the MIDI clock input to 0, and sync it properly.
Just need to figure out how to nudge it automatically.
Thanks a lot,
RaymondEDIT:
I am resetting the PPQN counter to 0 on FA (MIDI clock PLAY).
But this does not sync properly.
Clock SOURCE according to MIDI spec should give some delay for the target to sync (1ms). Figuring out how to implement that....
24 is a weird number -
Pandas
@whale-av Thanks, David.
I'm on Linux. Here's a little on apps I mentioned.
JACK is a "low-latency" multiplexing sound server (i.e., audio patch bay for pro apps)
It's sister server, PulseAudio, is the system's generic "multiplexer" - these are needed because the modular driver system ("ALSA") doesn't do multiplexing, but only speaks to hardware.Both JACK and PulseAudio are on trial overhaul with a new thing called PipeWire, which acts as an in-place substitution multiplexer server.
QSynth (fluidsynth) is a soundfont synthesizer - and yes, it has its own settings for buffers, but as long as audio apps are set to use the JACK multiplexer, they are bound by its hardware buffer size setting overall.
The Delay
The Pd delay I am getting is about 80ms, with the Pd "Delay" set to 40ms, and buffer size set to 1024 samples (at 48 kHz).
The QSynth is quite smaller, in fact, it is about 21ms, which equals 1024 samples.
Pd freezes if the "Delay" amount goes below 21 - but as I've mentioned, the overall Pd delay is 80ms.
(Reaper is a cross-platform DAW used by many)
The soundcard
The soundcard is M-AUDIO M-TRACK DUO.
M-AUDIO doesn't offer support for Linux, but ever since the Delta, I think, the driver is more or less similar and has been incorporated into Linux...I can normally get recording-playback in the Reaper DAW going with 256 samples at 48 kHz steadily, and down to 128 samples with some underruns (for precision MIDI finger drumming, etc.)
The double buffer
One important thing to note is that along with hardware buffer size, the JACK system offers a config parameter of the number of buffers to use. Normally this is set at 2.
Perhaps that is the problem -
Pandas
@whale-av Why is there both a buffer size and the Delay? It seems like there is an additional delay on top of the sound card buffer, which can't get below the buffer size.
But it sounds like they are cumulative, i.e.( Sound Card Buffer + Delay ) % Pd Block Size