Hacker News new | comments | show | ask | jobs | submit login
Show HN: The ZynAddSubFX open source musical synthesizer (sf.net)
53 points by fundamental 10 months ago | hide | past | web | favorite | 17 comments

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 ), the mruby-zest GUI toolkit ( https://github.com/mruby-zest ), and the Stoat LLVM static analysis tool ( 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.

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?

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.

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?

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 ).

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.

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

Zyn has some of my favourite output from a synth as well.

Here is a nice breakdown on the original author's thoughts on harmonics and randomness:


It's a very interesting read for those that are interested in such things, and gives some insight into what has helped elevate this particular synth over the more robotic or sterile sounding offerings out there

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?

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

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/ have been working on. They're a pretty cool open hardware/software project that does just that (for Zyn and other synths/effects).

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 :-)

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

Consider doing a webasm build.

(post removed on reflection)

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

Can the name by improved?

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.

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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact