Trying to build a "poor man's Zynth", have a few questions

Hi, everyone!

First things first, I want to say that I’m really glad to find this community! Been flirting with the idea of buying a digital synth for a few years now, and Zynthian basically ticks all the boxes.

I’m thinking of buying a RPi with a touchscreen and USB soundcard, plus a midi controller, and start from scratch. I think this is the smarter approach, since it makes everything easily upgradeable, and as soon as my country and I are both better off financially, I can buy better components.

I’d like to have some insight from y’all, though, on three specific questions.

  1. Have you ever tried to run ZynthianOS on a virtual machine? I’d love to test it beforehands, try to set everything up and stuff, especially since I’m kind of rusty at dealing with Linux systems.

  2. I’m keeping an eye out for some generic USB cards, as well as audio interfaces. Has any of you tried to use stuff like the Behringer U-Phoria or M-Audio MTrack lines? What about the smaller, generic ones, like U-Green or Vention? I’m particularly concerned about latency, since I plan to use Zynthian as a playing keyboard more than a sequencer/DAW. HiFiBerry or similars aren’t an option, since I’d have to ship them from abroad and it’s not feasible right now.

  3. As for midi controllers, how does Zynthian deal with USB-Midi? Once again, I’m concerned mostly about latency.

Thanks in advance for your insights, and have a lovely week! :slight_smile:

With these sorts of rigs it’s difficult to make any real predictions about performance. You should use a Pi4 if at all possible as the USB performance is considerably better than the Pi3. But the USB audio /midi device will probably dominate most of the characteristics of the system performance.

Personally I’ve not tried running zynthian virtually. It works pretty close to the metal and in some cases (GPIO connected encoders) it is tied very closely to the Pi hardware so the virtual environments aren’t really going to give too clear an idea of what is going on.

Hi @Pergher! Welcome to our corner of the universe.

There is an emulator which runs on Linux desktop but it is for software development so may be challenging to configure and may not provide a good representation of Zynthian. In theory it can be run on top of other Linux distributions and people have tried but this requires much technical skill. I have tried to run a VM but that is technically challenging and I did not succeed.

USB audio is supported for soundcards that are supported by the Linux kernel. Many USB soundcards are class compliant and will work. The Behringer works and the others you mention probably do. There is some latency introduced by the USB interface but often this is okay, especially with Pi 4.

USB MIDI is supported for class compliant devices and some that require firmware such as the MIDISPORT (which I have). Similar to audio, USB may add some latency but it should not be a problem with Pi4. USB MIDI is faster than standard MIDI so the latency is likely to be lower.

I am using Zynthian in a setup that is pretty similar to what you want: Pi4, Tascam US-4x4 four channel USB audio interface, 7’’ touchscreen, and both an Arturia KeyStep and a Behringer Xtouch mini MIDI controllers. Works like a charm for me. It gives me four effects channels (I use MOD as plugin host) for my external synths and it’s internal synth engines. I wrote a little program that translates the knobs (encoders) on the Xtouch to Zynthians CUIA system, so I can use them as Zynthian knobs (very good for Zynseq).

I have used Zynthian on a Pi3 with a cheap Ugreen USB audio interface. Works fine as an effects box, standalone sequencer, or with simple synth engines, but you have limited CPU power available. Using a Hifiberry ADC/DAC pro audio interface works much better in my experience.

Running Zynthian OS in a virtual machine is very problematic. Zynthian is designed for the ARM architecture, while most desktop PCs use an x86_64 compatible processor. As a result a virtualization system has to do a software emulation of the CPU. Very bad for time critical applications like sound.