Topic: Mobile-friendly web app for remote controlling Pianoteq 7.5
Hi all! After the Pianoteq 7.5 update, I've developed a very small proof-of-concept, mobile-friendly web app that can remotely control a Pianoteq instance. Right now, it can only control the presets and the output mode (which is what I mostly need it for) and it looks like the following:
This is released as open source here: https://github.com/shuhaowu/remote-for-pianoteq. Instructions on running this are on that repository. Things are a bit rough for now, but this provides a good base to build more upon. That said, I don't want to have too much bloat on this application as it's meant to run on a low-end phone.
The way I'm using it is as follows:
Pianoteq runs on a Raspberry Pi 4 with a PREEMPT_RT kernel on boot. With this, I can achieve pop-free real-time playing with 22kHz internal sampling rate, 96 polyphony, and a buffer size of 128 via ALSA. If there's interest, I can separately release a tutorial or even a flashable image for this.
The server.py from this project runs on the Raspberry Pi 4 on boot.
I have an older, low-end Android phone that is stored near my piano. I use this device to control Pianoteq via this interface. In a pinch, I can also use this phone to VNC into the Raspberry Pi to change some things not available over the API.
There are some known issues:
I can't seem to load my own custom presets without it saying "preset load failed". This seems to be a problem on Modartt's side? Alternatively I could be using the API wrong (doubt it, because I can switch between the built-in presets just fine).
If an error occurred while changing settings, the UI will be stuck in a disabled state. This is because the error handling code hasn't been written yet as this is still a proof-of-concept. I will fix this at some point. Pull request is also welcome.
There are some other features that I want, but I can't implement the because the JSON-RPC API doesn't appear to be "complete":
The ability to control reverb presets. With the API available in 7.5, you can adjust individual reverb settings but not presets (at least as far as I can see).
Start and stop the metronome as well as setting the tempo. Also not supported by 7.5 API as far as I can tell.
Ability to control the velocity curve preset. Again, not available in the API as far as I can tell.