Hi @bidinou !
Limiting distractions and mimicking the immediacy of a real acoustic instrument is why I wanted to build this for myself. The end goal is a piano that I can sit down at and play, which feels like and sounds like the real deal without the practical challenges of a big piano.
Changing presets is not implemented yet, and I don’t think I want to focus on that for the Pianoberry project. I think of Pianoberry as a foundation to create standalone instruments; a good place to start from. It is made to be tinkered with and compiled by the user/instrument builder.
Latency can mean different things depending on how much of the chain you account for.
The latency reported by Pianoteq is mathematically accurate, but it only accounts for Pianoteqs internal processing, from when a control signal comes in and the audio sample is handed over to the audio hardware.
The concept of round-trip latency does not apply to Pianoteq as it is synthesizing sound. There is no sound input being processed and relayed. We talk about round-trip latency when measuring digital converters.
I guess you perhaps talk about latency from when you hit a key on your master keyboard to the sound coming out of the speaker. This depends on a whole range of variables.
The only thing I can tell you for a fact is that Pianoteq at the config I’m running has 1.33ms latency. To get real world latency you have to account for MIDI latency (1ms+), OS MIDI latency (0-100ms), OS audio latency, external processing latency (DSP in active speakers or amplifier) and how far you are from the sound source.
I’m only in control of latency from the MIDI socket on Pisound to the audio output on Pisound. There can be a lot of latency added before or after.
The best MIDI controllers have around 1ms input latency, anything below that is basically not possible. USB MIDI, if ran on USB High Speed (USB 2.0) has the potential of running much faster, but USB MIDI is most often ran on USB Full Speed which functions on a 1ms polling interval from the USB host, giving a practical latency of ~30µs to 1ms. DIN MIDI is limited by its baud rate but is at least providing consistent latency – which is why I set up Pianoberry to use DIN MIDI and not USB.
Pianoberry is built on Tiny Core Linux. Tiny Core Linux decompresses from disk (SD Card) to RAM on every boot. This decompression takes a little bit of time, but given the incredible tiny size of the binary it results in just a few seconds boot time. It would be possible to achieve faster boot times on a different OS, but the upsides of having the whole stack run from RAM far outweighs the slight increase in boot time.