Introduction
ZynAddSubFX
is a opensource software synthesizer capable of making a countless number
of instruments, from some common heared from expensive hardware to interesting
sounds that you'll boost to an amazing universe of sounds.
The project
started in March 2002, and I had written it because I wish to make a synthesizer
that produces very beautiful sounds, but which is freely available to anybody
who needs it.
If you want to use this program to make music that is against God and Jesus Christ (like HeavyMetal, NewAge,..) STOP and think that you'll be judged someday by God Himself for causing people to lose the only way to Salvation. This will happen, no matter if you'll use my program, else's program or anything else against Jesus .
Features of ZynAddSubFX
Screenshots
Audio demos
News
Requirements
Copyright and License
Download
Compilation & Running
Documentation
Bugs
ToDo list
How to contribute
Credits
About me
Features of ZynAddSubFX:
- realtime synthesizer
- polyphonic (allows
playing more than one note at once), mutlitimbral (allows
playing more than one instrument at once) synth
- Microtonal capabilities
with any scale, any number of notes per octave (well... the no. of notes
per octave must be less than 128) and keymapping
- 2 synthesiser engines:
1) first (called "ADsynth" or "ADnote") is a complex engine
which makes sounds by adding a number of voices. Each one has filters,
envelopes, LFOs, morphing, modulation (Ring Modulation, Phase Modulation....),
resonance, etc. Each voice includes a powerful waveform generator with
up to 128 sine/nonsine harmonics. You can use Fourier synthesis or if you
don't like it you can waveshaping of functions. This engine includes antialiasing.
2) second (called "SUBsynth" or "SUBnote") is a simpler engine
who allows to make sounds by subtraction of harmonics of sounds from white
noise
- Effects: Reverb,
Echo, Chorus/Flange, Phaser,AlienWah (it's a kind of vocal morpher), Distorsion(Waveshaping)
and EQ
- The effects can behave
as System Effects or as Insertion Effects; this allows to
use many effects at the same time. You can put any insertion effect on
any part(or more insertion effects to same parts, if you like so) or you
can put the insertion effect to Master output (very usefull if you use
the EQ effect).
- Filters up to 60dB/octave
(or more..)
- Many settings has a "randomness"
option, which you can make instruments that every time produces a subtle
different sound; this produces a very pleasent effect (like analogue synths
or natural instruments that can't produces exactly same sound twice). Because
of this, even if it is digital synthesis, it sounds "warm". Listen the
ogg vorbis demos from this page to hear this effect.
- the specifications can
be easily chaged, so (for example) if you want to change the number of
voices or parts to a higher value or to allow a higher number of effects
at the same time, there is necessary to chage only a single value from
the source file (globals.h) and to recompile the program
- Intuitive and easy to
use User Interface
- Midi support
(supports many controllers) and (if you want) JACK support
- it is a free program,
licensed under version 2 of the GNU General Public License
- many other features....
It is is impossible to describe all this program's features in a half of
page
Audio demos (OGGvorbis):
All these demos are recorded directly from the ZynAddSubFX without audio
processing with another program (well, exeption cutting/ OGG Vorbis compressing).
Demo01.ogg(250k)Demo02.ogg(150k)
Demo03.ogg(105k)Demo04.ogg(190k)Demo05.ogg(170k)Demo06.ogg(50k)Demo07.ogg(80k)
Source code
of demos(7k)
News:
1.0.0 - first relase (25 Sep.
2002)
1.0.1 - removed a bug that crashed
ZynAddSubFX if you disable a part while notes are playing on that part
- added Resonance to harmonics (ADsynth). This makes possible to
make very realistic sounds, and it use small CPU power.
- added Band Pass Filters
1.0.2 - added instrument banks.
This makes possible to chage instruments easy.
- the Band Pass Filter's output amplitude was increased
- some fixes to FFTwrapper. This removes the compilation errors related
to drfftw.h (please see the docs from to the FFTwrapper.h if there still
are compile errors
1.0.2-1 - bug found and removed:
sometimes when Master/Instrument is saved, the synth crashed
1.0.3 - small bugfixes: "Bypass
Global Filter" from ADnoteUI dissapears sometimes ; removed the low amplitude
noise produced by the reverb; if you "acconect" zynaddsubfx with aseqview
no note was processed a long time
- added Notch Filter
- added the option to randomize the ressonance function
- added VU-Meter
- Change the Insertion effect modes behaves (it sounds a bit louder)
- Added to the project an external program called Spliter that splits the
keyboard and alows you to play two instruments same time. You can use this
program with ZynAddSubFX or any other synthesizer.
1.0.4 - Impooved the microtonal
settings (added key mapping to scale degree, the Master Keyshift and Part
Keyshift keeps the intervals)
- It is possible to load
Scala
(scl and
kbm) files
- It is possible to compile/use ZynAddSubFX without ALSA (see the readme.txt)
- The real detune (cents) is shown
- The interface looks better, and you have to move the mouse up/down (instead
a circular movement) to change most of parameters
- Minor bugs removed
1.0.5 -The bug that crashed
ZynAddSubFX if you change some effect parameters, it is really removed
(I forgot to update the file before upload)
- Other bugfixes and code clean-ups
- Added a Global Filter to SubSynth
- Added keyresponse limits to Part
- Added presets to Effects
- The fade is smaller on high frequecy content and larger on low frequecies;
so you'll don't hear starting clicks on basses and audible fadeins on higher
pitched sounds
- Added tunnings to Reverb: you can choose Random of Freeverb. Freeverb
is written by Jezar at Dreampoint; I used the tunings from it.
1.0.6 - Added JACK
support
- Minor improvements and bugfixes
1.0.7 - some settings (like samplerate)
are set on runtime (by command line)
- added distorsion effect
- added controllers (over than a dozen) and NRPNs (with NRPNs you can change
all effects parameters by MIDI)
- bugs removed and other improovements
1.0.8 - added mono mode and portamento
- added the EQ effect
- the output of the system effects can be sent to other system effects
- minor bugfixes and improovements
1.0.9 - added keylimit
to parts (first note priority)
- you can use multiple filter stages in order to make very steep filter
rolloffs (eg. 48 dB/octave)
- ADsynth - added noise mode and you can make fixed frequencies; added
the "Punch" parameter
- added an external program "Controller" which enables you to use the mouse
for MIDI controllers
- other improvements and bugfixes
Requirements:
- a fast computer
- Linux (tested with RedHat 7.2, 7.3)
- FLTK 1.x.x (tested with fltk 1.1.0,
1.1.2)
- FFTW 2.x.x (tested with fftw 2.0.5,
2.1.3) - necesary for Fast Fourier computations
- a MIDI keyboard or ALSA
0.9.x (with OSS emulation if you don't use JACK)
- (not required, but recomanded) JACK
Audio Connection Kit
Copyright and License:
ZynAddSubFX
is Copyright (c) 2002-2003 Nasca Octavian Paul and may be freely
distribuited under version 2 of the GNU General Public License (GNU GPL).
The program is licensed only under version 2 of the GNU GPL and not
under any other version of GNU GPL. This program comes WITH
NO WARRANTY OF ANY KIND.
All these
pages including images, diagrams and sounds are Copyright (c) 2002-2003
Nasca Octavian Paul and may be freely distributed under GNU Free Documentation
License (GFDL).
Download:
You can download the program from the project page at sourceforge http://sourceforge.net/projects/zynaddsubfx
From the download page you can download the documentation tarball
(the complete contents of all theese pages including ogg vorbis samples,
etc.) and the source code of ZynAddSubFX. Please send me instrumets/settings
of ZynAddSubFX and Midi files that sounds good with it.
There are available binaries at Planet
CCRMA or at RPMfind.
Compilation & Running:
Run "make" in the source directory. Hope all goes right. Right now, there
is no "make install".
After compilation run the "zynaddsubfx" file from the source directory.
You may ecounter clicks because the program doesn't start at high priority(yet).
To give higher priority renice the all threads of the program to -19 or
-20. It may work OK if you'll renice only the thread before last thread.
I tried to run as root "nice -19 zynaddsubfx" but I ecounter some problems.
Hope I will make this more simple. If you use ALSA, don't forget to connect
the midi output device (or program) with ZynAddSubFX (you can use "acconect"
or "alsa-patch-bay" to do this).
Read "README.txt" from the source directory for more information.
Documentation:
You can browse the documentation or download all for off-line
browsing (see the "download" section):
Introduction/BasicsBugs:
ZynAddSubFX components/structure
ZynAddSubFX user interface
Controllers
- LFO frequencies quantisize for using them with
Tempo + measure; the LFOs will be tuned with tempo; it is not very hard
to do
- Make Part::partnotes static, so the poliphony
setting will represent the all poliphony and not part polipohony
- Implement the Pitch Modulation
- Implement an export function of instruments to
Wav, .SF2, .XI ; this will make the synthesizer useful for slower computers
- more...
How to contribute:
Please send me instruments/master settings to make
a collection of instruments for putting on the program webpages.If you
are programmer, you can contribute some code.If you can donate me some
money, please do so; this way I can spend more time on ZynAddSubFX in the
future. Please notice that you don't have any obligation to pay
me for using this program (even for commercial purpuoses).
Credits
1) Most of the filters are implementations of the
formulas written by Robert Bristow-Johnson . You can get the formulas in
the "Cookbook formulae for audio EQ biquad filter coefficents" from www.harmony-central.com/Computer/Programming/Audio-EQ-Cookbook.txt
2) The Freeverb was written and published in public
domain by Jezar at Dreampoint. I used the tunnings of Freeverb into my
Reverb effect.
About me and other programs that
I wrote:
I am a 21 (Jan. 2003) years boy from Romania who
is interested in computers, music, etc. I am in the last year of studies
at Mathematics-Computer science university from my town, Tg. Mures.
I start to program in 1992. About that year I started
to be interested by music. The problem was that the keyboard that I wanted
it was much too expesive for me. This made me start studing how I can use
the computer as synthesizer. So, I had written my first synthesizer.
I won the third prize for it at programming national contest for it. After
that, I have written a new synth "Paul's Sound's Designer", and put it
on the net at www.harmony-central.com
. The sounds made by it were very good; many ideas from it I used in ZynAddSubFX
as ADsynth. After that I started to write another synth based on
filtering harmonics from white noise, but I didn't finished it. Anyway
the ideas from it I called SUBsynth and I implemented in ZynAddSubFX. All
these programs were written for DOS, because the computer I had was an
486.
In March 2002 I started to write ZynAddSubFX. I
hope that this program will help many people to make music.
e_mail: zynaddsubfx AT yahoo D0T com