Hello, I am a developer in my professional life (with training in embedded electronics too). I am a musician in my spare time. I mainly play guitar. I have been working for some time on a personal project that is very similar to zynthian that I just discovered. First of all, congratulations for the work, it looks amazing. I would be happy to help on this project rather than continue working on my project sit my own in a corner. A question comes to me when I look at the project. Do you plan to work on a remote interface such as a mobile application to control all this instead of the screen?
Hi @sigmundfred!
Welcome to the community. Your story is similar to many of ours (including mine). Zynthian is close enough to what many of us were trying to do that it proved advantageous to shelf our old projects and engaged with zynthian. It also helps that @jofemodo is such a benevolent leader who welcomes us all into his flock.
We already have several remote control solutions, many of which are described in the wiki:
- MIDI: You can use MIDI commands to drive zynthian
- VNC: You can access the UI via VNC and control zynthian with keybindings
- OSC: There is significant (but maybe incomplete) control of zynthian via OSC. There have been efforts to provide OSC control panels though they are quite old and probably no longer relevant.
We aspire to improving the API and exposing it via at least one network protocol (possibly extending current OSC interface) but this work on API has been slowed in recent months. (Mostly due to us concentrating on release of Oram.)
You will find some documentation and guidance for developers in the wiki but this could be improved.
A high-level overview of the technology is:
- Debain based OS running on Raspberry Pi 3 or later
- Python application binds everything together
- C/C++ libraries providing some low-level functionality
- 3rd party providers (almost all open source) for the processors (synths, audio fx, etc.) Most of these are LV2 plugins hosted by jalv.
systemd
service manager for various services (including zynthian main app)- jackd sound subsystem
The API solution seems good (especially if it’s a REST API ). I work in IoT (smart home…) and APIs are my daily life. If I can help, it will be with pleasure. In the meantime, I will continue to read all the documentation available on the project and start looking at the source code
Great to read that developers are interested to take a step into the amazing Zynthian project. It seems that some free projects are not that lucky with getting new developers.
@sigmundfred : Have fun!
By the way: Just ordered a Zynthian V5.1 Kit!
Hello and welcome.
@ToFF made with “Open stage control” app a remote interface using OSC message.
but yes, as @riban says, it could be not so accurate anymore.
I would like to see a remote control mechanism that allows one Zynthian to control a remote zynthian. This allows an extension of use for Pi3 zynths as control devices for zynthian render engines built on later Pi’s.
NO!!! REST API tend to be too slow for realtime API. I tried to interface with Pianoteq via its REST API and it was hideously slow.
I started a discussion on API here.
Yep! This has been already discussed in the past and we reached the conclusion that a REST API approach is not valid for something like zynthian.
BTW, welcome to zynthianland @sigmundfred!! I hope you enjoy our companion!!
Regards
Depends on what kind of “control” you mean. You probably want to be able to control every single parameter of everything on every Zynthian individually via OSC/CUIA and get response on status changes. But there is a more “holistic” approach that might work already today: using one Zynthian as a remote UI terminal for the others.
In principle, you should be able to run multiple X-screens on your Zynthian and switch between them (buttons? swiping gestures??). One can display the local UI, the others may display the remote UIs of the other Zynthians via VNC (or just plain X?). Then you have full touch control of all the Zynthians on one screen. You just need to easily switch the screens.
As for the encoders and buttons: I guess you should be able to also switch them to trigger remote CUIAs via OSC instead of just the local ones…?
Ooh, that would be nice. Something like having a Pi3 set up with all the controls and lightweight synths but able to operate one or more remote Pi4/5s when you need Pianoteq or heavy duty synths like OsTirus?