On Sat, Dec 01, 2018 at 01:19:00PM -0600, Adam Thompson wrote:
> PROBLEM STATEMENT: driving FluidSynth from a MIDI controller produces ~1/4sec 
> delay between keypress and sound.
> 
[...]

> Is sndio(4) suitable for real-time(-ish) performance?  Or do I need
> a (OS) platform that does ASIO or JACK?  (I mostly play by ear so
> I'm targeting <<0.1sec latency.)

Yes, sndiod is usable (actually designed for) low-latency usage. You
need to change the sndiod buffer size to whatever your system can
handle (depends on CPU, audio interface). I'd recommend to set in
/etc/rc.conf.local

sndiod_flags=-z240

Let us know how it works. If it works, you could try -z120, that's
what I use on my machines.

-z240 sets the block size to 240 samples, at 48000Hz sample frequency,
this corresponds to 48000Hz / 240 = 5ms block. The total end-to-end
latency is typically 3 blocks, so I'd get 5ms * 3 = 15ms.

FWIW, for music, you shouldn't exceed few tenths of ms of latency.

> 
> Dmesg follows, just in case anyone spots anything useful in thereā€¦
> 
> Hardware setup, broadly:
> * Dell Latitude E6430 laptop
>   - booting in EFI mode to work around a weird bootloader bug
> * onboard azalia(4) audio (for now) using onboard speakers (for now)
> * Roland A500PRO MIDI controller, connected via USB
> * M-audio Uno USB-MIDI, nothing connected to it yet
> * No-name USB 5.1ch Audio DAC from Amazon, nothing connected to it yet
>   - (leaving the M-audio umidi and the "ABC" uaudio devices disconnected 
> makes no difference)
> 

The "ABC" USB devices are unlikely to work with small blocks, but
there are fixes comming soon (hopefully).

Reply via email to