A few questions about Zynthian

Hello everyone!

It’s been a while that I am interested in various projects related to Raspberry Pi, and Zynthian project could be the one that makes me definitely dive in …

Nevertheless, I have a few questions (if the creators of Zynthian -or users- can answer me, it would be really nice)

  1. How many engines can be run simultaneously?
    i.e. can I have ZynAddSubFX on a first midi channel, linuxsampler on an other, FluidSynth on a 3rd midichannel etc.etc. ?
    This question may seem naive because I have not experienced by myself the power of the Raspberry, but I see it seems not bad, at least on paper … (especially v3)
    in anyway as well as my old Pentium with which I already doing lot of things a few years ago …

  2. How far the interface of Zynthian (GUI) is customizable?
    and with what tools? (is there an editor for that purpose? As TouchOSC, Lemur etc.)

  3. Could I imagine build a preset manager / patches for all my hardware devices + virtual instruments (those included in Zynthian)?
    I dream about a module that would function much like NI Kontrol S keyboards or Akai Advance but universal for the software AND hardware.
    Bring all my patchs in ONE screen (patchs previously categorized, tags etc.)
    This classification work would be done upstream (on a computer), so I speak about a simple “interface” that would display the folders / subfolders (categories / tags) and the selection of a patch would send the corresponding MIDI messages (Bank Change / Program Change)
    But for this, The screen of Zynthian should allow me to display the files/presets tree … Is it workable?

Thanks in advance for your help!
:slight_smile:

Hi Jeff @Loud65,

I will try to answer your questions - but I can not promise if everything will be absolutly right. Fernando has written the whole software and I am currently working to implement another engine - but I just have to learn how to do.

Let’s go:
1.) As far as I know: currently not. Currently you are limited to one engine at a time, but you can put different sounds of the engine on different MIDI channels. With MOD-UI-Engine you can have “unlimited” engines and effects as long they are working as LV2-plugin (I am working on implementing this engine - coming “soon”) :wink:).

2.) Currently no editor. Zynthians community is growing so we will see if there will be sometimes an editor if enough programing ressources are available. But: MOD-UI-Engine will have an editor - and perhaps it may also work to connect external MIDI-controllers to parameters of the LV2-plugins.

3.) Sorry, I haven’t seen or used NI Kontrol S keyboards or Akai Advance… so I don’t understand exactly what you need. You want to call a Zynthian-Setup which also sends MIDI-Bank-Select and MIDI-Program-Change to the rest of your hardware? And the Zynthian-Setups should be categorized? Hmmm… this is currently not planned but should not be such a problem… perhaps you will write such an extension? :slight_smile:

For 1.) and 2.): Take a look at MOD-Devices. I am porting this browser-UI and backend to Zynthian. There is much power inside the plugins and the way of connecting them together, so perhaps this would be a solution for some of your questions?

Regards, Holger

Thank you so much Holger!

Your answers are really helpful to me :slight_smile:

  1. ok so multitimbrality on 16 channels but on 1 engine at a time.
    it’s already great :wink:

  2. Yes, I will certainly try to develop something
    I just need to put myself into it… :-p
    I am not a developer I am totally autodidact in this area (it’s a shame that max / msp is not running on Linux because I am not too bad on it)
    but it should not be too complicated, it is just a few lists to manage (banks & presets) and midi messages to be sent depending on the patch selected
    the interest would be to have all my patches on a single hardware module (the zynthian)
    and to classify them into categories

I did not know the MOD-DEVICES, this is a really awesome project too !!
but I think that zynthian would be more than enough for my needs
(which are quite simples finally…)

I need to understand how I could do … but for that I think that I should have a zynthian in the hands :wink: because for now it is diffcult for me to realize what is possible to do or not
in fact, an engine is a “plug-in”, right? (VST, LV2 …)
maybe I should create a plug-in that manages lists and sending the corresponding MIDI messages

Thanks again!
:slight_smile:

Hi Jeff,

the Raspi may not be able to play sound on every MIDI channel simultaniosly. Depending on the engine and the sound complexity you will get drop-outs. E.g. Linuxsampler with a Pianos sample: “normal” playing works, but pressing the sustain pedal and a fast repeating of key presses produces dropouts on the Raspi(2) very fast!

One problem is the slow data transfer rate from SD to RAM (for samplers like Linuxsampler this is a bottleneck). The other problem is that we are currently using the standard Raspian-Kernel which is not realtime capable. RT may help - but this is not sure.

The Raspi3 has much more power but as I said: there are limitations - but for my usage they are very rare.

The MOD-Duo (I own one) is really amazing. I am porting the UI to Zynthian - so you can setup your patches via Web-Browser (like seen on the web page of mod) and for recalling them only the MOD-backend is used (so additional computer is needed on stage).

The Zynthian-UI is written in Python3. It creates the TFT-GUI and the backend processes (engines). Adding a new engine means that you can reuse a class. There is not much documentation (in fact only comments :wink: ).

Now for your question: You have to differentiate between the engine and a plugin/samplesets. In Zynthian speech an engine is a synth or programm which gets MIDI and makes sound. Current engines are ZynAdSubFX, setBfree, Linuxsampler, Fluidsynth and Carla. The only engine which works with plugins is Carla. In contrast to the other engines Carla has no own sound generator but uses plugins (VST, LV2, LADSPA) and stacks them together for generating sounds. MOD-UI will do the same but only for LV2-plugins and with a web based frontend instead of X-Windows.

So you can start to write a LV2-plugin which fires up your Bank/Program changes. This is the more generic and reusable approach. Perhaps there is already a plugin which does this - or more plugins, which you can stack together for doing what you want. (see a pedalboard for MOD-Duo I made, which creates a split for bass and epiano and adds a drumkit on channel 10; you can see that I am using several small MIDI tools for filtering and splitting).

Or you write an engine which does what you want, but you are limited to Zynthian. But this approach may be easier to create.

Regards, Holger

Thanks :slight_smile:

Ok so I’ll search what is the easiest way for me to create a plug-in LV2 …
Since I’m not a real developer I hope I can find a “WYSIWYG” environment or modular (in the kind of CTRLR or Max-MSP)
do you think Carla could do that?
the screen / GUI of Zynthian will allow me to display the patch lists?

Jeff,

there are so many ways how to do this… LV2 programing is not easy, so if you are not familiar with C/C++ and Turtle, there is no IDE or environment - this is the long way :slight_smile:

Carla is the predecessor of MOD-UI. So Carla would be a good way, but it has some disadvantages and maybe would not developed anymore (the creator of Carla works now for MOD-Devices and has developed MOD-UI).

From my point of view the best way would be to wait until MOD-UI is integrated and create “pedalboards” (patches) with the LV2 plugins. There are LV2-plugins called MIDIFilter. But it seems that they don’t have plugins for Bank/Program-change. With such a plugin (perhaps it exists and can be echanged/xtended for your needs) you have a flexible way to do this.

Regards, Holger

Ok
indeed I will wait for MOD-UI :slight_smile:

I have forgotten one question
how does the Zynthian “OS” works exactly
is it derived from Raspbian?
is there a standard Linux desktop loaded on startup (and zynthian is “an app” loaded above)?
or the system is embeded?

Hi Jeff,

Zynthian is based on Raspian. There a re some very small tweaks for faster booting and removing unwanted services. The whole “build” script for Fedora or Raspian is here: https://github.com/zynthian/zynthian-sys/tree/master/scripts

If you want to take a closer look at MOD-UI I have an image which can be used headless. You only need a Raspi, a powerplant, a SD card (>=4GB) and a Hifiberry audio card - and DHCP. After booting you can switch to :8888 and play with MOD-UI.

Download link is coming soon…

Regards, Holger

Hi Holger,
thank you
no Raspberry on hand for now
but I am going to look more closely at all this…
thank you for your help!
and good luck for your work on the implementation of MOD-UI :wink:

Regards,
Jeff

Hi @Loud65!

Regarding your three questions:

1.) How many engines can be run simultaneously?
We are working hard to have a full multitimbric-multiengine module. This is one of the main goals of the project.
As Holger has explained before, currently you can run several standalone multitimbric engines:

  • ZynAddSubFX (16 channels)
  • FluidSynth (16 channels)
  • LinuxSampler (16 channels)
  • setBfree hammond emulator (CH1=>Upper manual, CH2=>Lower manual, CH3 => Pedals)

From the Zynthian interface you can select bank and preset for every channel, and also adjust the synth parameters. Of course you can do that from your favourite controller using standard MIDI messages.

Also, you can run Carla Plugin Host and load patches that you can prepare from the carla’s native GUI. Here you can load different plugins and you have MIDI filters/splitters and much more, that you can use for configuring everything as you want.

Currently, we are working to integrate MOD software into Zynthian, that will replace Carla and improve the functionality and the user interface.

2.) How far the interface of Zynthian (GUI) is customizable?
Currently the Zynthian’s GUI is programmed in Python, using the Tkinter library. I’ve no used any GUI editor or graphic tool and i really think it’s not needed because the Zynthian screen is small and the GUI must be very minamalistic and light. These goals are better achieved using pure-text-coding approach.
In the other hand, some engines have its own GUI, that can be used from a computer. And of course, MOD-UI have an awesome web interface, that allows to create custom skins. You have to test it! :wink:

3.) Could I imagine build a preset manager / patches for all my hardware devices + virtual instruments?
I’m really interested in this concept and i will like to work in it. Would you like to collaborate with us for defining this functionality? Could you write a detailed specification for this? This will be very helpful and it’s the first step for getting things done :wink:

Best Regards!

1 Like

1) & 2) Thank you very much @jofemodo
you answered to all these interrogations :wink:

3) Yes, I will !
and I think it might be a very good idea for a project like Zynthian…
since it does not exist elsewhere
(like I said, we can see this functionnality in the software world, but I do not know any hardware module that allows to combine, in a simple interface, ALL the patches for all the devices of a set-up (hardware and software))
and on several forums I noticed that I was not the only one expected such a device … it is often asked to the manufacturers (including Akai when they released their “Advance” line. Concerning Native Instruments and the “Kontrol S” line is another debate… as they have another policy … more “closed” to their own products …)

Maybe I should wait to receive a Zynthian to have a better idea of the possibilities?
But, indeed, I can also submit to you some ideas already.
Maybe even a prototyping via a standalone application Max / MSP …?

It would be nice to have a “proof of concept”, but use PD, please. I can’t run Max/MSP in my computers.
But first, please, we should find a “short name” for this idea/development and open a new topic in the Software category :wink: