Instruction manual - Pizzicato 3.6.2 EN940 - Revision of 2013/05/29

Professional

Composition Pro

Back to the Pizzicato main site

Modular audio synthesis

Subjects covered:


Modular audio synthesis principles [Professional] [Composition Pro]

The principle of audio synthesis is to create a sound artificially. In the case of a software synthesizer, the computation of the sound is done by software. The audio signal is computed and sent to the sound card so that you can hear it.

There are several methods to synthesize a sound and you can virtually create any sound. You can try to synthesize existing sounds, to modify them or just create new, unexpected sounds completely freely. It opens the door to sound creativity, in the same way than music composition opens the door to music creativity.

The word modular means that the synthesizer can be built with construction blocks. You assemble elementary blocks, each one with a precise function, to create any combination you can imagine. To master this concept, you should know two things. The first is how you can combine elementary modules into more complex structures. And the second is a description of the role of each elementary module, so that you understand when and where to use them. Only then can you start combining them and constructing a sound with some insight of what you want and how to create it. So let us start with how to combine different modules.

This part of the library contains several prepared synthesizers. As you can see, they are organized as a structured hierarchy of virtual instruments and folders.

This is a simple structure, composed of three basic modules. They are connected together by virtual cables.

A module may have outputs and/or inputs. An input is represented as a small green square on the left side of the module and an ouput as a small red square on the right side of the module. You can connect an output to many inputs, but only one output may be connected to a given input.

To play the notes coming from the score and to send the audio signal to the sound card, this virtual synthesizer must be able to receive and send signals outside of itself. This is why a module must also contain input and output ports. An output port is displayed as and represents an external connection to the outside of this virtual synthesizer, through which the signal resulting from the synthesizer will be sent. An input port is displayed as and represents a signal coming from the outside of this virtual synthesizer. A MIDI input port is displayed as and represents the influence of any MIDI parameter on the synthesizer. It can be the MIDI pitch of the note (which will determine the frequency of the note), the velocity, the volume, any MIDI controller, the pitch bend,... You may want these signals to influence the creation of the sound.

We will now learn how to add a module, a port and how to connect them together. Do not pay much attention for the moment to the meaning of the different modules. You should just understand how to connect them together. The rest of the lesson will go into much more detail about each and every module.

Adding a module or a port is done with a right-click of the mouse in the background of the window. A list of menu items appear. The position of the created module is at the location on which you right-click with the mouse, so you should first move the mouse where you want the module to appear.

As an exercise, we will construct a synthesizer with two modules, one input port and one output port. Then we will connect them together.

You can select which MIDI parameter you want to influence the sound creation. We will here need the note item, which is almost at the bottom of the list (use the vertical scroll bar). Select it and click on OK. The MIDI input port is displayed, also showing the name of the parameter it represents (Note):

The Note MIDI parameter is used any time you want the sound to be in tune with the notes played on the keyboard or from the measures of a score. This is the most common case. But you would not need it for instance for natural noises as thunder, wind, special effects,... as this would not make sense playing a melody with such sounds.

Notice that you can move a port by clicking in its main square (here yellow) and moving the mouse. Release the mouse button when you want to fix its position.

You can also move a module inside the window, by clicking in its background (but NOT in the gray or yellow sliders) and moving it. The graphic position of modules and ports will not affect the sound itself. The idea is that when you combine several modules, you may want to organize them graphically to have a clearer idea of how they are connected.

Do this now to connect the Note port to the Note input of the module. You should now have:

When you move a module inside the window, all connected ports will move with it. But you can still move the port independently.

You are now able to add and connect modules and ports. Here is a set of operations you will need while assembling modules together.

Generators [Professional] [Composition Pro]

The generator modules are used to create a sound. This sound may be a basic wave form or a sampled sound. Most generators may be modulated by another signal. This means that the sound it generates will be influenced by an input signal, coming for instance from another generator. In this section, we will examine all generator modules. You should have read the first section of this lesson, so that you know how to add, remove and connect modules in a virtual instrument.

Note generator

Create a new virtual synthesizer. In its editing window, add a MIDI input port (with Note parameter), an output port and a Note generator from the background menu. Connect them together so that you will have:

If you play some notes, you will hear a pure sine wave. It is the purest sound that you can hear, as it only have one frequency and no harmonic (an harmonic is a multiple of the original frequency of a sound). Any physical instrument will emit harmonics with its main frequency, and these harmonics, as well as their evolution in time, give it its unique sound color, also called the timbre. A sine wave is pure, but not very interesting, as it color is very poor. It is however used to create more complex sounds.

You may also hear a "click" sound effect when you start or release the note. This is because the sound is switched on and off with an abrupt transition. We will see in the later in this lesson how to smooth this by using enveloppes and amplitude modulators.

The module displays five parameters that can be modified.

The minimal value is displayed as a dark gray band, but any other value is colored in yellow proportionally.

Play a few notes and change these parameters at the same time. You will hear their effects on the sound.

When you double-click in the background of the module (not in a dark or yellow parameter area), the following dialog appears:

The upper slider is used to detune the frequency slightly. It is most usefull when you use two or more generators and that you want to create a slow beat between them. The other three sliders are used to create a volume level that depends on the note pitch (or from the note position on a piano keyboard). You can for instance create a sound signal that is louder in the lower part of the keyboard and that is progressively damped when the note pitch is higher. For this example, you can move the sliders this way:

The bottom slider is used to position the central point of the graph on the keyboard. 60 is the equivalent of the C3 note, the note below the staff in the G key. Try playing notes on a keyboard and hear their difference in volume.

We will now see how one module can modulate another module.

The left note generator is called the modulator as it will influence the other generator. We say that the other generator is modulated by the first generator.

Now you can play a note and start increasing slowly the level of the HF Modulation parameter of the second module (the one to the right here above). You will hear the sound quality change. As a general rule, the more you modulate a sound the richer its timbre will become, meaning that there are more and more harmonics present at the output. It can be easily overdone, producing a sound that becomes aggressive. It all depends on the effect you want that sound to achieve.

Now you can also modify the frequency multiplier/divider of the modulator. Any parameter change that you do on the modulator will influence the timbre of the modulated generator. You can change both wave forms and frequency parameters. If you use the keyboard amplitude dialog seen above, you can create a modulation that depends on the keyboard range. One current use is to increase the modulator amplitude in the lower part of the keyboard and decrease it as the sound gets higher.

The modulation inputs of the modulator are not connected, so changing these modulation values will have no effect.

With only two generators, you can already explore a lot of parameter combinations to create original sounds. This is however only the beginning... You should take some time to explore various values for these parameters. The more you understand how simple modules work, the better you will master more complex structures, as these basic principles apply for any combination of modules.

Free generator

A free generator generates one specific central frequency, whathever note is playing. It is more used to create special effects.

Playing a note on the keyboard gives you one fixed frequency. You can adjust the frequency with the Basic frequency and Fine tune paramters. You can modulate it with an input signal and change its basic wave form.

Low frequency generator

This generator is the same as the Free generator, except that its frequency range is different. It is more intended to generate slow modulating signal. Add a Low frequency generator and connect it as follows:

This module defines the period rather than the frequency. The period is expressed in milliseconds (1000 milliseconds is 1 second). The default value is a cycle of one second, which is the time to go through one full wave form.

Play a note and increase slightly the modulation level of the free generator. You will notice the central frequency starting to fluctuate at the rhythm of the low frequency generator. You can change the basic period and wave form of the low frequency generator, as well as the central frequency, modulation level and wave form of the free generator. Take some time to explore combinations of these parameters.

White noise generator

This module generates what is called a white noise. As the sun light contains in itself all the colors of the rainbow, the white noise contains any possible frequency of sound. Used alone, it is quite monotonous. It is often used in combination with filters and other generators, to introduce a random component in a sound.

This module has two outputs for stereo. You can adjust its output level. Play a note and you will hear it.

Envelopes [Professional] [Composition Pro]

An envelope is a relatively slow signal (compared to the speed of variation of an audible sound) that is intended to modulate another module. This modulation can influence frequency, amplitude or any other input of a module. Pizzicato offers two envelope generators.

Envelope

An envelope is a one time signal. Its shape is displayed on top of the module. The following parameters are used to modify the shape of the envelope.

Set the Modulation of the free generator to 100 %. The output of the envelope modulates the free generator frequency. Now try to modify the various envelope parameters, for instance:

While changing the various parameters, play some notes and hear the envelope influence on the pitch that is generated.

You can see that the Velocity input of the envelope has been connected to the velocity MIDI parameter. This will link the envelope output signal to the velocity of the note. Hitting the keyboard faster will produce an envelope with a higher amplitude.

Free envelope

A free envelope shape can be drawn with the mouse. Double-click the free envelope module (in its blue background) and you will see the following window:

You can freely draw with the pen tool or draw lines with the line tool that you see in the upper part of the window. The duration of the envelope is divided by 3 vertical bold lines, the last one being blue. The last quarter is in fact the part of the envelope that happens after the note is released. You can draw in the two sections.

When you play a note on the keyboard, the first three quarter of this envelope creates a signal at the output of the free envelope generator. At that point, if the note is still being held, the envelope keeps the value at the blue vertical line up to the time when you release the note. Then the last section of the envelope is generated.

Try to design an envelope with a free shape, as for instance:

When you close this window, the free envelope module displays the shape of the envelope:

Two parameters may be specified: the attack duration and the release duration. Both are expressed in milliseconds and represent the duration of the first and second sections of the free envelope. You can modify these value and play some notes on the keyboard. You can call the envelope shape window and modify it and then listen again to the resulting sound.

Modulators and other operators [Professional] [Composition Pro]

The following modules take one or more inputs and process them to create one or more output. They do not generate signals but are used to process and combine existing signals. They are building blocks to create more sophisticated virtual instruments.

The Amplitude Modulator

An amplitude modulator is used to apply an envelope to a signal. If the amplitude of a sine wave is suddenly increased from zero to maximum volume and if it is ended suddenly by setting the signal to zero, you will hear the note starting and ending with a "click" noise, which is not very natural. You can use an envelope to reshape the sine wave amplitude so that the sound appears and disappear smoothly.

If you play a note, you will hear that the "click" is no more present, as it was in the example given previously for the note generator.

An amplitude modulator has a modulation input. The input signal will act as a volume controller. This influence may be adjusted by the Modulation parameter.

You can also adjust the input and output values of the module. The first parameter is the number of inputs, from 1 to 16.

You can try to modify the parameters of the envelope, to hear the impact of the shape of the envelope.

The Delay

A delay is a module that will only delay the signal by some specified duration. It can be used as an echo. The module is displayed as:

The Delay value may be adjusted from 0 to 1000 ms (= 1 second).

The Delay amplitude is the level of the ouput signal that has been delayed.

The Direct amplitude is the level of the input signal that is transmitted directly to the output, not being delayed. This is used so that the module can not only delay the signal, but also transmits the original signal itself.

The Loop amplitude is the level of the delayed signal that is sent back to the input again. This creates a multiple echo, as the first delayed signal will go back into the input, be delayed again and get to the output, then again fed back into the input, each time with a lower amplitude. You should not reach too close to 100 %, as the signal will then stay in the loop forever.

The Modulation input may be any slow signal, for instance from an envelope or a low frequency generator. It will modulate (modify) the delay value around the fixed value. This influence may be adjusted by the corresponding slider. By using a slow sine wave in a low frequency generator and by setting the delay very short, you can create a phaser effect. By increasing the modulation level, you can create a vibrato on any non-vibrato instrument.

The Operator

An operator is a mathematical function displayed as:

It will take two inputs to create one output. You can select the type of operation by clicking on the Type of operation parameter area and you can have a choice between Addition, Subtraction, Multiplication and Absolute value. The two input signals are combined with the selected mathematical operation and the result is available on the output.

The Sampler

This sampler is sometimes called the Sample and hold module. It is displayed this way:

The purpose is to sample (= take the value of) an input signal and to transfer it to the output and hold it there, even when the input signal continues to vary. This transfer is done each time that another signal (the threshold) reaches a certain level. This threshold level may be adjusted. By creating for instance the following setup, you have a random frequency generator:

The Amplifier

An amplifier is used to mix several inputs together and to amplify or attenuate the resulting signal. It may have from 1 to 16 inputs:

Each input as well as the output, have an independent volume control.

The Multi Delay

This module is similar the single delay module, but it can generate a series of delays. It is an experimental module.

The Number of echoes can be defined.

The First delay specifies the shortest delay that will be used.

The Delays range establishes the range within which the other delays will be distributed. For instance, if the first delay is 100 ms and the range is 200 with a total delay of 3, the 3 delays will be respectively 100, 200, 300 ms.

The amplitude of the various delayed signals may be scaled from First delay amplitude to Last delay amplitude.

A Random delay factor may be added. This will vary the above calculated delays in a random way.

The global echo signal level may be adjusted by the Echo level parameter.

The Feedback level defines how many of the output signal is sent back to the input, to create a looping echo.

Filters [Professional] [Composition Pro]

A filter is a module that will amplify or attenuate some frequencies of the input signal more than others, resulting in a signal that has a different timbre or tone quality. It is used to modify an existing sound in very different ways. The way it will be changed depends of the frequency response curve of that filter. Pizzicato has a powerful filter design tool.

A white noise is applied at the input and is filtered. A low frequency generator can modulate the filter. A filter has three parameters:

The Gain is the general volume level of the input signal to the output signal.

The Frequency is the reference frequency of the filter response.

The Modulation level is how the frequency of the filter will be modulated by the modulation input signal.

You can try to play a note and modify the frequency parameter. Then increase progressively the modulation level and hear how it influences the sound.

This dialog provides three methods to design a filter. Some aspects of this dialog require a solid mathematical background to really understand how this works. We will however not go into such details. If you really want to understand everything about filters, you will be able to find out a lot of information about digital filters and signal processing on the Internet. However, this is not needed to use this dialog in a practical way.

The first thing you have to know about this dialog is the frequency response curve. It is displayed in the upper part of the dialog. The horizontal axis represents the frequencies (low pitch to the left, high pitch to the right). You could also see it as a piano keyboard. If a signal (voice, music, any sound) is transmitted through a filter, the various component frequencies of that sound will be transmitted according to the amplitudes shown on the graph. The vertical scale represents how the signal will be amplified. A zero value (if the check box Amplitude in dB is active) means that the level will stay the same. A positive value means it will be amplified and a negative value means it will be attenuated. If you disable the Amplitude in dB check box, the amplitude will be expressed as a multiplying factor, 1.00 meaning same level, less than 1.00 being attenuation and more than 1.00 being amplification.

Two sliders (vertical and horizontal next to the graph) may be used to zoom both scales in and out.

This graph really represents the specification or the identity card of the filter, as it defines the way frequencies will be treated.

The first way to use this dialog is to select one of the predefined filters in the Filter type frame. You have 6 simple different filters defined. A High pass filter is a filter that will let the higher frequencies go through it and will attenuate lower frequencies. A Low pass filter does the opposite, by letting the lower frequencies go through it and attenuating the higher frequencies. The Order of a filter is how much steep the curve will be (or the contrast between the high and low frequency amplitudes). This is defined relative to the frequency that you can specify in the same frame. The gain may also be adjusted.

You will notice that when you select a type of filter, the 'a' and 'b' coefficients area change their values. These coefficients are in fact the mathematical equation of the filter curve. The second method to specify a filter is indeed to fix these parameters, if you find a filter equation from some other source. You can enter the coefficients freely if you select the "---" filter type. These coefficients are related to the following equation:

y[n] = b0 . x[n] + b1 . x[n-1] + ... + bM . x[n-M] - a1 . y[n-1] - a2 . y[n-2] - ... - aN . y[n-N]

where y[n] is the output signal sample value at time n and x[n] the input signal sample value. Basically, this equation gives the resulting sample output at any time, computed according to the input and to the previous input and output samples ([n-1] being sample before the current one, [n-2] the one before that one, etc.).

You can specify the values of that equation into the dialog. The first two upper text boxes specify how much a and b coefficients you use. Then you can click one value on the list and edit its value to the right of it. You can set b0 as an independent value.

The third way to design a filter (that will also result in determining these coefficients, but in a more intuitive way) is the design by Bode's diagram, as displayed in the lower right part of the dialog. Check the Use Bode's diagram box.

This is a mathematical representation of the frequency response of a filter. Again, a full explanation of this representation would go much beyond the scope of this manual. Here is what you should know about it to create a filter.

Here is an example of the kind of diagram you can design:

As such a filter can have many poles and zeros, there is no more "one frequency" to specify. A filter designed with the Bode's diagram will have its external frequency parameter replaced by an evolutive parameter that will enable an external signal (envelope, low frequency generator) to move the poles and zeros inside the diagram. Here is how to define this behaviour. This is an advanced function, for users who really want to create some interesting sounds.

Once you have designed a filter, you can save its parameter to disk if you to load them back into another filter module later. To do that, use the Save filter... and Load filter... buttons. They will call the standard file save/open dialog boxes so that you can give/select a name for your filter.

Audio samples reader [Professional] [Composition Pro]

In contrast to the generator modules that create a sound using a simple wave form, the following modules create sound by reading an existing audio WAV file. It can be a single file, played at a given frequency, or a set of files that represent a series of notes recorded on a real instrument. The audio and sample readers are described here.

The Audio Reader

This module generates a sound signal by reading a specific WAV file.

The following parameters may be adjusted.

Try to select an audio file and play some notes. Try to modify the various parameters to hear their effects. You will find wave file examples in the DataEN / Libraries / Music libraries / Audio / Samples, but you can of course use any of your own wave files.

The Sample Reader

This module is used as a simple sample player. You can define a series of WAV files each containing one single sample and assign it to a keyboard area. We will create here a simple example.

The module receive the note pitch, the note velocity and can also be modulated, for instance to create a vibrato. The modulation can be adjusted and the output volume also. Two ouputs are available, for stereo sample playback.

By default, no zone is defined. We will add one keyboard zone and assign it to a specific audio sample.

If you now click in the blue area of the keyboard, you will hear the sound of a cymbal. This is a sample that does not require to loop, as the sound is a percussive effect and has been recorded from start to end as a wave file. Other instruments may require what is called a loop. For instance, if a flute player plays a note, it can be held quite a long time. There is no need to record a 20 seconds long note as the size of a sound library would be very high. So we register for instance a 3 seconds note from a real flute player and we define two points in time where the loop start and ends.

In the middle of the dialog, you can define the first and last sample of the audio file that can be used, as well as the start and end point of the loop. If the loop points are both set to zero, Pizzicato will not loop.

Here is how it works. When Pizzicato plays a note, the duration of the note is not yet defined. Pizzicato starts playing the section of the file from the beginning to the start of the loop. Until you hold down the note on the keyboard, it will then loop through the start/end section of the loop. When you release the note, Pizzicato continue reading the file up to the end. So the flute note can be held for a longer time than the original sample file.

The Create... button is used to create a new sample file. You can give a name to the corresponding new audio file, which will be empty.

The Edit audio file... calls the Pizzicato audio editor window so that you can record the audio sample you want to use. If you define a loop before calling this dialog, you will see two vertical red lines in the audio file editor. They represent the sample start and end points. You can move them or manipulate them with the right-click menu items. Adjusting the loop of a sound is a very precise activity. To sound naturally, the loop points must be choosen very carefully, otherwise the sound playback will create an artificial beat that is particularly disturbing and not natural. It may require some work to find the exact points that render the sound natural.

The original frequency is modified by Pizzicato to match the note you play on the keyboard. To give Pizzicato its reference, you can specify which frequency corresponds to the original sample file. You can specify the frequency directly or by clicking the Note... button to select the original note on a keyboard. This reference will be used to modify the audio file playback speed so that the correct note is heard. If you check the Do not modify frequency box, Pizzicato will not change the original frequency at all and play it at its original speed. This is mainly useful for percussive effects.

The New note button is used to add a single note zone, placed to the right of the last note. It is an easy way to create a percussion map by adding a note and then specifying the sample files, one after the other.

With the Delete button, the current keyboard zone is simply deleted.

You can click on the Sort button to sort the keyboard zones in note/velocity order.

If you want to see a practical example of this dialog, you can explore the Conductor view library into Music libraries / Virtual instruments / Sampled Sounds and double-click the Percussive effects instrument. Then double-click the sample reader and you will see a series of percussion instruments, each one of them assigned to a sample file.

The Sample Reader/Editor

This module is similar to the above module, but it has more parameters to define how the sound will be played back. It can be created by importing a SoundFont file and choosing the Editable Sampler option in the import dialog box. You can of course also create this module as a new module and fill in all the sample files, loop points and parameters. The Papelmedia library included with Pizzicato is available in that form.

This dialog is very similar to the sample reader dialog. Here is a description of the additional parameters.

The Original MIDI note is the MIDI value of the note as it was recorded in the sample file.

The Frequency correction is a corrective multiplying factor used to play the note. It can compensate for a tuning error, for a different original sampling rate than the one used by Pizzicato, or any other difference.

The MIDI scale influences the way half tones are interpreted. A value of 100 means that half tones are standard. This value is thus expressed in hundredth of a normal half tone. If you set it to 0, there will be no difference in frequencies when playing several notes, as these notes will be separated by 0 hundredth of an half tone. This parameter can be useful for percussion instruments or effects, where the frequency difference between consecutive notes must be reduced or cancelled.

The seven Envelop parameters are used to define an amplitude envelope to the sound. Delay is measured from the key being pushed to the moment the envelope will start to increase. Attack is the duration to reach the peak of the envelope. Hold 1 is the duration during which the peak is held. Decay 1 is the time to decrease the level down to the first decay level and Decay 2 is the time to decrease the level of the signal to zero when you release the key. Hold level 1 is the peak level (1.0 is the unit value) and Hold level 2 is the level reached after the first decay duration.

The Pan value is 0 if the sound is central in the stereophonic space. A value of -500 sets it completely to the left and a value of +500 sets it completely to the right. Any intermediate value is possible to position the sound in stereo.

The Bank and Instrument numbers are only specified for information. They represent the bank and patch information normally sent in MIDI to select that sound.

These parameters are defined for each keyboard zone. Sampling a full instrument in quality may require a lot of work, but with this module, you can create a very natural playback of a lot of recorded instruments.

SoundFont reader

This module is created only when you import an external SoundFont file. You can not edit its parameters, except the filtering parameter. This last parameter may influence the final aspect of the sound in good or bad, so it is left to the user to modify.

Tips and advices [Professional] [Composition Pro]

You will find here a few advanced tips and advices that you can use while designing a virtual synthesizer.

Drag and drop from the library

You will find predefined envelopes, generators and filters in the library. You can use them as building blocks while designing a synthesizer.

The memory combinations

This is an advanced experimentation tool. The idea is that when you create a synthesizer with several components in it, you may want to test various parameter combinations to find the one that are the most interesting. You may want for instance to try 3 or 4 different envelopes, various levels of modulations, various frequency values for a filter,... For each sub-module, you can specify one or more memories. Let us use a practical example.

Create the following setup:

An small orange square is visible in the upper right corner of every module. When you left-click on it, the memory combination menu appears. Let us say that you want to hear all combinations of these modules for a set of values of the HF modulation of the second generator and the frequency divider of the first generator. Here is how to prepare this.

  • Set the first value of the HF modulation and click the orange square and select the Add this state to memory menu item. Do the same for one or more other values of the same parameter.
  • Now set the first value of the frequency divider of the first module and select the Add this state to memory menu item. Do the same for one or more other values of the same parameter.

With that menu, you can also replace a state in memory, remove a memory, remove all memories, recall a memory or edit the memory content as a text list (for each line, you can see the parameter values as a series of numbers that you can change).

When at least one module contains at least two memory states, you will see the upper part of the window display a number of combinations:

The grayed text box displays the total number of combinations that may be created by combining all the memories of the sub-modules. If you select several values for several parameters, this number can increase very much. You can now test these various combinations by clicking the "-" and "+" buttons or directly filling in the number of the combination you want to test. The sub-modules will be set to their memory values and you can play a note to hear how that combination sounds like.

Apply an effect to a staff

You can create a virtual instrument module that have one input and one output (or two inputs and two outputs) and drag that module in front of a staff in a music score. This is a special case as this module will then process the sound signal coming from the virtual instruments of that staff. This can be used for instance for filtering, echoes or any other special effect. This module will be visible when the reference marks tool is enabled.

 


Back to the Pizzicato main site

Professional

Composition Pro