home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CDPD Public Domain Collection for CDTV 4
/
CDPD_IV.bin
/
amfm
/
amfm15
/
utilities
/
fmsynth.doc.pp
/
fmsynth.doc
Wrap
Text File
|
1994-06-20
|
12KB
|
375 lines
1m FMsynth V1.1 m
1m User Manual m
© Copyright 1993 by Christian Stiens
Heustiege 2
D-59348 Lüdinghausen
Germany
EMail: Christian_Stiens@ouzonix.bo.open.de (UUCP)
2:243/4802.25 (Fido)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
NOTE FROM AM/FM:
This program and all it's accompanying +
+ files are stored in a
self-extracting, LHA-compressed
+
+ package in the "Utilities" directory of this disk. To +
+ extract all the individual files and make the program ready +
+ for use, make sure you are positioned on a disk where you +
+ have enough free space, and just type the path and filename +
+ to the LHA-package; which is called "prog-name.RUN". If you +
+ are having problems, there is a more detailed description of +
+ how to handle this extraction in the USING AM/FM article. +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1m1 Introductionm
FMsynth is a program for generating sounds by FM Synthesis. The
sounds can be played on your Amiga keyboard and saved in IFF-8SVX
format.
1m2 Copyrightm
This Program is 3mGiftwarem. If you like it, then please send me a little
present.
The distribution of the 4mcompletem and 4munchangedm paket is
allowed only to non-commercial BBS's and to the following Public
Domain Series:
- AMOK (Amiga Modula & Oberon Klub)
- Fred Fisk Amiga Lib Disks
- AM/FM
You use this program on your own risk. There is no liabitity or
responsibility for possible damages caused by the use of this program.
All Rights reserved.
1m3 Requirementsm
The program needs the arp.library for the file requester, if you
don't have the ASL library of Workbench 2.0+ installed.
1m4 Manualm
1m4.1 The FM Synthesism
First a little introduction to the FM Sythesis. The FM Synthesis
was invented by John Chowning and used in the DX7 (one of the best
sold synthesisers ever) and his sucessors.
The priciple of the FM Synthesis is that one sinus wave modulates
another sinus wave. Written as a formula it looks like:
A(t) = Ac * sin(Fc * t + Am * sin(Fm * t))
Ac: The amplitude of the carrier wave
Am: The amplitude of the modulator wave
Fc: The frequency of the carrier
Fm: The frequency of the modulator
As you see, the modulator wave modulates the phase of the carrier
wave. This leads to the addition of harmonics to the carrier wave.
The ratio Fc to Fm determines, whether the sound is harmonic (periodic)
or non harmonic (not periodic). If the ratio is not rational
(e.g. 1 to 3.1415), then the sound is not harmonic, if it is rational
(e.g. 2 to 3), then the sound is harmonic. The frequency of the sound is
equal to the greatest divisor of Fc and Fm.
There are six operators (sinus generators) which can be combined in
different ways (the so called algorithms).
An example of an algorithm is given in the following figure (DX7
notation):
+---+
| 3 |
+---+
|
+---+ +---+ +---+
| 2 | | 5 | | 6 |
+---+ +---+ +---+
| | /
+---+ +---+
| 1 | | 4 |
+---+ +---+
|_________|
The operators #1 and #4 are the carriers in this example, the other
operators work as modulators. This algorithm is consisting of two
parts by three operators. In the first part operator #3 modulates
operator #2, this modulates operator #1. In the second part
operators #5 and #6 are modulating the operator #4.
1m4.2 The Startm
FMsynth can be started as usual via CLI or Workbench.
1m4.3 The Screenm
1m4.3.1 Operatorm
Here you can edit the parameters of the 6 operators.
KSc/R: Fmsynth uses 5 sound buffers (one for each octave).
With this key rate scaling parameter you can determine
how much the speed of the envelope increases for
higher octaves. The default value of 64 leads to doubling
of the rate per octave.
KSc/L: With the default value 64 of the key level scaling parameter
the level of all 5 sound buffers is the same. If you
increase (decrease) this value you can achieve, that
the output level of the operator is higher (lower) in high
octaves than in low octaves.
Attention: If one or more KSc values of some operator is
not equal to 64, then the time for calculating the sound
is doubled, because in this case each of the 5 sound buffers
must be calculated individual.
Rate/1-4: The rates of the four envelope segments. They determine,
how fast the corresponding level is reached.
Level/1-4: The levels of the four envelope segments
Outp Lvl: This parameter determines the output level of the operator.
If the operator work as carrier, then this parameter
influences the loudness. If it works as modulator, then
it influences the timbre.
Freq: In this string gadget you can enter the frequency of the
operators.
Mode: Determines whether the operator's frequency is fixed or
relative. In mode "RATIO" the frequency of the operator
is relative to the note played on the keyboard. The
value "1.0" leads to the usual tuning (A = 440 Hz).
If the mode is "FIXED" the frequency of the operator is
constant 1000 Hz, if you enter "1000.0" to the string
gadget. But this is not quite true, because not every
note has an own buffer but every octave. So the actual
frequency can be 41% more or less.
Attention: If the mode of one or more operators is "FIXED",
then the time for calculating the sound is doubled, because
in this case each of the 5 sound buffers must be calculated
individual.
1m4.3.2 LFOm
In this field you can edit the parameters of the low frequency oscillator
in realtime. The purpose of the LFO is to enrich the sound with a vibrato
(either of the pitch or the amplitude).
Spd: The speed of the LFO
Del: The delay after a key press until the vibrato begins.
AMD: The amount of the amplitude modulation
PMD: The amount of the pitch modulation
You can choose among 5 different waves of the LFO.
1m4.3.3 Algorithmm
Here you can edit the algorithm. Click on a modulator and the carrier
which should be modulated. If the connection already exists, it is
deleted. If not, the connection is added. The number of the modulator
must be greater than the number of the carrier.
The algorithmus of section 4.1 looks here as follow:
+---+ +---+ +---+ +---+ +---+ +---+
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 |
+---+ +---+ +---+ +---+ +---+ +---+
/ / / ____/
/ / /____/
/ / //
+---+ +---+ +---+ +---+ +---+ +---+
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 |
+---+ +---+ +---+ +---+ +---+ +---+
| |
The little marks below the carrier gadgets indicate, which operators
work as carriers.
1m4.3.4 Soundm
Calc: The sound is calculated.
Size: The size of all 5 sound buffers together.
Transp: The frequency of each operator that is in mode "ratio"
is multiplied with this transpose value.
Feedback: Determines, how often operator #6 modulates itself.
The feedback can be used to simulate a noise generator.
For example see the sound "panflute.voice".
Period: Determines the sampling frequency at playing of note "B".
Mode: Determines, whether the sound is playable polyphone or
monophone.
Filter: Here you can turn the low pass filter of the Amiga on or
off.
RlRate: The release rate at releasing a key. This parameter can be
changed in realtime.
1m4.4 The Menusm
1m4.4.1 Projectm
4mLoad Voicem
Lets you load the parameters of a saved Sound.
4mSave Voicem
Lets you save the parameters of the actual sound in a file.
4mSave 8SVXm
The actual sound is saved in IFF-8SVX (5 octave) format.
4mNewm
Resets the program to the initial settings.
4mAboutm
Displays some information of the program
4mQuitm
You can leave the program with this menu item.
1m4.4.2 Operatorm
4mInitm
Resets the actual operator to the default settings.
4mStorem
Here you can copy the settings of the actual operator to one or more
other operators.
4mFrequencym
Here you can double or halve the frequency of the actual operator.
1m4.4.3 Specialm
4mAlgorithmm
Here are presets of 10 often used algorithms.
4mChordm
FMsynth can calculate chords direct. This is usefull, because
the Amiga has only four audio channels and a chord would
eat at least 3 of them. You can choose among 7 different chords:
- Major (maj)
- Minor (min)
- Dimished (dim)
- Suspended 4 (sus4)
- Dominant Sept (7)
- Major Sept (7maj)
- Minor Sept (7min)
Please note that the calculation of a chord takes three times
as long as the calculation of the normal sound.
4mSet Loopm
Here you can set or clear the loop of your sound. For this purpose
click at the start of the loop with the left mouse button and the
right mouse button at the end of the loop.
Only one loop can be set for all five octaves.
4mFourierm
Performs a fourier analysis over the loop. This is for looking into
the harmonics of the sound.
4mAutoCalcm
If this item is selected, then after each parameter change the sound
is calculated new automatically.
1m4.5 Keysm
1m4.5.1 The Keyboardm
Octave 2 2 3 5 6 7 9 0 '
Q W E R T Z U I O P Ü +
Octave 1 S D G H J L Ö #
Y X C V B N M , . - SHIFT
The keyboard at the lower part of the screens shows, which keys
are pressed actual (only for PAL able Amigas).
1m4.5.2 Functionkeysm
Press F1 - F5 for the octave offset.
1m4.5.3 Space keym
At each time you can stop the playing sound with help of the space key.
1m5 Some tips for sound programmingm
Good sounds have a dynamic spectrum, that means it harmonics change
continuous. There are two ways for achieving this. First with the
envelope on the modulators and second with detuning. The sounds
strings.voice and lucky.voice in the voice directory are examples
for detuned sounds.
1m6 Compatibilitym
If you want to use your sounds in other programs like Sonix or MED
you should consider that the realtime parameters (release rate and LFO)
have only affect if you play the sounds in this program. They have
no effect to the 8svx file.
1m7 The endm
If you have programmed good sounds, then please send them to me
(in voice format not 8svx format!). The best sounds are included
to the next release of FMsynth.
I thank Stephan Fuhrmann who programmed some of the sounds in
the voice directory.
3mMuch fun!m