Synthesis v1.1

Synthesis is a sound generation program based upon a versatile modular synthesizer. The sounds are generated by large numbers of calculations which produce a 16 bit sound sample in memory, the sound is not produced in real time. This sample can then be saved in IFF, AIFF, WAV, MAUD and SAFF formats.

This program was previously known as Aural Synthetica but has now been renamed as Synthesis and released with the source under a BSD style License.

It can be found at www.blachford.info

 

Dedication
Introduction
Tutorial

The Main Screen
View Samples Window
Pull Down Menus
DMS Window
Waveform Editor
Basic Synthesizers
The Patch Programmer
Rendering a Sample
Patch Programming Rules

Oscillators
Envelope Generators
Mixers
Modifiers
Shapers
Filters
Amplifiers
Delayers
Tool Boxes
Output Mixers
Problems
Miscellaneous
SAFF audio file format specification

 

Synthesis v1.1 Manual
Original by Nicholas Blachford 16/4/96
Re-written in HTML May 1999

DEDECIATION
This program is dedicated to Rob Baxter.

Rob was well known as an Amiga musician and as well as being one of my first customers with Aural illusion was one of the beta testers of this program. He sadly died in 1996 at the age of 39.

 

INTRODUCTION
Welcome to Synthesis v1.1

What is a Modular Synthesizer?

Most synthesizers are based around certain elements which are organised in a certain order to generate their sound, these elements consist of an Oscillator which generates a fixed sound, a filter which cuts or boosts different frequencies and an amplifier which determines the volume of the sound, an Envelope generator is used to control the amplifier changing the volume of the sound over time, Another element also included is a Low frequency Oscillator which can be used to change the frequency over time giving a vibrato sound.

This is more or less the way synthesizers have been organised since the early 1970's. Previous to the 70's synthesizers had the same elements but they were not fixed in any way. The elements were called modules and could be connected using patch chords (wires) in any way the user chose, this gave rise to a range of sounds way beyond the scope of normal synthesizers with their fixed design.

Synthesis is a modular synthesizer modelled in software but using digital technology to add many more modules and module types than would have been found in a 1960's modular Synth. A comprehensive Patch programmer allows the user to arrange the modules in any way they choose using software based patch chords to link modules. Patches can then be loaded, saved and edited at will. There are also 30 preset "Basic Synths" which consist of preset patch setups, some of these allow one of the modules to be changed by pressing a single button, in addition to this all the module settings can still be changed allowing a wide variety of sounds.

To generate sounds the Oscillators use either the 12 basic wave forms or the user can create 24 of their own their own. A comprehensive waveform editor gives the user the tools to create an almost infinite number of waves.

There are also 8 types of Module all of which can be used to process signals in one or more ways, these also allow connections between different modules to be made.

The Tutorial will give you an idea of how the program works, The rest of this manual goes into more detail telling you what each module does.

 

THE MAIN SCREEN
The Main Screen consists of two Windows, The Digital Modular Synthesizer (DMS) window and the View Samples window. Upon bootup the program also displays a window allowing the user to select the amount of memory to be taken by the program, If Virtual memory is available the program will also allow this to be chosen. Also upon bootup the program switches the Audio filter off and allocates Audio channels if it can, if it cannot allocate Audio channels the program runs without them allowing another Audio program to be run concurrently, however in this case the Play button is ghosted so you can't press it.

 

VIEW SAMPLES Window
The View Samples window displays the sample when created and allows to see to view samples in Mono, Stereo, and both stereo sides, In mono mode only a mono display can be seen and the selection buttons are disabled.

Play - This plays the contents of the sample in memory, The Amiga is not normally capable of playing samples at 44.1KHz so the sample is played at 22KHz missing every other sample, this can make some samples with a lot of high frequency content sound slightly different sometimes than if played with a proper 44.1KHz system, 8 bit audio playback also reduces the quality of samples especially in the bass region, some bass samples will little or no high/mid frequency content can sound very noisy on 8 bit playback.

When you press play the entire sample is played whether you like it or not, once you press play it only stops once it gets to the end of the sample.

 

PULL DOWN MENUs
The Pull Down menus can only be accessed while the View window is active, there are two main menus PROJECT and EDIT.

PROJECT menu
New All - This resets the entire program, it deletes all patch connections and resets the Module settings to their defaults.

New Patch - This has no effect on the Module settings but it deletes all patch connections.

Save Sample - This allows you to save your created sample in one of 5 file formats. See @{"File Formats" LINK Fileformats} for more details.

NOTE: When saving a Sample or Patch you MUST first select the drawer to save it in - even if it is the default, if you don't select a drawer the program will save nothing. If in doubt simply put your creation in the Samples or Patch drawer.

Load Patch - This loads a presaved Patch setup, this includes all patch connections and module settings. A number of Patches have been supplied in the Patch drawer.

Save Patch - This saves all Patch connections and module settings in a single file, The user created waveforms are not saved in this option.

Save Patch + Waves - This is similar to Save Patch but this time any user created waves are also saved. These files are bigger as each wave saved uses 2K memory space.

About Synthesis - This displays some information about the program.

Quit - This opens a window asking if you wish to quit and allowing you to do so.

EDIT Menu

Zero Sample - This deletes the entire contents of the sample memory.

Toggle Filter - This allows the Audio filter to be toggled.

Audio Device - This allows you to switch the Amiga audio channels on or off.

 

FILE FORMATS

Synthesis supports the saving of 5 file formats, none of these are compressed and all samples are saved at a sampling rate of 44190 Hz.

SAFF - The native format introduced in Synthesiss sister program Aural illusion, samples are saved as 16 bit data. for more details see the SAFF specification

AIFF - This is a 16 bit file format used on the Amiga and Apple Machintosh, It also turns up on the PC as .AIF, If you have a Aura 12 bit sampler the Aura software uses AIFF for it's 16 bit data.

WAV - This is a format used mostly on the PC, this is used in Windows for storing audio. If you are porting samples onto the PC this is the one to use, samples are saved as 16 bit data. IFF - This is the Amigas 8 bit file format, most Amiga programs support this format but it is only 8 bit and quality is thus somewhat lower.

MAUD - If you have a Wavetools sound card for the Amiga you will want this, the Samplitude software and some other Amiga audio programs support it, data is 16 bit.

Once saved the samples you have created may need a touch of editing to remove clicks or other glitches which tend to appear at the beginning and end of Synthesis samples, this problem has been reduced in v1.1 but can still occur. Any sample editor can remove these noises.

 

DIGITAL MODULAR SYNTHESIZER (DMS) window
This Window is where all the other sample control windows can be accessed from. The bottom of the window contains a message box for displaying various messages. Beside this are the buttons for accessing the Wave Editor, Basic Synthesizers and Patch Programmer, at the end is a Render button which opens a window which starts the creation of a sample, the window allows you to select where your sample is to go, if you select one of the Left or Right options the sample will be rendered into that side, when one of the mono modes is used both outputs are summed.

Most of the DMS window is taken up by the buttons for accessing the modules themselves, there are 66 modules in all and there is a but ton for each one of them. There is a division between the signal Generation modules and the Processing modules, this is simply to indicate the difference between them, both the Oscillators and Envelopes can generate signals but the Envelopes have a modulation in put section so it can also be used to process signals, Oscillators on the other hand have no input but can be modulated in four different ways.

The Modules in the right hand block are for processing signals, they accept a main input and can then process it in a number of ways, there are one or more modulation inputs which take a signal and use it to control the signal processing within the module. On the far right are the Tool and Left/Right modules, the Left/Right modules are the main output modules and the samples created with the program are taken from these modules and therefore one of them must be connected when a sound is created.

 

WAVEFORM EDITOR
The Waveform Editor is used to create waves which are used within the oscillators, these can be anything from simple variations on the 12 basic waves to complex shapes which look like nothing else.

Basic Waves
There are 36 waves in Synthesis, 24 of these can be edited and changed at will but the first 12 are fixed, waves 13 - 24 are blank and can be made by the user, waves 25-36 are not blank but can still be used by the user, they have waves in them as they are used to demonstrate the Waveform modulation by the Basic Synths 25 - 33, changing these wave shapes also alters the sound created by these Basic Synths and saves you having to set up the oscillators by hand.

There are two basic ways of making a waveform, this can be mixing waves together or mixing different harmonics, you can also mix both types. Once the waves are created you can also change the wave forms using a number of functions.

Before trying anything make sure that you have picked a wave to work on, this is done with the wave slider, you can use any wave from 13-36 for wave creation but not waves 1-12.

Wave Mixing
The top right hand side of the window is occupied by 24 sliders each with a level, these represent the first 24 waves. There are no default values so pressing "Mix Waves" will create a blank wave, to mix the waves you must set the values of at least one slider then press Mix Waves. You can mix as many waves as you wish.

Harmonic waves
You can also use Harmonic wave synthesis to create waves. A plain sine waveform will sound very dull, it can be brightened up by increasing the number of harmonics in it, a Harmonic is a copy of the same waveform but at a different frequency, the number of a harmonic relates to the difference between the frequency of it and the original wave, a second harmonic is double the frequency, a third triple and so on.

To make a sound more interesting it is possible to change the harmon ics over time and you will that most of the processing effects within Synthesis will have some effect on the harmonics within a wave.

The Wave editor uses the sliders on the bottom right hand side to add harmonics to a wave, the number below a slider tells you which harmonic is represents, the wave below this is the base wave, this is used to select which wave is used as the First (fundamental) harmonic, changing this has a big effect on the sound since all but the first wave already contain extra harmonics and creating extra harmonics of this wave will create harmonics of these harmonics.

To create Harmonic waves set some of the sliders and press "Mix Harms", the first slider is set to maximum by default but this can be changed as you wish. If you wish to see the effect of adding harmonics to waves look at waves 29 - 36, these start at a basic sine wave but various are added until you get to wave 36 which is full of different harmonics. Changing harmonics over time is used in Wave modulation in the Oscillators.

Wave Combinations
In addition to Adding waves or Harmonics it is possible to mix both types at the same time, pressing "Mix Both" has this effect.

It is also possible to change the way waves are mixed using the radio buttons and Phase slider, these can be used together with the other methods.

The Phase slider sets the shift between each wave being added.

The Radio Buttons allow you to select a combination method, Add - simply adds the waves together. Sub - Subtracts the waves from one another. Mul - Multiplies the waves together, do not use too many waves as they can distort. > - Takes the greatest value of the waves. > - Takes the smallest value of the waves. OR - OR the waves together. XOR - XORs the waves together.

Modifying Waves
There are a number of options to further change the waveforms you have created, these require a wave to be present to work on.

Reverse - Reverses the direction of a wave. Invert - This Turns a wave inside out, changing the Radio buttons changes how this works.

Make Noise - Turns a waveform into noise.

Inc Noise - Adds a small amount of noise to a wave.

Random - Creates a new waveform from scratch, this does not require a wave to be present and will overwrite any there.

 

BASIC SYNTHESIZERS
These are preset patches which create sounds and show you how the program works, in most cases they also allow you to change one of the modules used.

There are 51 Basic Synthesizers all of which have been set up to produce a sound of some sort, the sounds produced are designed to show what the program is capable of, the sounds may not be very musically useful but should be interesting and useful as a starting point to create new sounds. The Modules used in any Basic Synth are displayed but have to be selected from the DMS Window in the usual way, once selected all of the controls can be changed at will, this way you can change the sound of a Basic Synth into something completely different. It should be noted that if the Basic Synth window opened after patch changes have been made they will be deleted, some of the other settings may also change.

In addition to the Basic Synths there are Variations, these are Basic Synths where you can change one of the modules, If you select Basic Synth number 3 using the Synth slider it will be displayed along with a description, the module that can be changed is the one which appears raised more than the others. On the right of the Synth Slider is a row of 7 buttons with names of Modules on them, if Modf is pressed, You will notice that "Mix 1" in the raised box will change to "Modf 1", the row of buttons are used to change the raised modules in the Basic Synths and also the patch set up, if you select one of the buttons while the Patch Programmer is open it will automatically redraw with the new setup.

 

THE PATCH PROGRAMMER
This is the Window which is full of little buttons, If you follow the Startup Guide/Tutorial it will take you through the basics of using the patch programmer.

The Programmer was designed to allow the user full access to all the inputs and outputs in the system, the Programmer allows the user to view and edit the current Patch.

Patching Controls
Add/Cut - This selects between Adding or Cutting Patch leads.

To add a patch lead select a small (input) button followed by a larger (Output) one or vice versa, you can only connect Inputs to Output or Outputs to Inputs.

To Cut a patch lead select the Cut radio button, the Programmer will then redraw itself and all the outputs will be ghosted, in Cut mode any input selected which has a patch lead going to it will be disconnected, the patch lead will be drawn over with gray, if the display becomes messy or unreadable press Redraw.

Clear View - This redraws the programmer but does not include any patch leads, the leads are still there but are not shown, this function is to allow the programming of complex patches where some connections may be unclear to see, pressing this allows more connections to be added without complications.

Redraw - This redraws the patch programmer and any patch leads, if a patch lead is cut within a module the lead will still be shown even though it may not in fact be there, redrawing clears these.

New - This Clears all patch leads and redraws the Programmer, the other module settings remain unaffected.

Test - Checks to see if the patch can compute, this is not a very complex checking system so it is still possible that no sound will be created.

Render - Starts Sample Creation.

Note: if you patch isn't properly set up it won't render and just give you an "Errors in Patch" in the DMS message box.

Please remember to follow the patching rules.

 

RENDERING A SAMPLE
Pressing any of the three Render buttons will cause the Rendering Options Window to open.

This window allows you to select which channel to render to:

Mono All - Uses all sample memory to create one big sample. Mono Left - Creates a sample in the Left channel, (no effect on Right). Mono Right - Creates a sample in the Right channel (no effect on Left). Stereo - Creates a Stereo sample using both channels.

Quality - Picks between two different tuning algorithums, the Less option can create distorted waveforms at certain frequencies, these can be heard if you sweep the frequency of an oscillator. The distortion does not occur with the Good option.

Length - Allows to determine the length of the sample between 1 and 100% of allocated memory. If you are creating a complex sample it is best to do test renders using short sample lengths then create the full sample when you are sure it will be ok.

Instability - This can be used to create a detuned effect by adding random detunes to the oscillators, best kept below 5.

Cancel - Closes Rendering Options window.

Start Render - Starts the Computation

The Rendering Process
When you press Start Rendering all except the View Samples and DMS windows close, a new window then reopens called Rendering Sample and a red bar will move across the window, this will most likely move rather slowly as Synthesis involves some very heavy computation. When the computation is complete the Rendering Window will close and the resulting sample will be shown in the View Samples Window. This can then be played if sample channels have been allocated. When you press play the entire sample is played, it only stops playing when the end is reached, there is no way of stopping playback before.

 

PATCH PROGRAMMING RULES

The way to create a patch is to start with an Oscillator and take it through various modules to the output, any modulation sources will be fed into the modulation inputs of the modules.

All Patches MUST:

1) Include at least one of either an Oscillator or an Envelope.

2) Include at least one connection to the Main outputs ( NOT Amplitude Modulation).

For All Modules:

1) The first input to the module must be used, this is left or top left in the Patch programmer (any of the 6 for Mix ers).

2) All Modules in use must have at least one output connection to another module.

Inputs and Outputs:

1) An Input can only come from one Output.

2) An Output can go to as many Inputs as you wish.

3) You can't connect an Input to an Input or an Output to an Output.

Note 1:
If you click the wrong button by mistake press it again, this will give a red flash and allow you to select some thing else.

Note 2:
Test will tell you if something will render, not if any sound will be produced or if the sound will be any use. The test is simply designed to inform the user if a given patch will render, it does not check if you have followed the rules properly.

Note 3:
Envelopes can be used as sound sources but unless they are modulated the sound produced will be probably be to low frequency to hear.

 

OSCILLATORS
Oscillators are used to create sounds which are further processed in other modules. Oscillators can also be modulated themselves in four different ways and can thus create a very wide range of sounds, these modulation types can be used simultaneously creating very complex sound waveforms, these oscillators can be considered as miniature synthesizers in their own right.

The Oscillator window is split into 5 parts: Waveform Modulation. Main Oscillator Controls. Phase Shift Modulation Pulse Width Modulation. Frequency Modulation.

Main Oscillator Controls
These are located about half way down and consist of 6 Sliders and two check boxes:

Waveform - This sets which waveform is used by the oscillator to create the sound, this is the basis for the sound created by the oscillator as it is this wave which goes on to be modulated and shaped.

Amplitude - This determines the volume of the Waveform, this is preset at 256 which is the normal maximum level, above this distortion sets in and the sound changes.

Delay - For some sounds you may want a period of silence before they begin, this could be like strumming a guitar where the lower pitched strings are hit before the higher strings. The default is 0 but it goes up to 128, this produces a delay of approximately 1 second.

Note - This determines the note which is generated by the oscillator, this ranges between 0.06Hz to 3951Hz, If Frequency Modulation is used this range can increase.

Octave - This is used with the note control to change the output frequency, changing the octave either doubles or halves the frequency.

Detune - To thicken up sounds multiple Oscillators are used all slightly detuned, this slider slightly changes the frequency.

NEG - This turns the output of the Oscillator upsidedown.

REV - This reverses the output of the Oscillator.

Waveform Modulation
This form of modulation changes the shape of a waveform over time, to use it the waveform must be set to 0, the waveform sliders along the top of the window set and a modulation source selected.

Below the 8 wave displays are the Wave Modulation controls:

NEG - This flips the modulating waveform upside down.

Source - This selects the input for modulation, it is this input which selects the waveform from the 8 waves at the top.

Copy - This copies the waveform setup from another oscillator, the slider below picks the oscillator.

Reverse - This Reverses the 8 waveforms.

Used on it's own (especially without detuning) waveform modulation creates sounds which are totally different to anything else created with Synthesis, the nearest thing sound wise would be if you have used "Synth sounds" in OctaMed or Ageis Sonix. One interesting technique is to use different oscillators with the same waveform and modulation source but with the Oscillators at different octaves.

Phase Shift Modulation
This changes a waveform by taking a copy, Modifying it and recombining it with the original.

Source selects the modulating wave in the normal way and NEG flips it upside down.

The level determines the level of modulation and can be used to make the effect more or less dramatic.

+ Only/- Only/Both determines how the wave is shifted, + Only means the shift is only forwards - Only makes it backwards, Both means the shift is backwards or forwards depending on the input wave, + and - shifts give different sounds and changing between them gives a very dramatic change.

The Invert, Negative and Reverse options apply to the wave being phase shifted, this is then combined with the original wave giving a wide range of wave shapes, Reverse and Negative do the usual but invert turns the waveform inside out giving a radically distorted wave.

Add/Mul/>/OR determine the way in which the two waves are then combined.

Used with the Negative/Reverse/Invert option and +Only/-Only/Both gives a total number of 128 different types of combination - and thats before the modulation wave changes!

Pulse Width Modulation
This is an effect found in some analogue Synths but usually only applies to a single wave type. Basically it takes the waveform and splits it in the middle, it then moves the line back and forth causing the two halves to alternately stretch and squeeze. This causes the harmonics found in the waveforms to rise and fall giving a pleasing thickening sound. The level in this case determines the maximum stretch/squeeze, the result here depends on the wave, the more harmonics this has the more pronounced the effect.

Frequency Modulation
Frequency modulation allows the note to be changed by several octaves creating some interesting sounds, there are some examples of these in the Startup Guide/Tutorial, if you modulate the waveform and frequency at the same time you can get some interesting laser type effects. If you wish to use FM to give a chorusing effect you should set the level slider at 5 or lower - anything higher will give fairly mad frequency sweeps. Please note that this has nothing to do with FM synthesis as found in the Yamaha DX7.

+ Fix & - Fix give you a couple of additional options which are designed to sound something like Oscillator Sync on analogue synths, Fix prevents the pitch of the waveform changing but allows the waveform to change, this gives a harsh sound a bit like Pulse Width Modulation.

 

ENVELOPE GENERATORS

These actually now work. They produce an envelope determined by the sliders on the right and it's length is as long as the sample itself. The interesting bit is when you modulate it.

Making an envelope
The principle here is the same as Ai but should be somewhat less con fusing. An envelope is made up of points which slope into one another. Setting the Envelope point sizes is done by changing the depth sliders. The lengths between the points is set by the length sliders, these work by ratios so setting them all to 1 gives the same result as setting them all to 256. If you don't want a slope between points set the length to zero, this makes the value jump.

The first point is set at zero so if you want to start at a different value set the first length at zero. The Envelope Default is like a standard Attack/Decay/Sustain/Release type envelope but much more complex types can be generated.

Envelope Triggering & Modulation
This allows the Envelope to be started at different points or even used as a waveform. There are 3 options:

First Trigger only allows the Envelope to be generated only once but the input determines where this is. It is triggered by a crossing of zero in a waveform.

All Triggers allows the envelope to be started multiple times however the envelope length remains the same.

Modulation allows the envelope to be used in a completely different manner. In this case the envelope acts as a waveform, the input waveform determines which part of part of the envelope is output, changing the shape of the input wave changes the shape of the enve lope wave, the envelope wave also takes on any changes made to the input wave so if it has been frequency modulated the envelope also becomes frequency modulated.

Amplitude Modulation
Normally a Envelope is used to modulate the level of something such as a volume or whatever but in this case amplitude modulation is directly applied to the input wave.

The input wave can be used entirely or half only: Full wave uses the entire input wave for modulation. Half wave only uses the top half of the input wave.

There are two options for modulation: Multiply multiplies the envelope with the input wave. Add adds the two together.

 

MIXERS

There are 6 mixers for processing and a further 2 for Left and Right output, They can all be used within the program as sources and all have amplitude modulation.

At the top are 6 input sources along with sliders for setting their levels, To retain volume levels the inputs levels are calculated as a ratio, what this means is that setting the inputs all to 1 is the same as setting them all to 256, the sliders allow you to set the relative levels of inputs not the total level.

The Mixers can also be Amplitude modulated, the level slider here determines the level of modulation and the NEG option flips the modulating wave.

 

MODIFIERS

This is the first Module that does some real processing.

The input is selected at the top along with some basic wave changing options

Full Wave makes negative parts of the wave positive.

Half Wave Zeros the negative parts of the wave.

Invert turns the entire wave inside out.

Distortion Modulation
This allows you to distort a sound but also to modulate the level of distortion. In addition to this there is a contortion option which gives a different form of distortion which can change a perfectly normal waveform into pure noise.

NOTE : The distortion level is set by the level slider, this applies even if there is no input, setting it to the default of 1 has no effect on the sound, the slider is in binary values so that 2 doubles, 3 quadruples etc..

Wave Modulation
This allows the wave shape to be modulated, depending on the two waves used the result can be subtle or dramatic.

Greater gives the greater of the two waves.

Lesser gives the smaller of the two waves.

Stutter uses the modulating wave to determine which parts of the main wave is zeroed, if the modulating wave is zero the main wave becomes zero.

Rectify uses the modulating wave to change the sign of the main wave. If the modulating wave is - the main wave is made - and if + it is forced +.

 

WAVE SHAPERS

This is another module which changes the shape of the waveform.

The first stage is the Phaser, this is similar to a Phase shift but it changes over time, The waveform is Phase shifted by a value which is calculated by the program, The Phaser slider determines the maximum change but this moves between it's value and zero, the bigger the value the longer this takes, this gives everything from a strange wave shaping effect to a chorus type of sound.

The Level determines the amount which is added back.

The Phase/Both determines which of the waves are made negative, whether it is the phase waveform or both.

To switch off the Phasing set the Phaser level to zero.

Limit Modulation
This limits the change between individual samples, this shapes the waveform into a triangular type wave, the limit determines the amount of limitation, the lower the value the smaller the limit and the bigger the change. The limit can also be modulated by an input giving yet another interesting sound.

Standard - Normal limitation. Add - Adds limited signal to original. Multiply - Multiplys original and limited signal.

Shape Quality Modulation
This changes the digital quality of the waveform, doing this adds harmonics to the wave form and can be used to good effect.

There are 4 options here:

Bandwidth - Modulates the bandwidth of the samples, this gives an effective sample rate output between 22 and 344Hz, sweeping this makes a very interesting sound, at lower sample rates additional harmonics are generated and these are swept with the length of the samples. The output is very dependant on the sample being processed.

Bits - In Ai you can set the number of bits in a sample from 16 to 1. The less bits the more noisier it becomes. Here is works by division so the change between is less sudden, it's more of a gradual change, this however can also be swept giving an interesting sound but completely different from bandwidth changes.

Both - This is both Bandwidth and Bits modulation together.

Both Opp - This is both Bandwidth and Bits again but this time as one goes up the other goes down producing a very different result from the above.

 

FILTERS
The filter consists of a 7 band Graphic Equalizer, this splits a sound into 7 frequency ranges and allows you to set them, the ranges go from very low frequency bass sounds up to very high frequency sounds.

The level slider sets the output volume, the EQ can sometimes give very low volume results so the slider can be set up to 512 to increase the output volume.

Depth Modulation
The Depth Modulation mixes the input and outputs from the filter changing it's effect on the sound, this modulates between full EQ and none the volume can also change quite a bit what modulating.

 

AMPLIFIERS
The Amplifiers allow levels to be set with the Level slider.

Amplitude Modulation
The Amplitude can be modulated with the second input and the level set with the slider.

Wave Combination
Wave Combination allows the main wave to be combined with the third input in a number of ways producing some very different sounds.

Add simply adds the sounds

Subtract gives the opposite of Add.

Multiply makes the wave change over time.

Divide gives a very thin sound.

AND gives a thick sound.

OR gives very similar results to AND but slightly different.

XOR gives a different type of thick sound.

 

DELAY
This gives a sweeping effect, it is limited to a short delay which is set in the Level slider. Add/Sub selects the way the delay is recombined.

Delay Modulation
The Delay can be modulated with the Delay Modulation input, allowing a sweeping effect to be generated. Although if you feed a frequency modulated sound into the delay with no modulation it also gives a sweeping effect.

Depth Modulation
The Depth Modulation allows the level of the delay to be modulated with another waveform, this mixes the effect with the original signal.

Phaser
The Phaser is much the same as the Phaser in the shaper. As with the shaper a smaller value gives a faster effect.

 

THE TOOL BOX
The tool box is the module where what was left went, It includes five separate effects.

Noise Generator
If the level is set above 0 the incoming wave is byte reversed giving a very noisy output, feed in a low frequency waveform and you will get an interesting sweeping effect, mix two together and feed them in and it's even better. Level sets the level of the output, 0 has no effect on the waveform.

Sample and Hold
This is an effect found on old Synths which is very recognisable but not by listening to the output. Feed the output into the frequency modulation section of an oscillator and you get a 70's computer blipping away. The hold length can be very long so a bit of messing around with the slider may be required. The Input determines the length that the hold is held for. Basic Synth 12 and 13 show this in action. 0 disables this effect.

Amplitude Modulation
This was added here to spice up the sample and hold a little bit, the hold output is set values but the Amplitude modulation allows these values to be modulated. If this is then feed into a frequency modulation input the result can be very weird indeed. You can of course feed this into all the oscillators inputs. Basic Synth 14 shows the effect of adding this after the sample and hold.

Basic filter
The next two sections of the tool box combine to make a tunable resonant filter, If you are expecting all the gurgles and blips of a proper analogue filter it's probably better to get the real thing as this isn't the same at all, (although you can program gurgles if you want) the output however is quite interesting as it sounds like no other filter. The filter frequency is modulated by the modulation input and the level is set by the level slider. A number of filter modes are available. Setting the level to 0 disables the filter but if an input is still present it is still used to determine the resonance frequency.

Low Pass - Keeps only low frequencies. High Pass - Keeps only high frequencies. Band Pass - Keeps only mid band frequencies. Band Cut - Cuts the mid band. Notch Pass - Keeps only a small number of midband frequencies. Notch Cut - Cuts only a small number of midband frequencies.

Frequency - Sets the frequency at which the filter operates, if there is an input both of these determine the frequency, by setting the frequency to zero only the input determines the filter frequency.

Level - Sets the depth of the filtering.

Resonance
The Resonance is controlled separately from the filter, the depth is set by the slider but the frequency is controlled by the filter modulation input/slider. The modulation input to the resonance section modulates the depth of the resonance, it is perfectly feasible to have a filter with resonance fading in and out and it is also possible to have resonance without the filter, something which isn't possible with an analogue filter, in this mode the resonance will give similar results to the delay. setting the level to zero disables the resonance.

Level - Sets the level of resonance.

Delay/Filter/Both - Determines the type of resonance used.

Low Q/High Q - Determines the sharpness of the filter used for resonance in the Filter and Both options above.

The low pass filter with resonance can be a touch crackly but this can probably be used to effect.

 

LEFT & RIGHT OUT MIXERS
Both of these work but the outputs are combined and give a mono output. They work in the same way as mixers but unlike the other mixers you do not need to take an output from them as this is automatic. It is however possible to use the output as a modulation or sound source in the program.

Stereo Output
When the Program creates a stereo sample the Left and Right outputs are used to create each stereo side, in all other modes the outputs are added

 

PROBLEMS

Q & A

Q1 - How do I stop a sample from playing?

A - You don't! The entire sample will play then stop.

Q2 - Why are clicks or glitches at the beginning or end of the sample?

A - This is due to the way the program but it can be reduced by use of the Envelopes by setting the sound to begin and end inside the area of the sample. Alternatively a Sample editor can be used to cut or zero the offending parts of the sample.

Q3 - If I save a sample and use it in a music program it sounds far to slow and low pitched.

A - Synthesis saves it's samples at 44.1KHz and this can be too high for some sample programs, the way to get round this is to resample to a lower sampling rate or retune the sample. If the program has a Transpose function (like OctaMed) this can be used. If you have Aural illusion there is a manipulation called "Octave -" which will cut the sample rate down to 22KHz where it can then be transposed.
NOTE: There is a known bug in the SAFF saver which also causes the above effect.

Q3 - Why does sound playback stutter?

A - Playing back 16 bit sound with 8 bit hardware requires it to be converted in real time, without using "clever" playback routines this becomes quite a chore for the CPU and anyone with a 68000 may have stutter. This will probably happen if you are running other programs so the way to avoid it is to stop the other programs.

Q4 - Why wont the program play a sound?

A - If the sound channels are in use the program will run without them, When this happen the Play button is ghosted.

Q5 - I have found that when I press play the program can freeze, why?

A - This has happened in some beta versions but the bug was fixed, it may still occur but shouldn't, if it does - or if you have any other serious problem please let me know.

 

MISCELLANEOUS
Synthesis v1.1 was written entirely in C by Nicholas Blachford using:
Amiga A1200 68030 50MHz 10MB +60MB HD +Zip 100MB
SAS/C v6.2 (v1.0 - 31,508 lines, 814K) (v1.1 - 32,680 lines, 843K)
GUI code generated by GadToolsBox v2.0 - (no it didn't like the Patch Programmer either)

Many thanks to :
SAS Institute for SAS/C.
Jan van den Baard for GadToolsBox.
The old Commodore for Enforcer and other tools.
Sound on Sound and Future Music for various ideas and articles on Modular Synthesizers.
All at MidiCraft and MUG.
Amiga Technologies for finally showing they're doing something.

The Beta Testers:
Kevan Craft
Gareth Craft
Dave Sullivan
Rob Baxter
Fergus Duniho

And special thanks to : Julian & Sue Sula for selling the program for me, a few trillion ideas and putting up with me on the phone!
James "Owen" Hill for selling me his Monitor (EURO 72 is much better on the eyes).
Amiga Shopper for putting Aural illusion v1.1, Synthesis Demo & Patch disc vol1 on the cover.

Synthesis source code, Synthesis.html and Synthesis Tutorial by Nicholas Blachford 16/4/96.

Back to the top

 

Synthesis v1.1 Tutorial

Synthesis v1.1

Digital Modular Sample Synthesizer

Startup Guide / Tutorial

Getting Started with Synthesis

Running the program. This program can be run from floppy or hard disc provided that the Workbench has been loaded first, It requires Kick start/Workbench 2.04 or higher and 2 Meg of RAM to run. An accelerator and Fast RAM are highly recommended as this program is highly computationally intensive. Users with a 68020 or better should use the 020 version, This includes users with A1200, A3000, A4000 and any other accelerated machine which does not use a 68000 or 68010.

Installation If you wish to put the program on a Hard Disc simply copy the Synthetica Drawer to the disc where you want it to go, it can be copied anywhere. If you do not have AmigaGuide on your system use the AmigaGuide installer, it will in stall the AmigaGuide program.

What is Synthesis? Synthesis is a very powerful sound creation program which uses modular synthesis design to create any number of sounds. Due to the nature of the program it also turns out to be fairly complex and to help the beginner some Basic synthesizer setups have been added which do the setting up for you and also show what can be done with the various modules.

This guide is designed to help you start using the program, A more detailed manual is on the disc in AmigaGuide format called Synthetica.guide, this goes into a lot more detail on what the individual modules do. Most people will start messing around with a program before even looking at the manual - this method is likely to leave you very confused with Synthesis as it is a very complex program, if you've tried and you're lost this book is for you!

Starting Up. When the program is run 3 windows will appear, the middle one has a slider and using it you can select the amount of memory the program will use, this will not take all available memory as some will be needed to display various win dows. If you are running it for the first time set the memory slider to 50,000 and then press OK, this is the minimum memory that can be allocated. When a sound is created with the program it is created in CD quality sound (16 Bit at 44.1KHz). In mono you should have about 1/2 of a second of sampling time or 1/4 of a second in stereo.

When you press OK a window will appear called Setting Up, this initialises the program and sets up the basic wave forms which are used to create sound. If you have another audio program running Synthesis will not allocate the sound channels, if you then create a sound you will then have to save it before you can hear it. If you are running this alone it will take the sound channels and allow you to play the sounds.

A Brief tour of Synthesis The program has two main windows which are always open.

The top one is called View samples and this is where your created sound is displayed, the play button lets you hear the sound and the Left/Right/Both buttons display different parts of the sample if it is stereo.

Pull Down Menus can be accessed from the window, these are New All - This deletes all patch connections and resets all module settings.

Project Menu
New Patch - This deletes all patch connections.
Save Sample - allows you save a sample in one of 5 formats, IFF, AIFF, WAV, MAUD and SAFF.
Load Patch - Allows the user to load a presaved patch
setup, the sound can then be recreated by pressing render. Save Patch - This saves all patch connections and module
settings in a single file. Save Patch & waves - as save patch but includes user created waves (NOTE: only saves waves used in a patch).
About Synthesis - Displays some info abut the program.
Quit - Allows you to quit.

Edit Menu
Zero Sample - Deletes all sample data.
Toggle Filter - Toggles the Audio filter.
Audio Device - Switches Amiga audio on/off.

The lower Window is the Digital Modular Synthesizer or DMS window, this is were all the action happens, from here you can open all the other windows and set up your sound. Starting at the bottom left is a dark space, messages are displayed here and tell you whats going on. This is followed by the word Edit: followed by three buttons - Wave forms, BasicSynth and Programmer. These three buttons open the Editors. The final button is called Render and this starts the sound creation process.

The Wave Editor
This is a large window covered with buttons and sliders, this is where you can create your own waves.

The first this to do is to look below the large black win dow for the wave slider, this will be sitting at wave 13, this is the first user wave, the first 12 waves are the basic waves and these cannot be altered, you can view them by moving the slider from 1-12, the remaining waves 13-36 are all blank, these can be used to create your own waves.

Creating a wave
I will not go into detail here as Synthetica.guide will explain this, but to get you started this is how to create a simple wave.

First select wave 13, the display should be blank. Press Mix Harms and a sine wave will appear which is the same as basic wave 1.

If you look on the right hand side of the window at the bottom you will see a set of vertical sliders numbered 1-128. the first is at maximum by default, select this and move it down to about half way, then select slider 5 and move it up to about half way. Now press Mix Harms again and a somewhat different wave will appear.

In the middle of the window at the bottom is a row of small radio buttons, named Add/Sub/Mul/>/ , < , OR and XOR options however will create totally different waves.

Basic Synthesizers
Now close the Wave Editor and Press BasicSynth, which will open the Basic Synthesizers window.

Basic Synthesizers are Presets which have been built into the program, these allow you to create new sounds without changing the patches or can be used as a starting point for your own setups, all the modules used in a Basic Synth can be changed in the usual way so a large number of sounds can be generated from a single set up.

When the Window is first opened a simple display with three boxes appears along with the message "Basic Single Oscilla tor". To hear this sound press one of the Render buttons, there is one in the bottom right hand corner of the Basic Synth window. It will open a small window in the center of the screen, Press the button beside MONO LEFT followed by Start Render. All open windows will then close (except View and DMS) and a small Rendering Sample window will appear, a bar will move across the window to indicate progress, If you are using a 68000 machine such as an A500+ the progress will probably be very slow as a great deal of calculations are done when Synthetica creates a sound, Fast RAM will boost the processing speed but a better CPU and fast RAM should would be the best option, please note that if you are using a faster CPU speed will increase but you will not get full benefit of the CPU unless fast RAM is used, this is true for any Amiga Program.

Once the calculations are complete a waveform will be drawn and if you press play you will be able to hear the sound. The sound created by Basic Synth 1 is not very exciting but you can make it better.

On the DMS window is a large number of numbered buttons, on the top left is one called Osc 1, press this and a big win dow full of buttons and sliders appears, The Window is titled Oscillator 1, it is the Ocsillators which make the Sound in Synthesis, the other modules change the sound produced by the oscillators. The Oscillator will also have 8 black boxes along the top with the first occupied with a wave, this is a triangle wave and to change the sound you will change the wave into a square wave. To do this you need to find the Waveform slider, if you look at where the waveform is displayed and go downwards you will find Waveform Modulation, if you keep going downwards you will find 3 sliders labelled Waveform, Amplitude and Delay. The first one labelled Waveform selects the waveform you will be changing. The value of this will be 3, change this to 2, now go to the bottom right hand corner of the DMS window and press render, don't use the Basic Synth window as opening it will reset the waveform value.

Once the sample has been recreated press play and it will sound a lot louder. If you wish you can try the different waveforms to hear the different sounds that can be produced by different wave shapes, some of the differences will be big but others will sound vary similar.

Open the Basic Synth window and now move the Synth slider to 2. This setup uses 2 Oscillators to create an improved sound, press render and play the sound and you will notice it is very different, this is because the waves produced are at slightly different frequencies. If you press Osc 2 oscillator 2 will open, look at the Waveform slider and it will be 3, now look at the three sliders on the right and the bottom one is marked Detune, the two sliders above set which note is played and the octave, the detune slider allows the note to be made slightly higher or lower, set it to 100 and press render again. This will produce another similar sound but because it has more detune is not quite the same.

The different waveforms come in useful here, set Osc 1 and Osc 2 waveforms to number 5, you will not need to close the Oscillator window as the window is updated if you press a button for another oscillator. One the sound is created you can hear the effect, another subtle change can be made by reversing one of the oscillators, Open Oscillator 1, on the right of the detune sliders are two check boxes, one marked NEG and another marked REV, NEG turns the waveform upside down and rev reverses it, click REV. Make sure the waveform in both Osc 1 and Osc 2 is still number 5 render this sample and you will hear a different sound.

Modulating Sounds
These sounds are only subtly different but what if you want a more interesting sound? To do this you will need to use a form of modulation. To Modulate a sound you change it over time, this can be done in a number of different ways. To illustrate this open the basic Synth window and move the slider to number 10, press render to hear the sound.

This will sound different to anything before but it can be enhanced further. Open Osc 2 and change the waveform to number 8, below the Waveform slider is another slider marked Amplitude which determines the output volume of the Oscillator, setting the value up to 300 will introduce some distortion, this wont sound bad but will introduce some extra treble in the sound. The form of modulation used here is called Pulse Width Modulation and if there is more treble the modulation will be more pronounced, render the sound to hear the difference.

In Basic Synth 10 two Oscillators are used but only one has the modulation. Open Osc 1 and look at the bottom left of the Window, you will find an area marked Pulse Width Modulation along with a Slider, a NEG check box and a Source button with the word NONE beside it in a box. The word NONE indicates that there is no modulation input and it is this which we will change. Press the Source button and a small window called Pick Source will appear select Oscillator 3 and the word NONE will change to OSC 3, now close the Pick Source window and press render.

You will notice that the sound is now more pronounced.

Other Modules
Synthesis uses Oscillators to create sound but there are also another modules and these are used to do a number of sound processing functions, all of these modules modulate signals or can be modulated by them.

Envelope Generators create a signal which is used to change the volume of a sound. Apart from Oscillators these are the only modules which can create a signal.

Mixers are used to take in a number of signals and mix them together.

Modifiers change the shape of the sound waves which are passed through it changing the sound.

Wave Shapers also change the shape of waves but use different techniques to produce different sounds.

Filters change the levels of different frequencies, this type of filter is called a Graphic Equalizer and could be considered as a glorified tone control.

Amplifiers Control the volume of a signal but also provide some more wave shaping capabilities.

Delayers hold a signal for a short amount of time and add it back to the original signal, this completely changes the character of the original signal.

Tool Boxes contain a number of different functions includ ing Noise generation, Holding sample values, Amplitude Modulation and a sweepable resonant filter, this is a different type of filter from the Graphic Equalizer and has a totally different sound.

Left and Right are mixers which function as Outputs, if you don't connect one of these you will get no sound.

The Basic Synth Window shows how the different modules are connected, If you look at number ten you can see there are two Oscs and these are both connected to the Left output, Also connected to the left out is Env 1, the effect of this is best shown using Basic synth 1, if you render this again you can see that the waveform is not a fixed volume but changes, if you press Env 1 you will see a similar shape as Env 1 is used to generate the envelope.

The Patch Programmer
Now to try a different type of modulation but this time you will use the Patch programmer to connect up one of the processing modules.

To open the patch programmer press Programmer on the DMS window, a large window will open which is jam packed with little buttons. This window isn't an exercise in trying to horrify the user or an entrant to worst user interface of the year but is in fact an easy way of programming patches.

Once you have figured it out the programmer will in fact be quite easy to use, and the best way to learn is experience.

Open the Patch Programmer, there may be a few red lines on the window and these are the patch leads. These patch leads will not be required so the first thing is to delete them, the quickest way to clear a patch is to press New, the window will then redraw itself without any patch leads.

This only however clears the patch leads, we will also need to reset the settings for the various modules, to do this click on the View Samples window, then use the Pull down menu "New All" this not only clears the patch leads but also resets all the settings.

Return to the Patch window and find Osc 1, this is not clearly marked in the patch window but is easy to find. It consists of 5 buttons in the top left hand side, the large button is the output from the Oscillator and the 4 small buttons are the modulation inputs. Click once on the large button marked 1, the words "OSC 1 Output", "Select an In put" will appear in the black message box. The next button to find is the input to the shaper, to find it look in the middle of the window at the top for the word "SHAP" this indicates the buttons below are for the shapers and it is one of these you will be looking for.

Immediately below SHAP will be 4 buttons, one large one marked 1 and three small ones marked P L and S. The input to the Shaper is the left most one marked P. Click on this and a red line should appear, If it does not something has gone wrong, click the P button again until a red flash appears in the message box, this indicates an illegal connec tion has been attempted and it is waiting for the user to do something, if you ever press the wrong button by mistake simply press the same one again. Now go back and try again.

The input to the shaper from Osc 1 has been connected and now it is time to connect Osc 2 to the Shape Quality Modulation input. To do this go back to the SHAP and click on the small S button, The words "SHAPE 1 Shape Modulation Input", "Select an Output" will appear in the message box, now go across to were you connected Osc 1 output and look below it for the large button marked 2, this is the output from Osc 2 and you should click it. You do not have to connect Inputs and outputs in any order but you cannot con nect an Input to an Input, you also cannot connect an Out put to another Output.

You have now connected a sound source to a processing mod ule and also added a modulation input, this in itself will not produce any sound as you have not connected a main out put.

Press Test and the words "Errors in Patch" will appear, this indicates that your patch cannot be calculated, If one of the main outputs is not connected this error will appear, another reason it can occur is if no Oscillator or Envelope is used in the patch, these create the original sound and at least one of either must be used (you do not need one of each).

Find SHAP again but this time click on the big button marked 1, the words "Shape 1 Output", "Select an Input" should appear. The Main Outputs are located in the bottom right hand corner, they consist of 7 small input buttons and a large output button, there is a Left and Right output and you want the Left, there are 6 small buttons marked 1 to 6 and a seventh marked A, click on one of the numbered ones (doesn't matter which).

There should now be three red lines which you have added, now press Test and the words "Patch OK" should appear, if not somethings gone wrong, if "Errors in Patch" appears press New and start again.

Before moving on I shall explain the other buttons - You have used New and Test but there are also "Clear View", "Redraw" and "Render". Press Clear view, the screen will redraw itself but you patch leads will have disappeared, they have not been deleted simply removed from view, press Test and you will see that "Patch OK" will appear. If you are wondering at the use for such a button it is there in case your patching gets complicated, when a highly complex patch is created you can end up with patch leads all over the place and it is not always clear what you are doing, Clear View removes the existing patch leads from view to let you add patch leads clearly.

Redraw redraws the patch leads, when you cut a patch it is not deleted from the view and this can be a bit confusing, Redraw simply redraws all existing patch leads. Press Redraw and the leads you added will reappear.

The Render button is the same as the Render button on the DMS and Basic Synth Windows, don't press it yet as the patch is not yet complete.

Open Osc 1 and make sure the waveform is number 1, You will also need to change the Octave to number 14, the octave slider is the middle of the three sliders on the right, the display the Note slider should change to "C 523.25 Hz"

Now press Osc 2 on the DMS window and the Osc window will redraw itself. Make sure the Waveform is number 3 but this time change the Octave to number 5, the display beside the Note slider should read "-- 1.02 Hz".

You will now have selected a high frequency sine wave in Osc 1 and a very low frequency triangle wave in Osc 2. The low frequency wave is way below what humans can hear but in this case it is being used to modulate one of the effects in the slider. You should now close the Oscillator window.

The Shaper also need to be set up properly as well. Go across to the middle of the DMS window and find SHAP 1, once you have found it click it and a window will appear in the middle of the screen titled Wave Shaper 1. At the very Top is a slider marked Phaser which is set to 128, this should be reset to 0 as it is not used in this patch.

You should also notice a Source button and the word "OSC 1" beside it in a box, this is the patch connection that you made to the P button in the patch programmer. The second connection was made to the S button and this is the Shape Quality Modulation and is located at the bottom of the Window. Processing modules all start with an input at the top and the output at the bottom, the output however is not displayed as it can go to many locations at once, an input however can only come from one place.

There is a level slider at the bottom set at level 2, this should be changed to 256, the radio button should be on the Bandwidth setting. You will have now fully programmed a patch and it is ready to complete, press render and select the Mono Left option if it is not already there.

The sound created will be nothing like any of the other sounds you have heard so far. All the processing modules have a different effect on the sound and this is just one of them. Reopen the Shape window and press Bits and Render the sample again.

The result this time will be a more subtle effect but in teresting none the less, these two different sounds can also be combined by pressing Both on the Shape window. Try this and render the sample, after this render it using the Both Opp setting.

The result of these two options will sound pretty similar but this is because the level is so high, change the level to 128 and try both again, this will show a bigger differ ence.

Changing the modulation speed can make a very big differ ence to the sound. Open Osc 2 and change the octave to 8, keep the shape setting on Both Opp and render the sound. The sound will now be very different as it is being modulated at a higher rate, previously it was being swept slowly. Changing the wave can also have a big effect on modulation. Open Osc 2 and change the wave to number 1, render the sample and listen to it, then reopen Osc 2 and change the wave to number 7 and re render the sound, this will give also give a different sound, if you wish go through the different waves and listen to the different sounds which are made, waves 4 and 9 may look similar but the sound produced is very different.

You can also modulate the waves which are modulating. First open Osc 2, change the wave to number 7 and the Octave to number 12, Render this sound. The modulating wave has been moved up to a rate where it is actually now pro ducing a note.

We will modulate this note with Osc 3. To do this open up the Patch Programmer and find a button on the left approximately half way down marked 3, this will be below the out put from Osc 2. Press the 3 button, this is the output from Osc 3 and we shall use it to modulate the frequency of Osc 2. To do this you will need to look at the Osc 2 but tons and find a small one marked F, click on this and a red patch lead will appear.

Now close the Patch Programmer and open Osc 3. Change the wave to number 2 and the octave to number 9. Render this to hear the result, it will sound somewhat different to the previous sound. If you wish to experiment further change the Phase setting of the Shaper, start at very low values.

As you see although an option may only make a subtle difference to the sound, it's when you add many of them after one another the result can be anything but subtle.

More Oscillator Modulation There are other types of Oscillator modulation which I have not yet discussed, these are Phase Shift, Frequency and Waveform modulation.

Phase Modulation, Select New All from the pull down menu and then open Osc 2 and set the octave to 7. Then open the Left Output Window (LEFT - bottom right of DMS window), press one of the top six source buttons and select Osc 1 as the Input.

Click on Osc 1 and Find Phase Shift Modulation, which is below the main oscillator controls. Press Source and select Osc 2. Now press render, after hearing this try the -Only and Both options, these will both give different sounds. The reason is how this modulation works, it takes the waveform being produced and moves it by a distance determined by the modulation wave, the different options determine the type of modulation, what happens to the shifted wave and how the shifted and original waves are recombined, if you wish go through the different options although this may take some time - there are 96 different combinations, if you couldn't be bothered doing this (you must be seriously bored if you do) try the 4 radio buttons on the right labelled Add/Mul/>/OR, there are only 4 of these and they make the biggest difference.

Frequency Modulation This is relatively simple compared to Phase Shifting as there are no options to play with other than the Level and NEG options. NEG appears beside most inputs and is used to flip the input upside down, in this case it would make a rising frequency to become a falling one. Frequency modulation has nothing to do with certain Yamaha Digital Synthesizers as they used the modulation to change the shape of the wave. Synthesis modulates the fre quency or pitch of the output waveform creating every thing from subtle changes to mad frequency sweeps. To hear some of these open Osc 1 then press the Source button on the Phase Shift modulation and select No Input, Then go back to the Frequency Modulation section and press Source and select Osc 2. You don't have to close the Selection window between selecting different inputs as it goes by the last Source button you pressed. Now press render, you will hear a very unusual sound indeed, this is the sound of a sine wave going up and down very quickly, it is also changing by several octaves. Open Osc 2 and change the octave to 5 and press render. The sound produced this time will be like an old electronic drum, it is the same effect but slower, re-rendering with the NEG option will give a different effect of the pitch rising then falling.

Frequency modulation can also be used to wobble a sound with vibrato, open Osc 1 and set the frequency Modulation level to 32. Then open Osc 2 and set the octave to 9, render this for the result. You can also use it to produce detuning effects, Open the Left output window and on one of unused inputs (not the bottom) press source and select Osc 3, Then open Osc 1 and set the Frequency Modulation level to 14. Press render and the result this time will be of one sound adding to then canceling out the other. This happens because the waves in Osc 1 and Osc 3 are the same, try opening Osc 1 and changing the wave to number 2, the result will be a lot more pronounced.

Waveform Modulation
What you have seen so far is taking a standard wave and modulating it using various means, the original wave itself however is the same although the output changes. Waveform modulation works in a different manner, it changes the original waveform, this produces very pure sounds but they have movement so they are not dull in the same way as a static waveform is. Open the left Output select where Osc 3 is and change it to None, then go back to Osc 1 and change the Frequency Modulation input to none.

Go up to waveform and change it to 0. When you do this a row of sine waves will appear along the top of the window and eight previously ghosted sliders will clear, these allow you select your waveforms, You will also need select a waveform modulation input, select Osc 2 for this. For the Waveforms select the following in this order:

2,10,4,9,9,4,10,2.

Set the octave in Osc 2 to 5 and press render.

Then open Osc 3 and set the Waveform to 0 and the Waveform Modulation to Osc 2. Then go the right hand side of the window find the copy button and press it, the waveforms will all then change to match those you set in Osc 1. If you are setting up a number of oscillators for waveform modulation this saves you having to select the waves over and over again, The slider below determines which oscillator you are copying them from, set it to 2 press copy and they will all change back to sine waves, set it back to 1 and press copy again to get the waves back.

Now set the Detune to 45 and open the Left output window and pick Osc 3 as an input, Press render for the result which is simply the previous sound with a detuned copy. Reopen Osc 3 and set the detune back to 0, then move the octave down to 12 and press render. You can try a few Oscillators with different octave settings (12,13,15 or 11,12,15) for an nice thick sound (rember to add the third once as an output and change the wave/modulation settings), also try lightly frequency modulating the highest octave with the FM level at 8 and a modulating frequency of 21Hz (octave 9, note F).

If you can follow this lot you should be able to work your way round the rest of the program in no time. For detailed descriptions of the Modules and what the various options do please read the Synthetica.Guide. If you want to see more example sounds look at how the Basic Synths have been put together, these are just like any other patch with the difference being that they are built into the program. There are yet more examples included in the Patch Drawer of the disc, these produce a wide variety of sounds, there are no samples supplied as it is much easier to supply a Patch as they take up much less room.

 

Back to the top

 

SAFF SPECIFICATION

Simple Audio File Format Specification Revision 1.2 6/12/95

NOTE: Aural illusion v2.0 and Synthesis both support the SAFF format but only use a maximum of 2 channels, so there is no need to support the block interleave feature at present.

I have added a version number to the header, this will indicate if compression or block interleave is present as well as specifing the maximum number of channels, See below for more details.

SAFF Specification

An SAFF (Simple Audio File Format) file consists of a very small 32 Byte header file which holds the basic sample info followed by the samples itself, the samples can be any size you want and can contain up to 255 channels. The samples can be as many bits as you want but the data is stored in minimum units of 8 (1 Byte) You can store 8, 16, 24, 32 or more bits per sample right the way up to 2040 bits (255 bytes)! Aural illusion v2.0 however does not support anything over 16 bit as yet.

You can have up to 255 channels worth of data, these are not interleaved like the other formats but are stored one after the other, the reason for this is speed, it is much faster to load in the sample data in single lumps without having to de-interleave them, it also means you don't have to write a different stereo loading routine - you just use the mono one twice. The data can be interleaved in blocks of 25000 samples if the Block Interleave Byte is set to 3, in this case 25000 samples of channel 1 are saved followed by 25000 samples of channel 2 then back to channel 1 etc... This will allow data to be played from a hard disc with multiple tracks all in one file but without having to search or de-interleave data. Aural illusion v2.0 ignores the Block interleave byte at the moment.

SAFF also allows you to store your sample data in Least Significant Bit first format, this means sample data could be transferred to and from the PC without difficulty, by default data is stored in Most Significant Bit first order. (Amiga / Mac / ST standard). The header as well as being small is also easy to decode. All Longs are on Long offsets and the same applies for the sample Words/Bytes.

 

The SAFF Header

The SAFF header is at the beginning of a SAFF file and is 32 Bytes long.

 
Offset Bytes Description Type
04Ascii code "SAFF" Ascii SAFF
41ChannelsByte 1 or more
51BytesByte 1 or more
61LoopByte 1=on 0=off
71Byte OrderByte 0=MSB 1=LSB
84Sample LengthULONG   Samples per channel
124Playback RateULONG Samples per second
164Loop Start ULONG Offset from 0
204Loop EndULONG Offset from 0
251MIDIByte 0=off 1=on
261MIDI NOTEByte Note number (0-127)
271Compression type   Byte 0=none See below
281Block interleaveByte 0=none See below
291SAFF VersionByte 0=standard See Below
301ReservedByte 0
311ReservedByte 0
321Extra HeaderByte 0=none 1=more data

ULONG = 32 bit unsigned
Byte = 8 bit signed

The sample length is in samples NOT words, to calculate the size of the sample data multiply the number of samples by the number of bytes. For the entire samples multiply the above resulting number by the number of channels.

There are no standard compression types as yet but I may add some in the future, so the compression byte should be set to zero for now.

Block interleave sizes (in samples - NOT Bytes or Words)

0=none
1=10000
2=15000
3=25000
4=50000
5=75000
6=100000

The sample Data
Data is saved as signed words, be they 8, 16, 24, 32 or however many bits, if your data is held as unsigned words convert them into signed words as you save them. If you are storing 12 or 14 bit data store it as 2 bytes. A 24 bit sample will be stored as 3 bytes.

Data is stored in sequential blocks starting with the first channel. The sample data is not interleaved so loading and saving can be very fast achieved with memory dumps.

Block Interleave
Block interleave allows the interleaving of channels in blocks, 25000 samples at a time, this will allow you to read or write more than one channel at a time direct from Hard disc, The blocks are stored :

Channel 1,2,3,4,1,2,3,4 etc...

If you were using a block size of 25000 (Block interleave=3) and 2 tracks of 16 bit data you would read 50000 bytes of channel 1 then 50000 bytes of channel 2 then 50000 bytes of channel 1 and so on... By reading 100000 bytes at a time and setting the hardware audio pointers to the beginning of each block then using double buffering you could eaisly play multitrack audio from a hard disc without using almost any CPU power.

It is unlikely that the sample you are saving will have a size that is an exact multiple of the Block interleave size, so the final blocks should be shortened to allow for this, padding out with zeros would be a waste of space so this method is not used, file readers should take account of this.

LSB data
If you are using a PC and wish to store data in SAFF format set the LSB byte to 1 so other platforms know the data bytes will need to be reversed.

If when reading the file check the first 4 bytes ASCII code, they should read as "SAFF" but if they read ASFF the entire file will need to be byte swapped.

Versions of SAFF
The Version number has been added to avoid a little confusion, If you want to add a reader to you program you would have to support the features even if you don't expect or require them, i.e. Aural illusion and Synthesis can only use a maximum of 2 channels and thus Block interleave is fairly useless so adding a version number helps out here, different versions of SAFFs will support features, more versions may be added at a later date. See the following table for details:

 
VersionBlock IntCompressionMax ChannelsMax Bytes per sample
0NoNo22
1NoYes22
2YesNo2552

If you are adding SAFF support (go on - it's easy!) only support the Versions you need, if you find a different version simply tell the user it's the wrong type, Aural illusion and Synthesis both only support Version 0 SAFFs.

Copyright & future changes
Write zero into the final four bytes as these are reserved for future use, perhaps to indicate another header before the sample data. If more is added they will be in the form of more 32 byte headers, a zero value in the last ULONG will indicate sample data is next.

I will retain the copyright of the SAFF format but only to stop it getting messed up and confused. Anyone can use the SAFF format if they wish, just don't change anything. It's designed as a simple format for storing and transferring sample data, if you wish to add to the specification contact me FIRST and I can update the format specification. There are no charges for using SAFF and never will be - it's making for transfer of samples easier, not profit.

Some public domain programs will be release at a later date to deal with SAFFs, these will probably be Amiga only but I may do other platforms as well.

SAFF is copyright (c) Blachford Technology 1994/95 The Saff specification can be copied if you wish but may not be modified. If you wish to see/make changes send an email to nicholas@blachford.info

 

Back to the top