@bluebirch @miclgael try telling reaper to use ALSA directly for MIDI. anything else will add latency to the system. if it's still unplayable it might be a limitation of reaper
@bluebirch @miclgael there might be some kernel parameters you can adjust to change the scheduler to prioritize low latency over throughput, but tbh that might be a bit of a long shot these days. There used to be distros like "Ubuntu Studio Edition" that had all the realtime kernel tweaks, but I think most of those improvements have since been folded into mainline.
Another thing to try is boosting the priority of Reaper process(es) and shutting off as much background stuff as you can.
@bluebirch @miclgael I'm on Fedora, and I've done a bit of live play using a soft MIDI controller, vcvrack and some hardware synthesizers over MIDI. It's possible to get low enough latency to be playable, but there's so many things that can throw it off, it's really frustrating. I've been able to make it work by cutting stuff out, but it's a pain.
@bluebirch I saw you’re on Linux in the replies, so if you also have Pipewire on your system, you could try setting the PIPEWIRE_LATENCY environment variable to e.g. 256/48000 when opening reaper. That’ll set the buffer size and sample rate, I personally used 128/48000 with Bitwig Studio, but that caused underruns sometimes.
@bluebirch @miclgael another thing that might help is setting up a loop back to figure how much latency is inherent in the system. so like, maybe have an external midi controller attached to your computer and an external midi synth attached to your computer, and set up alsa to route packets from one to the other. if that is playable, then the problem is in userspace somewhere
@bluebirch @miclgael and then the next thing I'd try is minimum viable soft synth using alsa directly. like a very simple patch in something with a reputation for being responsive enough for realtime play (I had good luck with vcvrack, pd might also be a good choice, but I've found that stuff like timidity++ is terrible for latency). if you can make that work for you, that rules out some things as well