
Show HN: The ZynAddSubFX open source musical synthesizer - fundamental
http://zynaddsubfx.sf.net
======
fundamental
Hello HN, I'm the current lead maintainer of the ZynAddSubFX project. Some of
you may have heard of the project in the past, though if you haven't been
tracking it recently there have been a few major changes.

First and foremost the old fltk based GUI has been completely rewritten from
scratch using a new custom toolkit (mruby-zest). This was done in order to
make the interface more usable by making it easier to navigate, easier to use
within plugin hosts, easier to get feedback, and easier on the eyes (the fltk
UI wasn't exactly the prettiest).

Secondly the work on the GUI was made possible by some work which decopuled
the sound synthesis engine from the interface. As of the 2.5.x series all
parameters can be accessed out-of-process (or on a different networked
computer) via open sound control. This decoupling has improved low latency
processing and made it easy to map physical (midi) knobs/sliders onto the
virtual ones.

Overall this work has resulted in a number of child-projects including the
RtOSC OSC implementation (
[https://github.com/fundamental/rtosc](https://github.com/fundamental/rtosc)
), the mruby-zest GUI toolkit ( [https://github.com/mruby-
zest](https://github.com/mruby-zest) ), and the Stoat LLVM static analysis
tool (
[https://github.com/fundamental/stoat](https://github.com/fundamental/stoat)
).

I'm currently hoping that the large interface upgrade (which was supported
with some recent crowdfunding efforts) will get more people interested in the
project and help speed up the momentum of the project as a whole.

~~~
programLyrique
I've followed a bit the zyn-fusion project. Apparently, you have opened the
sources of the new GUI just a few weeks ago and before that, the binaries
could be bought.

Has this funding model for opensource (releasing binaries, and then waiting
for some time to release the sources) been a success? Have you been able to
generate a decent revenue with the crowdfunding efforts?

~~~
fundamental
That tends to be one of the first questions people ask. It depends upon the
definition of success within the context of the conversation. The main
development sprint (for just the GUI rewrite) was approximately 700 hours. The
current number of purchases via gumroad is around 150 users. After taking out
gumroad fees that ends up putting me a bit below minimum-wage for the main
development sprint (if you ignore any hours spent post-release). That amount
funding has certainly been helpful in paying expenses (mostly rent), though it
isn't at the scale where more full-time development is feasible. It was a good
experience and I'd consider it successful in the context a one-time sort of
event. Down the road I plan on having a much more detailed breakdown of the
fundraiser, though at the moment my FLOSS writing time is being spent on
preparing two submissions for the Linux Audio Conference (mruby-zest/rtosc).

Paid binaries are going to continue to be available for platforms where users
are likely not going to want to compile for themselves (i.e. windows/macOS).
This will help to continue to maintain support on those platforms as well as
fund other aspects of development.

------
friendly_chap
Long long time ago, in an other life I used this synth. I always remembered it
being very good for pads and clean bell-like sounds.

Can't hear much (or any) aliasing in the tracks on the page. How does Zyn
manage to avoid that?

~~~
fundamental
A number of sounds bell/pad/etc were made possible by the PADsynth algorithm
developed by Nasca Octavian Paul for use in ZynAddSubFX (
[http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm](http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm)
).

For both the pad-synth algorithm and for the add-synth engine users create a
definition for an oscillator in terms of the frequency components. Then to
play the oscillator it is converted into a time domain wavetable. For pad-
synth a collection of wavetables are created with each one corresponding to a
different frequency (and thus a different antialiasing threshold). For add-
synth when a user hits a note, then a new wavetable is build by removing the
high frequencies which would alias before performing an inverse fft.

There are still some issues with this approach since it's possible for the
frequency of the note to change over time (e.g. frequency lfo/envelopes or
add-synth cross-oscillator modulations), so in the future I'd like to add some
optional oversampling to the cases where aliasing isn't eliminated by the
current approach.

~~~
friendly_chap
Awesome breakdown, thanks! DSP is one area I never dared to venture due to my
lacking math skills. Big respect.

------
schrijver
Awesome; I really like the idea of free and open instruments as you can move
from platform to platform, i.e. compose in a computer based sequencer, than
put on a Raspberry PI for live performance etc.

I wanted to try it on OS X but I have to install Jack—will you consider
supporting Audio Unit in the future?

~~~
fundamental
It sounds like you're using one of the older builds. Right now Zyn has VST/LV2
builds for OSX though a jack style standlone isn't included in more recent
builds.

As per AU support that largely depends upon it getting implemented in the
plugin abstraction layer which is borrowed from the DISTRO Plugin
infrastructure:
[https://github.com/DISTRHO/DPF](https://github.com/DISTRHO/DPF)

If you find the idea of using a Raspberry PI for live use interesting I'd
recommend taking a look at the work that
[http://zynthian.org/](http://zynthian.org/) have been working on. They're a
pretty cool open hardware/software project that does just that (for Zyn and
other synths/effects).

------
fb03
This synth blows my mind every time I mess with it for a bit, there are soo
many parameters and possibilities. You can basically make anything with it.

Thank you for this wonderful piece of software which has helped me take
several tracks out of my head and into reality :-)

------
slurppurple
I've really enjoyed using zyn in lmms. New UI looks pretty cool

------
Jyaif
Consider doing a webasm build.

------
sideshowb
(post removed on reflection)

~~~
fundamental
For the record he stopped standing by those terms back around 2006 or so.

------
senatorobama
Can the name by improved?

~~~
fundamental
The synthesizer core along with the new GUI has been referred to as 'Zyn-
Fusion' during the development/release of the 3.x.x series, so you can refer
to it as that, otherwise people have referred to it as Zyn, ZASFX, etc.

------
grawprog
Thank you for the update. ZynnAddSubFx is my favourite open source synth. I've
used it for a few different tracks. I'll have to give the new update a try.

