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.
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 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 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 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 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
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: Note 2: Note 3:
OSCILLATORS The Oscillator window is split into 5 parts:
Waveform Modulation.
Main Oscillator Controls.
Phase Shift Modulation
Pulse Width Modulation.
Frequency Modulation.
Main Oscillator Controls 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 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 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
Frequency Modulation + 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.
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 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 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 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.
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.
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 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 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 +.
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 Standard - Normal limitation.
Add - Adds limited signal to original.
Multiply - Multiplys original and limited signal.
Shape Quality Modulation 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 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
AMPLIFIERS Amplitude Modulation Wave Combination 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 Delay Modulation Depth Modulation Phaser
THE TOOL BOX Noise Generator Sample and Hold Amplitude Modulation Basic filter 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 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 Stereo Output
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.
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 Many thanks to : The Beta Testers: 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! Synthesis source code, Synthesis.html and Synthesis Tutorial
by Nicholas Blachford 16/4/96.
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 Edit Menu 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 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 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 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 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 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 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 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.
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.
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.
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.
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.
Add/Cut - This selects between Adding or Cutting Patch leads.
Pressing any of the three Render buttons will cause the Rendering
Options Window to open.
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.
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.
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.
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 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.
These are located about half way down and consist of 6 Sliders and
two check boxes:
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.
This changes a waveform by taking a copy, Modifying it and
recombining it with the original.
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 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.
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.
This allows the Envelope to be started at different points or even used
as a waveform. There are 3 options:
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.
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.
This allows the wave shape to be modulated, depending on the two
waves used the result can be subtle or dramatic.
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.
This changes the digital quality of the waveform, doing this adds
harmonics to the wave form and can be used to good effect.
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 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.
The Amplifiers allow levels to be set with the Level slider.
The Amplitude can be modulated with the second input and the
level set with the slider.
Wave Combination allows the main wave to be combined with the
third input in a number of ways producing some very different
sounds.
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.
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.
The Depth Modulation allows the level of the delay to be modulated
with another waveform, this mixes the effect with the original signal.
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 is the module where what was left went, It includes
five separate effects.
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.
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.
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.
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.
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.
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.
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
NOTE: There is a known bug in the SAFF saver which also causes the above effect.
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)
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.
Kevan Craft
Gareth Craft
Dave Sullivan
Rob Baxter
Fergus Duniho
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.
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.
Zero Sample - Deletes all sample data.
Toggle Filter - Toggles the Audio filter.
Audio Device - Switches Amiga audio on/off.
This is a large window covered with buttons and sliders,
this is where you can create your own waves.
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.
Now close the Wave Editor and Press BasicSynth, which will
open the Basic Synthesizers window.
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.
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.
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.
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.
| Offset | Bytes | Description | Type | |
| 0 | 4 | Ascii code "SAFF" | Ascii | SAFF |
| 4 | 1 | Channels | Byte | 1 or more |
| 5 | 1 | Bytes | Byte | 1 or more |
| 6 | 1 | Loop | Byte | 1=on 0=off |
| 7 | 1 | Byte Order | Byte | 0=MSB 1=LSB |
| 8 | 4 | Sample Length | ULONG | Samples per channel |
| 12 | 4 | Playback Rate | ULONG | Samples per second |
| 16 | 4 | Loop Start | ULONG | Offset from 0 |
| 20 | 4 | Loop End | ULONG | Offset from 0 |
| 25 | 1 | MIDI | Byte | 0=off 1=on |
| 26 | 1 | MIDI NOTE | Byte | Note number (0-127) |
| 27 | 1 | Compression type | Byte | 0=none See below |
| 28 | 1 | Block interleave | Byte | 0=none See below |
| 29 | 1 | SAFF Version | Byte | 0=standard See Below |
| 30 | 1 | Reserved | Byte | 0 |
| 31 | 1 | Reserved | Byte | 0 |
| 32 | 1 | Extra Header | Byte | 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:
| Version | Block Int | Compression | Max Channels | Max Bytes per sample |
| 0 | No | No | 2 | 2 |
| 1 | No | Yes | 2 | 2 |
| 2 | Yes | No | 255 | 2 |
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