Title: Unit Generators and V.I.s
1Unit Generators and V.I.s
- Patches are configurations of V.I.s
- Both Patches Virtual Instruments can be broken
down into separate components called Unit
Generators
2Unit Generators
- Have input parameters
- Have at least one output
- Perform a function
- modification of a signal
- combination of signals
3(No Transcript)
4Oscillators
5Oscillators
- Can be driven by an algorithm in real time
- Computers have, until recently, been too slow to
deal with this whilst providing the user with the
capabilities they require - So most virtual oscillators use a waveform that
is pre-stored in a wavetable
6Wavetables
- The value of many uniformly placed points on one
cycle of a waveform are calculated - These points are stored in a wavetable
7Wavetables
- A pictorial representation of a wavetable
really its just a table of numbers
8Wavetables
- The oscillator will retrieve values from the
wavetable to produce the wave - The position we are at along the wave is known as
the phase
9Phase
- The phase of the wave is its position in the
wave cycle - Normally measured in degrees (0? - 360?) or
radians - Here it is measured in sample points
- Phase (F) of 0 is the first sample
10Phase
- So if the wavetable has 512 sample points
- And the phase is 180?
- What sample point are we at?
11Phase of 180?
12Periodic Waves
- We only store one cycle of the wave because the
wave is periodic - This means it repeats forever
13Wrap Around
- So if we talk about a given phase F1
- F1 515
- The sample point (F) we are looking for in our
wavetable is - F F1 512 3
14Digital Waves Sampling Frequency
- Sound waves held digitally are cut up into small
pieces (or samples) - The number of samples they are cut into affects
the smoothness of the wave - CD sampling frequency 44,100 samps/sec
15Wave Playback
- Playing back the wave in the wavetable will
produce a sound of a particular frequency - Before the wave is played back it must be
calculated and then stored - The number of samples used to store each second
of the waveform is known as the sampling
frequency, fs
16Wave Playback
- When the wave is played back it is played back at
the same sampling frequency, fs - It is possible to figure out the frequency of the
wave stored by performing a calculation
17Calculating the Frequency of the Wave Held in the
Wavetable
- fs / N
f0 - samples per second / samples per cycle cycles
per second - (seconds/samples) / (cycles/samples)
(seconds/cycles)
18Calculating the Frequency of the Wave Held in the
Wavetable
- fs / N f0
- 44,100/512 86.13 Hz
19Sampling Increment (S.I.)
- We dont just want 86.13Hz
- We want any frequency we want
- So we use a Sampling Increment
20Sampling Increment (S.I.)
- The sampling increment is the amount added to the
current phase location before the next sample is
retrieved and played back - By altering the S.I. we can use the wavetable to
create waves of different frequencies
21Sampling Increment (S.I.)
- Playing back the wave at 86.13Hz means playing it
back as it is - This means adding 1 to each phase location before
retrieving the next sample and playing it back - This happens 44,100 times a second, and produces
86.13 cycles each second (because there are 512
samples per cycle)
22Sampling Increment (S.I.)
44,100 / 512 1 86.13 Hz
fs / N S.I. f0
23Increasing Playback Frequency
- Increasing the S.I. decreases the number of
samples played back - So the speed of the wave playback is increased,
as is the frequency of the wave produced
24S.I. 2
fs / N S.I. f0
44,100 / 512 2 172.27 Hz
25Rearrange the Equation
fs / N S.I. f0
S.I. N f0 / fs
26Playback Wave at 250 Hz
S.I. N f0 / fs
S.I. 512 250 / 44,100 2.902
27Table Look-Up Noise
- We only have 512 samples in our wavetable
- The points we have samples for may not line up
with the points at which we wish to obtain
samples - The S.I. is 2.902 but (going from 0) we only have
samples at 2 3
28Dealing With Real Numbers
- The samples we want to grab dont exist!
- Options
- truncate 2.902 becomes 2
- round 2.902 becomes 3
- or interpolate...
29Interpolation
- 2.902 is used as the S.I.
- so take a value at the initial phase (say 3)
- add 2.902 to the initial phase 5.902 to get the
place to take the next value - add 2.902 to this to get the place to take the
next value 8.804 - and so on
30Interpolation
- we dont have values at these points so we
calculate estimated values using the nearest
samples (this is interpolation)
0.902 0.3 0.098 0.7 , or 90.2 of 0.3
9.8 of 0.7 0.2706 0.0686 0.3392
31Interpolation
- Occurs for every sampling increment, so 44,100
times per second - Uses a LOT of processing power
- The interpolation process still requires us to
round numbers up or down, and so still produces
error
32Table Look-Up Noise
- So rounding is required whatever, and that
produces error - This error is known as table look-up noise
- This error affects signal to noise ratio (S.N.R.)
33S.N.R.
- Affects the ratio achievable between quiet and
loud sounds. - Dodge (1997)
- Ignoring the quantisation noise contributed
by data converters a 512 entry table would
produce tones no worse than 43, 49, and 96 dB
SNR for truncation, rounding and interpolation
respectively. And a 1024 entry table would
produce tones no worse than 109 dB SNR for an
interpolating oscillator.
34A Sine Wave
35A Sawtooth Wave
36A Square Wave
37A Triangle Wave