Updated 7 Aug 2022
I have sold the Zynthian, so there’ll be no more development on this page.
I recently bought a Zynthian kit (ver 4) and assembled it using my own RPi4(8GB). It’s a great system which gives you an enormous toolkit to make music. I was particularly impressed with the sound quality and the number of plug-ins to tweak your sounds. System development is actively occurring, so what I discuss here may well be out of date in a few weeks.
I’ve been using FluidSynth for a number of years, and have had various attempts at making a synth that is compact, has good sound quality, and is user-friendly. Incorporated in Zynthian is the ability to use FluidSynth, and it mostly ticks my boxes. My main use-case is in a concert band where I need a number of traditional instruments, plus the ability to change instruments quickly. Zynthian can do this, but its configuration (enabling it to “do many things”) has made its workflow a bit awkward (for me).
So I decided to try re-tasking the Zynthian hardware to make a simple platform that is dedicated to my use-case. I needed:
- FluidSynth only
- Quick instrument change (snapshot change in Zynthian language)
- Ability to tweak the snapshot sounds (plugins)
- Screen
- Adjusting knob(s)
Architecture
Since I’m using only the FluidSynth (FS) engine, there’s no need to re-load the engine when changing instruments – only re-configuring is required. FS has a built-in console mode (telnet) with which you can re-configure it in real time, so I used that.
The information flows look like this:
The Python program does the following:
- enables the user to create instruments (snapshots) using SF2 presets and adding transpose, reverb, equaliser
- enables the user to edit the instruments
- takes the incoming MIDI from my wind controller and forwards it on to FS
- filters out program changes from my stompbox, and uses them to select instruments (snapshots)
- configures the running FS via Telnet (this involves changing SF2 preset, configuring the LADSPA plugins, applying transposition, etc)
- writes to the screen
- accepts input from the knobs and switches
- configures the ALSA mixer volume
The screen uses the Zynthian drivers (/dev/fb1), and is written to using Pygame.
The screen looks like this
When using FS under Zynthian, I only ever had need for reverb and equaliser plugins. I had used LADSPA with FS previously, so I implemented the relevant “TAP” plugins. There is a section on the screen for configuring each plugin.
The S1-S4 buttons are functional as program-change buttons – to program them you simply select the instrument (snapshot) that you want, and hold the appropriate S-button in for 2 seconds.
ToDo
The box is working OK, but I have had very little time using it, so I’m sure additional features will be required. Currently, the DIN MIDI sockets are not functioning, but I have minimal use for them, so they can wait.