Top Banner
Sound Processing in Consumer Electronics and in PulseAudio Alexander Patrakov
45

А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

May 06, 2015

Download

Technology

it-people
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Sound Processingin Consumer Electronics

and in PulseAudio

Alexander Patrakov

Page 2: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

About Myself

● Author of some sound processing code– Dcaenc: a Free DTS-compatible encoder

– Wine resampler

● Dayjob:

Page 3: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014
Page 4: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014
Page 5: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014
Page 6: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014
Page 7: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Hardware

LG 47LM640T

Onkyo TX-NR626

Page 8: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Common effects

● Equalizer presets– Sound Mode, Listening Modes

● Virtual Surround– Theater-Dimensional Mode

● Dynamic Range Compression– Late-Night Mode

Page 9: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

● User EQ● ClearVoice II

● Bass, Tremble● Speaker Distance

Compensation● Bass Management● Digital room

Correction

Page 10: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

5.1 Speaker SetupDelay is needed!

Page 11: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014
Page 12: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Instead of the equalizer

Page 13: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

It Just Works!

Page 14: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

PulseAudio

Page 15: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

DSP-related functionality

● Equalizer● Resampler● Channel Remixer● Virtual Surround

● Bass Management● Encoders & Decoders● LADSPA Effects● Echo Cancellation

Page 16: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

In this talk

● Equalizer● Resampler● Channel Remixer● Virtual Surround

● Bass Management● Encoders & Decoders● LADSPA Effects● Echo Cancellation

Page 17: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-equalizer-sink

Author: Jason Newton

Page 18: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Spectrum * Filter

Page 19: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Spectrum * Filter

?

Page 20: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Convolution

t

Page 21: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

FIR filter design

● Given the desired frequency response– Take IFFT

– Shift the signal to positive time values

– Truncate the signal to a suitable length

– Apply a windowing function

http://www.dspguide.com/ch17/1.htm

Page 22: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Divide and Conquer

FFT-based magic

Page 23: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Circular convolution

t

Page 24: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Convolution

t

Page 25: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Tricks Against Circular Convolution

● Overlap-Save● Overlap-Add

Page 26: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Overlap-Save

Corrupted fragment

The input signal is split into overlapping segmentsCorrupted fragments are thrown away(the previous segment contains a non-corrupted version)

Page 27: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Overlap-Add

Space for growth

Pad the input signal fragments with zeroesPerform circular convolutionResult: overlapped segments of output signalResolve the overlap by summation

Page 28: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-equalizer-sink

● Where is this?– Take IFFT

– Shift the signal to positive time values

– Truncate the signal to a suitable length

– Apply a windowing function

Page 29: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-equalizer-sink

?

Latency = ?

Page 30: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-equalizer-sink

/* FIXME: Please clean this up. I see more commented code lines * than uncommented code lines. I am sorry, but I am too dumb to * understand this. */

fftwf_malloc(); …; free();

Buffer Overflow

Page 31: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-equalizer-sink

EPIC FAIL

Page 32: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-ladspa-sink + mbeq + veromix

Page 33: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-virtual-surround-sink

5.1 recording Stereo Headphones

Author: Niels Ole Salscheider

Page 34: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Amplitude difference

Woof!Woof!

Page 35: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Delay

Woof..!...Woof!

Page 36: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Spectral features

Page 37: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

module-virtual-surround-sink

● Convolution with HRIR (Head Related Impulse Response)– HRIR has to be downloaded separately

Page 38: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Virtual Surround on Speakers

● Ambiophonics– Speaker crosstalk cancellation

– Same technology as in soundbars

– Not in PulseAudio yet

Page 39: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

HRIR (left ear)

Page 40: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

HRIR (left ear)

Cutoff at 64 samples(to save CPU time)

Page 41: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

HRTF (left ear)

Page 42: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

HRTF (left ear)

This sounds cheap

Page 43: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Conclusions

Page 44: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Open Tasks

● See GSOC thread: http://goo.gl/7fVwTk

Page 45: А. Патраков "PulseAudio и бытовая электроника: цифровая обработка звука", DUMP-2014

Other Relevant Projects

● Speex: contains a denoiser● Vlevel: dynamic range compressor● BruteFIR: a fast convolution engine● DRC-FIR: digital room correction