improved headphone sound stage background to encm515 labs on dso audio channel modeling based on...

34
Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith, E. Bessinger and L.E.Turner M. Smith, Electrical and Computer Engineering, University of Calgary, Canada smithmr @ ucalgary.ca

Post on 19-Dec-2015

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

Improved Headphone Sound Stage

Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis

Various copyrights M. Smith, E. Bessinger and L.E.Turner

M. Smith,Electrical and Computer Engineering,

University of Calgary, Canadasmithmr @ ucalgary.ca

Page 2: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 2 / 33

To be tackled today Audio channel modelling concepts as detailed in

Bessinger’s thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers,

with specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room

colouration through IIR filters -- Student project?

Page 3: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 3 / 33

Main reference material

E. C. Bessinger, Localization of Sound Using Headphones

M. Sc. thesis, Electrical and Computer Engineering,

January 1994. Supervisor Dr. Turner

Translated for DSP processors by M. Smith

Page 4: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 4 / 33

Improved Head Sound Stage

Actual MonoSound Source

Perceived Repositioned Sound Source

Page 5: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 5 / 33

To be tackled today Audio channel modelling concepts as detailed in

Bessinger’s thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers,

with specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room

colouration through IIR filters -- Student project?

Page 6: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 6 / 33

Concept behind Labs. OFF-LINE initial development using VisualDSP++ simulator

Sound Source -- fixed input data array Process Sound -- KNOWN ALGORITHM Sound Sink -- fixed output data array Testing -- plotting and comparing to theory Possible algorithmic time constraints investigated

ON-LINE (REAL-TIME) testing using SHARC board Sound Source -- background task (or CODEC) Process Sound -- SAME KNOWN ALGORITHM Sound Sink -- CODEC background task Testing -- using aurally using GOOD earphones and

quantified using known sound source

Page 7: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 7 / 33

Labs. 2 and 3 -- delay line -- Concept

No relative delay modelled into the audio channel -- then sound perceived in centre of head

Modelling a relative delay into the right ear audio channel. Sound arrival will shift sound to left as “sound” seems to get to left ear first

DELAY 0DELAY_LEFT

DELAY_RIGHT

Page 8: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 8 / 33

Delay Necessary -- Calculation

Distance to Sound Sound

Time Delay = -------------------------- Speed of Sound

Algorithm Delay = Time Delay * Sampling Rate

Relative Distance = 0.3 mSpeed of sound = 300 m/sSampling Rate = 44 kHzDelay needed in array = ????Sound resolution = ???? Reasonable or NOT?

Page 9: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 9 / 33

GLOSSARY FIFO First In -- First Out stack

Delay Line -- Implementation using FIFO LIFO Last In -- First Out stack

C-stack -- Implementation using LIFO FIR Finite duration Impulse

Response IIR Infinite duration Impulse

Response FT (CFT) continuous Fourier transform DFT discrete Fourier transform

FFT -- fast Fourier transform which is an implementation of DFT

Page 10: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 10 / 33

To be tackled today Audio channel modelling concepts as detailed in

Bessinger’s thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers,

with specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room

colouration through IIR filters -- Student project?

Page 11: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 11 / 33

Real-time N-pt Delay code concept

void ProcessSound(int channel_one, int channel_two, int *left_channel, int *right_channel) {if ((sound_source & LEFT_DELAY) == LEFT_DELAY) {

if ((sound_source & MOVEDELAY) == MOVEDELAY)

MemoryMove_LeftDelay(process_var1, &channel_one);

----------------------------------------------------void MemoryMove_LeftDelay(int N, int *channel_one) {

float left_delayline[MAXDELAY + 1] = {0};// Insert new value into the back of the FIFO delay line

left_delayline[0 + N] = (float) *channel_one; // N delays implimented // Grab delayed value from the front of the FIFO delay line

*channel_one = (int) left_delayline[0];// Update the FIFO delay line using inefficient mass memory moves

for (count = 0; count < N; count++) <--- Or N + 1 or N - 1?left_delayline[count] = left_delayline[count - 1];

}

WHAT’S WRONG AND MISSING?

WHAT’S WRONG

Page 12: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 12 / 33

Basic Algorithm -- Handle Delay

<----------DELAY ----------> Requires 2 * (LD + RD - 2) memory operations

<---------- LEFT DELAY ---------->

Sample into audio channel

Sample from channel

Page 13: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 13 / 33

To be tackled today Audio channel modelling concepts as detailed in

Bessinger’s thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers,

with specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room

colouration through IIR filters -- Student project?

Page 14: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 14 / 33

Labs. 4 -- delay line -- Concept

Get “ambience” by taking into account constructive and destructive interference around the face.

This implies knowing characteristics of “audio channel” and modelling using an FIR filter -- 2 FIR filters per speaker -- processing requirement increasing

FILTER 330 LEFT

FILTER 30 LEFT

FILTER 30 RIGHT

FILTER 330 RIGHT

Page 15: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 15 / 33

Delay is not only thing to take into account Four audio channels from 2 sources in front

Page 16: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 16 / 33

Lab. 4 -- Transfer function h30(f)

Page 17: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 17 / 33

Lab. 4 -- FIR transfer -- h330(f)

Page 18: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 18 / 33

Why different Audio Channels? Delay is not only

positioningelement -- takeinto accountactual direction

Transfer functionfrom loudspeakerto earmodelledby FIR filterSEnough time to performcalculation betweensamples?

Page 19: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 19 / 33

FIR schematic diagram

Page 20: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 20 / 33

FIR = Complex Delay Line

Page 21: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 21 / 33

Real-time FIR Filtervoid ProcessSound(int channel_one, int channel_two, int *left_channel, int *right_channel{

if ((sound_source & FIRFilter) FIRFilter(&channel_one, &channel2);

float fircoeffs_30[], fircoeffs[330];void FIRFilter(int *channel_one, int *channel_two) {

// Insert new value into FIFO delay lineleft_delayline[0 + N] = (float) *channel_one; right_delayline[0 + N] = (float) *channel_two;

channel_one_30 = channel_one 330 = 0; Need equivalent of following loop for EACH sound source

for (count = 0, count < FIRlength - 1, count++) { channel_one_30 = channel_one_30 + arrayleft[count] * fir_30(count); channel_one_330 = channel_one_330 + arrayright[count]* fir_330[count];

}*channel_one = (int) channel_one_30 + scale_factor * channel_one_30 ditto 2Update Left Channel delay line; Update Right Channel Delay line

}

Page 22: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 22 / 33

To be tackled today Audio channel modelling concepts as detailed in Bessinger’s

thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers, with

specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room colouration

through IIR filters -- Student project – Try on other processor architectures – try with video?

Page 23: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 23 / 33

Lab. 5 -- Room Effects Need to have multiple sources

more FIR operations

Need to have reflections off the wall -- possibilities IIR filters, Comb, FFT (frequency domain)

Page 24: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 24 / 33

Standard IIR filter example -- biquad

Normally in multi-stages Make parallel BETWEEN rather than IN stages -- see

Smith (Micro Magazine article, 1992)

SMALL DELAYS

Page 25: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 25 / 33

Real Time standard IIR code finalleftear = h0 * lefttemp1 + h1 * lefttemp2 + h3 * lefttemp3;

finalrightear = h0 * rightemp1 + h1 * righttemp2 + h3 * righttemp3;

newlefttemp1 = gain * leftear + h4 * lefttemp2 + h5 * lefttemp3;

newrighttemp1 = gain * rightear + h4 * rightemp2 + h5 * righttemp3;

lefttemp3 = lefttemp2; // Parallel ear calculations

lefttemp2 = lefttemp1; // Parallel stages

lefttemp1 = newlefttemp1;righttemp3 = righttemp2; // Optimization -- final exam question?

righttemp2 = righttemp1; // Optimization

righttemp1 = newrighttemp1;

// Need other delay and FIR filters for audio channel characteristics

Page 26: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 26 / 33

Lab. 5 -- IIR -- comb filter -- different

Long delay line

Page 27: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 27 / 33

Full Lab 5 -- FIR and IIRTime available if multi-task?

Page 28: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 28 / 33

Lab. 5 requires 7 comb filters

BIG DELAYS(Use PACK instructions

or decimation?)

Page 29: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 29 / 33

Lab. 5 Possibilities -- FFT? Implement filters in frequency domain

rather than in time domain

Frequency domain algorithms can be considerably faster than time domain algorithms especially when performing several filtering operations on one set of data Require more memory to process

BLOCKS OF DATA

Page 30: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 30 / 33

Real Time FIR Convolution Filter via multiplication in frequency domain

FFT is faster that FIR and IIR if memory available(2N log N + 4N) rather than 3 * N * N operations

for 512 points // Signal Conditioning -- Windowing wleftear[n] = leftear[n] * window[n];

FFT(wleftear, leftfrequency, forward FFT) for 512 points // Signal convolution with FIR frequency domain response new_leftfrequency1[n] = leftfrequency[n] * filter1[n]

+ leftfrequency[n] * filter2[n]+ leftfrequency[n] * filter3[n];

FFT(new_leftfrequency, newleftear, inverse FFT)

Page 31: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 31 / 33

DSP 4 -- FFT -- Decimation

Require special architecture for speed

Page 32: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 32 / 33

Major FFT implementation Reference

Major reference on signal conditional and filter implementation in frequency domain

FFT -- friscy Fourier Transforms?Smith (Microprocessors and Microsystems)

Page 33: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 33 / 33

DIF -- FFT code -- in Fortran pseudo codeDO 11 I = 1, 15 -- allows FFT size up to 2^15

M = I; N2 = 2 **I; IF (N.EQ.N2) go to 2111 CONTINUE

RETURN21 N2 = N

DO 30 I = 1, M N1 = N2; N2 = N2/2; I1 = 1; I2 = N/N1; -- indexes DO 30 J = 1, N2 --- Note that N2 gets smaller

C= cosarray(I1); S = sinarray(I1); I1 = I1 + I2 -- Note indexing format DO 30 K = J, N step N1

L = K + N2 tempr = xreal(K) - xreal(L); xreal(K) = xreal(K) + xreal(L)

tempi = ximag(K) - ximag(L); ximag(K) = ximag(K) + ximag(L) xreal(L) = C * tempr + S * tempi; ximag(L) = C * tempi + S * tempr;

30 CONTINUE BitReverseArrayManipulation(N, xreal, ximag)

Page 34: Improved Headphone Sound Stage Background to ENCM515 Labs on DSO Audio Channel Modeling Based on concepts in Bessinger Thesis Various copyrights M. Smith,

04/18/23 ENCM515 -- Background to Audio Channel Modelling

Copyright [email protected] 34 / 33

To be tackled today Audio channel modelling concepts as detailed in Bessinger’s

thesis on improved sound stage Sound re-positioning through delay lines

Post Lab. 1 Quiz – Determination of delay effects using known input audio signals (simulated and real-time)

Lab. 2 -- Implementation in “C” (with and without pointers) Lab. 3 -- Implementation in “assembly”, with and without pointers, with

specialized SHARC architecture (hardware circular buffers) Sound colouration through FIR filters

Lab. 4 -- In “C/C++”, assembly, custom assembly (hardware loops) and VERY custom assembly (highly parallel algorithm)

Additional Audio Channel Modeling Lab. 5 -- Multi-tasking environment -- SHARC RTOS -- Room colouration

through IIR filters -- Student project – Try on other processor architectures – try with video?