37
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

Unit Generators and V.I.s

Embed Size (px)

DESCRIPTION

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. Unit Generators. Have input parameters Have at least one output Perform a function: modification of a signal - PowerPoint PPT Presentation

Citation preview

Page 1: Unit Generators and V.I.s

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

Page 2: Unit Generators and V.I.s

Unit Generators

• Have input parameters

• Have at least one output

• Perform a function:

° modification of a signal

° combination of signals

Page 3: Unit Generators and V.I.s

ATTACK TIME DECAY

TIME

AMPDUR

FREQ 1 FREQ 2AMP

MULTIPLIER

Page 4: Unit Generators and V.I.s

Oscillators

AMP FREQ

PHASE

Page 5: Unit Generators and V.I.s

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

Page 6: Unit Generators and V.I.s

Wavetables

• The value of many uniformly placed points on one cycle of a waveform are calculated

• These points are stored in a wavetable

Page 7: Unit Generators and V.I.s

Wavetables

-1

0

1

127 255 383 511

A pictorial representation of a wavetable; really it’s just a table of numbers

Page 8: Unit Generators and V.I.s

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

Page 9: Unit Generators and V.I.s

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

Page 10: Unit Generators and V.I.s

Phase

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

Page 11: Unit Generators and V.I.s

Phase of 180

-1

0

1

127 255 383 511

Page 12: Unit Generators and V.I.s

Periodic Waves

• We only store one cycle of the wave because the wave is ‘periodic’

• This means it repeats forever

Page 13: Unit Generators and V.I.s

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

Page 14: Unit Generators and V.I.s

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

Page 15: Unit Generators and V.I.s

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, fs

Page 16: Unit Generators and V.I.s

Wave 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

Page 17: Unit Generators and V.I.s

Calculating the Frequency of the Wave Held in the Wavetable

Page 18: Unit Generators and V.I.s

fs / N = f0

44,100/512 = 86.13 Hz

Calculating the Frequency of the Wave Held in the Wavetable

Page 19: Unit Generators and V.I.s

Sampling Increment (S.I.)

• We don’t just want 86.13Hz• We want any frequency we want• So we use a Sampling Increment

Page 20: Unit Generators and V.I.s

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

Page 21: Unit Generators and V.I.s

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)

Page 22: Unit Generators and V.I.s

Sampling Increment (S.I.)

fs / N * S.I. = f0

44,100 / 512 * 1 = 86.13 Hz

Page 23: Unit Generators and V.I.s

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

Page 24: Unit Generators and V.I.s

S.I. = 2

fs / N * S.I. = f0

44,100 / 512 * 2 = 172.27 Hz

Page 25: Unit Generators and V.I.s

Rearrange the Equation

fs / N * S.I. = f0

S.I. = N * f0 / fs

Page 26: Unit Generators and V.I.s

Playback Wave at 250 Hz

S.I. = N * f0 / fs

S.I. = 512 * 250 / 44,100 = 2.902

Page 27: Unit Generators and V.I.s

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

Page 28: Unit Generators and V.I.s

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...

Page 29: Unit Generators and V.I.s

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

Page 30: Unit Generators and V.I.s

Interpolation• we don’t have values at these points so we

calculate estimated values using the nearest samples (this is interpolation)

5 65.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

Page 31: Unit Generators and V.I.s

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

Page 32: Unit Generators and V.I.s

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

Page 33: Unit Generators and V.I.s

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

Page 34: Unit Generators and V.I.s

A Sine Wave

time, t0 T/2 T 3T/2-1.5

-1

-0.5

0

0.5

1

1.5

v(t)

Page 35: Unit Generators and V.I.s

A Sawtooth Wave

0 T 2T-1.5

-1

-0.5

0

0.5

1

1.5

time, t

v(t)

Page 36: Unit Generators and V.I.s

A Square Wave

0 T/2 T 3T/2-1.5

-1

-0.5

0

0.5

1

1.5

time, t

v(t)

Page 37: Unit Generators and V.I.s

A Triangle Wave

0 T 2T-1.5

-1

-0.5

0

0.5

1

1.5

time, t

v(t)