Scott Wilson is on Twitter Read next : 21 great free sample packs for producers on a budget. Italians Do It Better. Related Stories.
More from Make Music. Latest Stories. Share Tweet. Follow Us. Privacy Preferences I Agree.
We may or may not be able to achieve this successfully using additive synthesis. Let us begin with some simple sounds and consider how to go about programming this in Csound. Later we will look at some more complex sounds and the more advanced techniques required to synthesize them. If additive synthesis amounts to simply adding together sine generators, it is therefore straightforward to implement this by creating multiple oscillators in a single instrument and adding their outputs together.
In the following example, instrument 1 demonstrates the creation of a harmonic spectrum, and instrument 2 an inharmonic one. A typical paradigm in programming: if you are repeating lines of code with just minor variations, consider abstracting it in some way. In the Csound language this could mean moving parameter control to the score. In our case, the lines. The next version of the previous instrument, simplifies the instrument code and defines the variable values as score parameters:. You might ask: "Okay, where is the simplification?
There are even more lines than before!
The main benefit now is flexibility. Now we are able to realise any number of partials using the same instrument, with any amplitude, frequency and duration ratios.
You should refresh this page. All of this is controlled by the VST parameters: Seed Random seed for all random choices in the synth. Quantization All parameters beginning with q are quantization parameters, working the same way as described for the synth above. This was done in the score, but now we will trigger one complete note in one score line, not just one partial. The opcode hsboscil offers an interesting method of additive synthesis in which all partials are spaced an octave apart. The next version of the previous instrument, simplifies the instrument code and defines the variable values as score parameters:.
Using the Csound score abbreviations for instance a dot for repeating the previous value in the same p-field , you can make great use of copy-and-paste, and focus just on what is changing from line to line. Note that you are now calling one instrument multiple times in the creation of a single additive synthesis note, in fact, each instance of the instrument contributes just one partial to the additive tone.
Calling multiple instances of one instrument in this way also represents good practice in Csound coding. We will discuss later how this end can be achieved in a more elegant way.
Before we continue, let us return to the first example and discuss a classic and abbreviated method for playing a number of partials. As we mentioned at the beginning, Fourier stated that any periodic oscillation can be described using a sum of simple sinusoids. If the single sinusoids are static with no individual envelopes, durations or frequency fluctuations , the resulting waveform will be similarly static. Above you see four sine waves, each with fixed frequency and amplitude relationships.
These are then mixed together with the resulting waveform illustrated at the bottom Sum. This then begs the question: why not simply calculate this composite waveform first, and then read it with just a single oscillator? This is what some Csound GEN routines do.
They compose the resulting shape of the periodic waveform, and store the values in a function table. GEN10 can be used for creating a waveform consisting of harmonically related partials. It form begins with the common GEN routine p-fields.
Thus we are able to reproduce the first example in a shorter and computationally faster form:. You maybe noticed that to store a waveform in which the partials are not harmonically related, the table must be constructed in a slightly special way see table 'giNois'. If the frequency multipliers in our first example started with 1 and 1.
In Computer Music Magazine # (July ) there is a tutorial on how to resynthesize (sort of) a single cycle of a wave using Rhino CM. But why go for a vintage sound when there are innovative VST Razor's additive synthesis engine is the perfect thing for making the sort of.
If the oscillator was playing at Hz, the tone it would produce would actually contain partials at Hz and Hz. So you need cycles from the 1. In other words, we have to create a table which contains respectively and periods, instead of 1 and 1. Therefore the table frequencies will not be related to 1 as usual but instead to In this simple example we could actually reduce the ratios to 50 and 51 as and share a common denominator of 2.
This method of composing waveforms can also be used for generating four standard waveform shapes typically encountered in vintage synthesizers. An impulse wave can be created by adding a number of harmonics of the same strength. A triangle can be calculated as 1 divided by the square of the odd partials, with swapping positive and negative values. The next example creates function tables with just the first ten partials for each of these waveforms.
Performing additive synthesis by designing partial strengths into function tables has the disadvantage that once a note has begun there is no way of varying the relative strengths of individual partials. There are various methods to circumvent the inflexibility of table-based additive synthesis such as morphing between several tables for example by using the ftmorf opcode or by filtering the result. Let us return to the second instrument 04A This was done in the score, but now we will trigger one complete note in one score line, not just one partial.
The first step is to assign the desired number of partials via a score parameter. Additive synthesis is generally very CPU-consuming, but not Harmor's engine. Its efficency is in fact, comparable to that of subtractive synthesizers. Voices may be generating hundreds of harmonics in parallel and still not overload the CPU.
Processing being multi-threaded, extra CPU cores come in handy. Resynthesis or image-synthesis, Harmor features both. Import a piece of audio and time-stretch or pitch-shift it with formant and transient preservation. Convert this to an image and edit each partial individually! Parts can be imported from other presets. In the effects section you will meet all the usual suspects: distortion, chorus, delay and reverb, as well as the mighty Soundgoodizer based on the Maximus engine.
Just like processing units, effect slots can be re-ordered. Each part has its own effect mix amount. If you don't understand it, visualize what it's doing, best way to learn! Watch how each partial evolves in the built-in spectrogram, a picture is worth a thousand words. Plugin Boutique do not have nor do they claim any association with or endorsement by these brands.