Download presentation

Presentation is loading. Please wait.

Published byEduardo Picot Modified over 2 years ago

1
Unit 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

2
Unit Generators Have input parameters Have at least one output Perform a function: °modification of a signal °combination of signals

3
ATTACK TIME DECAY TIME AMP DUR FREQ 1FREQ 2AMP MULTIPLIER

4
Oscillators AMPFREQ PHASE

5
Oscillators 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

6
Wavetables The value of many uniformly placed points on one cycle of a waveform are calculated These points are stored in a wavetable

7
Wavetables 0 1 127 255 383 511 A pictorial representation of a wavetable; really it’s just a table of numbers

8
Wavetables 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

9
Phase The phase of the wave is it’s position in the wave cycle Normally measured in degrees (0 - 360 ) or radians Here it is measured in sample points Phase (Φ) of 0 is the first sample

10
Phase So if the wavetable has 512 sample points And the phase is 180 What sample point are we at?

11
Phase of 180 0 1 127 255 383 511

12
Periodic Waves We only store one cycle of the wave because the wave is ‘periodic’ This means it repeats forever

13
Wrap Around So if we talk about a given phase Φ 1 Φ 1 = 515 The sample point (Φ) we are looking for in our wavetable is: Φ = Φ 1 – 512 = 3

14
Digital 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

15
Wave 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, f s

16
Wave Playback When the wave is played back it is played back at the same sampling frequency, f s It is possible to figure out the frequency of the wave stored by performing a calculation

17
Calculating the Frequency of the Wave Held in the Wavetable f s / N = f 0 samples per second / samples per cycle = cycles per second (seconds/samples) / (cycles/samples) = (seconds/cycles)

18
f s / N = f 0 44,100/512 = 86.13 Hz Calculating the Frequency of the Wave Held in the Wavetable

19
Sampling Increment (S.I.) We don’t just want 86.13Hz We want any frequency we want So we use a Sampling Increment

20
Sampling 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

21
Sampling 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)

22
Sampling Increment (S.I.) f s / N * S.I. = f 0 44,100 / 512 * 1 = 86.13 Hz

23
Increasing 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

24
S.I. = 2 f s / N * S.I. = f 0 44,100 / 512 * 2 = 172.27 Hz

25
Rearrange the Equation f s / N * S.I. = f 0 S.I. = N * f 0 / f s

26
Playback Wave at 250 Hz S.I. = N * f 0 / f s S.I. = 512 * 250 / 44,100 = 2.902

27
Table 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

28
Dealing With Real Numbers The samples we want to grab don’t exist! Options: °truncate: 2.902 becomes 2 °round: 2.902 becomes 3 °or interpolate...

29
Interpolation 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

30
Interpolation we don’t have values at these points so we calculate estimated values using the nearest samples (this is interpolation) 56 5.902... 0.3 0.7 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

31
Interpolation 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

32
Table 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.)

33
S.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.”

34
A Sine Wave time, t 0T/2T3T/2 -1.5 -0.5 0 0.5 1 1.5 v(t)

35
A Sawtooth Wave 0T2T -1.5 -0.5 0 0.5 1 1.5 time, t v(t)

36
A Square Wave 0T/2T3T/2 -1.5 -0.5 0 0.5 1 1.5 time, t v(t)

37
A Triangle Wave 0T2T -1.5 -0.5 0 0.5 1 1.5 time, t v(t)

Similar presentations

OK

Additional Notes on Wavetable Synthesis R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2002.

Additional Notes on Wavetable Synthesis R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2002.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google