Soft Synths
1. Introduction
- Now we will talk about a number of soft synths available for Linux. This is just a small selection of a number of synths I like. If you look on the web, you will find many more. Because these synths often have hundreds of buttons and settings, it is impossible to discuss all of them in every detail. That's why I will try to give a more structural overview for these synths.
2. ZynAddSubFX
- ZynAddSubFX is probably the most famous of them all. This synth is written by a Romanian programmer called Paul Nasca. With this synth you can make warm, analogue sounding instruments, and he has his own theory on how this can be done. If you start the synth in advanced mode, you will see that part of the window is reserved for system and insertion effects. Just underneath this, you will see the the number 1, with arrows left and right, to count up or down. This is the part number, and to the right of it, there is a check box called 'Enabled' to enable/disable the selected part. Every part can be a different 'instrument', and you can use 16 parts. By default every part will receive midi from a different midi channel (channel number is the same as the part number), and that is why you can use up to 16 different instruments at the same time. To the right of the 'Enabled' check box, you will see an empty field. If you click in this field, a new window will pop up from which you can select one of the preconfigured instruments which come with ZynAddSubFX. To do this, just choose from one of the defined banks (top left), and click the instrument you want to load. If you close this window, you will see the instrument name in the previously empty field. Somewhere below the part number box, there is a big button called "Edit Instrument". If you click this button, a new window will open.
- In this window you can enable/disable three different synth engines (they can be used simultaneously for one part as well), and you can click their respective 'Edit' buttons to configure these engines. The first one is called 'ADDsynth', and is designed for additive synthesis. This synth engine allows you to make complex sounds by adding a number of harmonics together. The next is called 'SUBsynth', and uses a technique called subtractive synthesis. The idea is that you start with white noise (a sound which contains all possible frequencies), and then you subtract a number of harmonics from this sound. This technique has also been used by the famous Moog synthesizers. The last synth engine is an unusual one and is called the 'PADsynth'. The idea behind this synth is that the harmonics of a particular sound can have a bandwidth as well. This means that a harmonic can be spread out over a particular frequency range (i.e. they have a bandwidth). Nasca observes that one of the characteristics of 'natural' sounds is that higher harmonics usually have wider bandwidths. With this synth engine, you can define the profile of one harmonic (its frequency distribution), choose the harmonics you want in your sound, and change the bandwidth and bandwidth Scale for these harmonics.
- ADDsynth: In the first window (when you click 'Edit') you will see the 'Global Parameters' for this synth engine. It is split up in three major parts: Amplitude, Filter and Frequency. A lot of the things you see here, are features you will find in many synthesizers. There are amplitude, filter, and frequency envelopes and LFO's. In the 'Filter Parameters' field, you can choose one of three filter categories: 'Analog', 'Formant', and 'StVarF' (state variable filter), and underneath this you can select one of the filter types (low pass, high pass, notch etc.). When you chose the formant category, you will see an edit button instead of the 'FilterType' selector. Here you can define a number of vowels by combining formants (every formant is a band pass filter for which you can choose a frequency, Q value, and amplitude). To the right of these selectors (still in 'Filter Parameters'), there are dials to control the filter: filter cutoff, resonance, velocity sensing amplitude, velocity sensing, and frequency tracking. Completely at the bottom of the 'Global Parameters' window, there is a buttons called 'Show Voice Parameters'. This will open a new window, in which you can configure up to eight voices that can be layered on top of each other.
- On the top left of the 'Voice Parameters' window, you will see the number of the currently selected voice. To the right of it, there is a check box called "On", which you can use to activate/deactivate the selected voice. At the bottom left of this window, you will see the voice number again, with arrows left and right, which you can use to select a different voice. When you switched to a different voice, you will have to activate it with the 'on' check box. Every voice can have its own 'Amplitude', 'Filter', and 'Frequency' field (like in the 'Global Parameters' window), and you will see a lot of 'Enable' check boxes to enable/disable specific parts of these units (which you can't do in the 'Global Parameters' window). Somewhere above the place where you can select a voice (at the bottom left), there is a button called "Change". When you click this button, a new window appears in which you can configure the oscillator of your voice.
- In the 'ADDsynth Oscillator Editor' you will see two graphs. The graph on the right hand side visualizes the wave form of the base frequency. Just underneath this graph, you will be able to choose a particular wave form by selecting one of the mathematical functions (default is 'Sine'). Further down this window, there are two rows of sliders. In the top row you can set the amplitudes of all the different harmonics, in the bottom row you can set their phases. The result of all these changes will be visible in the graph at the left hand side, and will be used as the base sound of your voice.
- Saving your instruments: you can save your own banks and instruments if you choose 'Instrument -> Show Instrument Bank' from the main menu. To make a new bank you can click the 'New Bank' button, and enter a name for your bank. The bank will be saved in the default bank root directory (the bank itself is a directory in this root directory). [You can set this default directory by choosing 'File -> Settings' from the main menu, select the 'Bank root dirs' tab, click the 'Add root directory' button (to define your own), enter the name of the directory you want to use, select your bank from the list of banks, and click 'Make default'. From now new banks will be saved in this directory.] If you want to save an instrument in the bank you made, you can click the 'Write' button (it will turn red), and click in one of the empty fields you see in this window. To change the name of the instrument, you can right-click this field, and enter a new name.
3. PHASEX
- PHASEX stands for Phase Harmonic Advanced Synthesis EXperiment. One of the features of this synth is that you can modulate the phase difference between the left and right channels of the oscillators with another oscillator or LFO. Another notable feature of phasex is that you can use two audio input channels (with JACK) as a frequency source for the oscillators or LFO's.
- In the 'Main' window, you will find the main controls for the patch. If you want to get help for a particular parameter, you can always middle-click on the name of that parameter. The window is subdivided in different sections, and I will now discuss a number of buttons (or dials) for some of these sections:
- General: in this section you will see the BPM dial. Phasex can use this tempo as a timing source for the LFO's, for the delay effect, or for the oscillators. Another dial you will see is called 'Keymode'. It might be necessary to set this button to one of three available mono modes if you experience too many xruns in poly mode. In poly mode, up to eight voices can be simultaneously used.
- Amplifier: here you can set the main volume for the patch with 'Patch Vol'. Further down you will see the usual buttons to control the amplitude envelope.
- Filter: with the 'KeyFollow' dial you can make the filer cutoff frequency follow particular keys. If the filter cutoff is set to 64 (center), the value of the followed key will be used for the cutoff frequency. If you would set it to 76, the cutoff would be an octave above that key. The followed key can be one of: 'Newest', 'Highest', 'Lowest', 'KeyTrig'. With the first three, you can make the cutoff follow the newest, highest and lowest key of the currently played notes. And this cutoff will be used for all the voices. With 'Keytrig', you can make the cutoff for each voice, follow the key assigned to that voice.
- Filter LFO/Filter Envelope: nothing unusual here, you can use one of the four LFO's to control the filter, and set the filter envelope.
- Chorus/Chorus LFO/Chorus Phaser/Delay: the rate of the chorus LFO and the chorus phaser is tempo based (see BPM dial). The values you can choose from are ratios, and a value of 1 means one bar in the set tempo. This is also the case for the delay time. In the delay field you can also choose one of the LFO's to modulate the length of your delay.
- LFO 1-4: first of all, there is a 'polarity' switch. You can choose if you want the LFO to be bipolar (values range from -1 to 1) or unipolar (values range from 0 to 1). If you modulate the cutoff frequency of the filter with a bipolar LFO, the new values will go above and below the set cutoff frequency. With a unipolar LFO, values will range from the cutoff frequency to a higher frequency. With the 'Wave' dial, you can select the waveform you want to use for the wavetable based sources. A number of them have variants named with a BL prefix. These wavetables are band limited at four octaves above the principal. With the 'Source' dial you can select the signal source for the LFO. You can choose from: 'MIDI Key' (wavetable with midi key based frequency), 'Input 1', 'Input 2', 'Input 1&2' (audio input signals), 'Amp Env', 'Filter Env', 'Tempo' and 'Tempo+Trig'. If you use one of the tempo sources, you can use the 'Rate' dial to choose the speed relative to the tempo (ratios, with 1= one bar). With the 'Transpose' dial, you can transpose tempo and midi key based LFO's.
- The second window (or tab) is called 'Oscillators'. Here you will see four rows with four oscillators, and for every one of them, an 'Oscillator Modulators' field. At the top of each row, there is a selector called 'Mix Mod' (oscillator mix modulation). This selector determines how the oscillator is used in the total mix. The possibilities are: 'Off' (do not calculate this oscillator), 'Mix' (add the oscillator to the signal path), 'AM' (amplitude modulate the voice by this oscillator), and 'Mod' (calculate the output, but don't add it to the mix). The other dials have the same functionality as the ones we discussed for the LFO's. In the 'Oscillator Modulators' field you can select the source and amount for four different kinds of modulation: amplitude modulation (AM), frequency modulation (FM), phase modulation (PM: modulates the phase difference between right and left channel), and 'wave select' modulation (modulates between different wave forms). For AM, FM, and PM, you can choose any of the available oscillators and LFO's as a source signal for the modulation. For 'wave select' you can only use the LFO's. With this layout you can do very complex things. For example, it is possible to let a modulator modulate another modulator, which can modulate an oscillator.
4. Minicomputer
- Minicomputer is a recent addition to the linux soft synths (2007). It is a very good synth for making experimental sounds. It's a monophonic synth, but you can use up to eight voices simultaneously. Each voice receives its MIDI input from its corresponding MIDI channel (channels 1-8), and has a separate audio output connected to JACK. There are also two audio outputs for the global mix (left, right), and two auxiliary outputs that can be use as effect channels.
- On the top right in Minicomputer, there is a field called 'amp'. Here you will find a row of dials, which you can use to control the audio output of the voice: 'id vol', 'aux 1', 'aux 2', and 'mix vol'. 'id vol' can be used to control the individual audio output of the voice. If you use the left and right mix outputs, you can use the pan slider below these dials. Further above in this field, you will see four dials to control the amplitude envelope (ADSR) of this voice, and you can also set a source and amount for amplitude modulation.
- Every voice has two oscillators, and there is a section for each of them on the left hand side of the voice window. Every oscillator can have four modulators, and there is a drop down box to select the modulation source, and a dial to control the modulation amount. This dial goes from -1 to 1, and negative values change the polarity of the modulator. Two of the four modulators are frequency modulators. The other two are amplitude modulators. These amplitude modulators modulate the output of the oscillator, and the separate FM output of the oscillator (see 'fm output' dial). This FM output can be used as a modulation source. The second amplitude modulator of the second oscillator is an exception, because it only modulates the FM output of that oscillator. To the right of the FM output dial, you will see a drop down box to select the waveform of the oscillator. To the left there is a box, where you can tune the oscillator. You can do this by dragging the cross point of the horizontal and vertical line in this box. For course tuning you have to drag in the horizontal direction, for fine tuning you drag vertically (maximum value is located at the top right, the minimum at the bottom left). The second oscillator can be hard synced to the first with the 'sync to osc 1' button. If you select this, the frequency of the second oscillator will change its 'timbre'. In between the oscillator fields and the filter field, you will see two dials to mix the output of the oscillators, before it goes into the filter.
- The filter is quite unusual. There are three filters which are connected in parallel (so they don't influence each other). The first filter is a lowpass filter, and the other two bandpass. Each filter actually has two identical units, and with the big morph dial (further below), you can morph between these (left and right) units for all the filters at once. The frequency for the filter is set in a similar way as tuning the oscillators. You can drag the crossing point of the vertical and horizontal line from left to right, up and down. If you drag horizontally, you will move the frequency up or down in units of 500 Hz, if you drag vertically, you will have much finer control (units of +- 7hz). In addition, every filter has a volume and a Q dial. The volume ranges from -1 to 1 (with negative values reversing polarity). If the volume of all filters is set to zero, you will hear no sound output for your voice (which is unusual). With the Q dial, you can control the resonance of your filter. The author of Minicomputer warns the user to be careful with this, as the sounds can become quite harsh for speaker and ears. Left and right of the Morph dial, there are two modulators with which you can modulate on the morph value. When you do this, the Morph button itself will define the offset value.
- To the right of the filter section there are six envelope generators, which you can use as sources for modulation. They have the usual ADSR layout, and a repeat button which will switch them into autorepeat mode. This will make them act as modulation oscillators. Just below the envelope generators, there is a extra oscillator, which can be used for modulation only.
- Lastly, there is a delay section for each voice, with a 'delay time', 'feedback' and 'volume' dial. The delay time can be modulated as well, with one of the available modulators.