From 0960e3a025d51413b911cfd25e1ee0fd20dccaf7 Mon Sep 17 00:00:00 2001 From: laurensmiers Date: Tue, 26 May 2020 17:34:32 +0200 Subject: [PATCH] Initial commit: Something that looks like a presentation TODO: Have to complete code parts Presentation is way too long and should move some stuff to speaker notes! --- README.md | 11 + alsa_info.md | 740 +++++++++++++++++++++++++++++++++++++++++++++++++++ custom.css | 3 + index.html | 56 ++++ obi_wan.jpg | Bin 0 -> 57442 bytes 5 files changed, 810 insertions(+) create mode 100644 README.md create mode 100644 alsa_info.md create mode 100644 custom.css create mode 100644 index.html create mode 100644 obi_wan.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..6013055 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# ALSA presentation + +A presentation about ALSA I gave at one point. + +Presentation was made using the reveal.js framework (https://github.com/hakimel/reveal.js). +It uses the markdown plugin to convert alsa_info.md to something presentable. + +DISCLAIMER: +This was my knowledge of ALSA at one point in time and space. +I do not claim that any of the info in this presentation is correct. +But it worked at one point ;). diff --git a/alsa_info.md b/alsa_info.md new file mode 100644 index 0000000..1b266ec --- /dev/null +++ b/alsa_info.md @@ -0,0 +1,740 @@ +# ALSA + +--- +For ayone interested in ALSA kernel development... +![This is not the presentation you are looking for](./obi_wan.jpg) + +||| +Userspace ALSA +* What? +* Why? +* Configuration files + * Link with alsa-lib +* Examples using alsa-lib + +--- +## What? +* Advanced Linux Sound Architecture +* Software framework that provides a generic API for sound card device drivers +* Replacement for Open Sound System (OSS) + +||| +## What? +* ALSA fixed some shortcomings of OSS at the time + * Simultanous access to sound device was not supported in OSS + * user-space operations + * Mixing + * Loopback/snooping + * Support for non-interleaved interfaces +* Main reason was OSS moved to a proprietary license + * Moved back to GPL in 2007 + * Kernel: Once you go ALSA, you never go back + +||| +## What? +* Automatic configuration of sound devices + * Through the infamous /usr/share/alsa/cards/*.conf + * Modularized sound drivers + * Thread-safe* design + * User space library (alsa-lib) to simplify programming + * This is the one we will be using today + * Backwards compatibility layer with OSS + +||| +## History +* Started in 1998 +* Developed separately from the Linux Kernel +* Introduced in v2.5 in 2002 + * OSS declared deprecated +* Replaced OSS completely in v2.6 + * There is however still a compatibility layer in ALSA + * But as you might have guessed, nobody uses it (anymore) +* OSS is still being developed though! + * Targetting Linux and FreeBSD + +||| +## Who uses it? + * Linux Sound Servers + * PulseAudio + * Jack + * PortAudio + * Backbone of Audacity + +--- +# Why? + +Why use ALSA/OSS/sound server over ALSA/OSS/sound server? + +||| +## Why you should use ALSA over OSS + * Only use OSS if you just woke up from a 20 year nap and use kernel v2.4 + * More support for ALSA/better supported in Linux + +||| +## Why you should use ALSA over a sound server +* Direct/Full control + * Can also be a disadvantage + * You are responsible for xrun recovery + * You are responsible for ALSA quirks +* Minimal performance overhead + * Less latency? + * Not true with JACK + * But JACK does take more CPU cycles +* Mixing built-in through plugins + * dmix, dsnoop, asym + * See https://alsa.opensrc.org/AlsaSharing + * Don't know about the latency impact of this though... + +But it's still a lot of hassle + +||| +## Why you should use a sound server over ALSA +* Takes care of all the hassle +* Multiple programs accessing same device +* Mixing streams +* Separate stream volume control +* Redirecting streams +* Changing settings on the fly + * sample format + * channel count + +||| +## Why use X over ALSA +ALSA documentation is horrible + * Samples/bytes/frames used interchangebly + * Even though they aren't!!! + * Incorrect for some features + * Asynchronous mode + * SND_PCM_ASYNC in snd_pcm_open() + * Job protection? + +--- +## Internals + +||| +### Main configuration +* Default config + * /usr/share/alsa/alsa.conf + * Not meant to be changed + * Normally, just defines default devices without any plugins +* System wide specific configuration + * /etc/asoundrc +* User specific configuration + * ~/.asoundrc +* All config files are parsed every time an ALSA device is opened + * No restart necessary for changes to take effect! + +||| +### Configuration +Alsa uses *.conf files to configure sound devices +* Located in /usr/share/alsa/cards +* Organized in a hierarchical fashion + * Cards + * A physical card or logical kernel device capable of input and/or output + * Devices + * A card can have several devices + * Can be operated independently from each other + * Subdevices + * A sound endpoint for the device + * F.e. Left and right channel can be separate subdevices + +||| +### Configuration Pitfalls +* Device can have separate subdevice for left or right channel + * Can be controlled separately in principle... + * In practice, writing/reading from a subdevice locks the other subdevices +* Application selects audio device using a device string + * Device string is the 'absolute' path of the device + * card,device[subdevice] + * aplay utility can list all pcm devices + * aplay -l + +||| +### Configuration +Each card sets one/multiple interfaces which determine what ALSA API can be used. +* pcm + * PCM interface + * snd_pcm_* API + * API used to read/write audio data to a device +* ctl + * Control interface + * snd_ctl_* API + * snd_ctl_get_dB_range, set/get parameters from ALSA driver, ... + * Transfer data in Type/Length/Value(TLV)-way to ALSA driver from userspace + * Fun fact: No limitation on size of data + * Abused for I/O operations + +||| +More and more interfaces... +* amixer + * Simple mixer interface + * snd_mixer_* API + * Setting volume, ... +* amidi +* seq +* hwdep +* rawmidi +* ... + +||| +### Configuration +* User can hook in ALSA plugins to a device + * Conceptually, an ALSA device is a wrapper for its plugins + * We built our usecase in the config files + +||| +### PCM Configuration +The 'type' field determines which plugin is loaded for this PCM device. +* hw +* plug +* shm +* dmix +* dsnoop +* asym +* softvol + * If sound card does not support volume control by HW + * Add pure SW volume control for a device +* ... + +See https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html for a full list. + +||| +### PCM Configuration +#### hw type + * Direct access to the kernel device + * No software mixing or stream adaptation support + * Minimal latency + * PCM parameter that is not supported by HW? + * Error is returned + +||| +### PCM Configuration +#### plug type + * "Plug-and-play" + * Performs channel duplication, resampling, ... + * PCM parameter that is not supported by HW? + * No error returned + * Not something you want if latency is critical + +||| +#### Config file example +What does this say? + +```bash +# My awesome PCM device +pcm.plug0 { + type plug + slave { + pcm "hw:0,0" + } +} +``` + +||| +#### Config file example +```bash [2] +# My awesome PCM device +pcm.plug0 { + type plug + slave { + pcm "hw:0,0" + } +} +``` + +ALSA PCM device with name 'plug0' + * Determines which API we can use to open the device in alsa-lib + * In this case : PCM + +||| +#### Config file example +```bash [3] +# My awesome PCM device +pcm.plug0 { + type plug + slave { + pcm "hw:0,0" + } +} +``` +Load the plug plugin + * Handles data output to this device + * Does automatic sample rate conversion if needed + * Plugins need a slave device! + +||| +#### Config file example +```bash [4-6] +# My awesome PCM device +pcm.plug0 { + type plug + slave { + pcm "hw:0,0" + } +} +``` + +This PCM device is for your first sound card (0) and first device (0) + +||| +ALSA leaves some freedom on how to write the configuration files +``` +pcm_slave.slave0 { + pcm "hw:0,0" +} + +pcm.plug0 { + type plug + slave slave0 +} +``` + +||| +```[3,4] +pcm_slave.slave0 { + pcm "hw:0,0" + channels 6 + rate 96000 +} + +pcm.plug0 { + type plug + slave slave0 +} +``` +Here we restrict the device's hardware parameter space + * Play on 6 channels + * Set the samplerate to 96kHz + +Important: Anything that can be set through the ALSA PCM API can be set in the config file! + +||| +### ALSA mysteries + +#### My latency is too high + +* Check which card.conf is being loaded + * strace is your friend and wants to help you... unlike ALSA +* Check if some parameters are being set statically + * Period size + * Buffer size + * ... + +||| +## Some interesting stuff +Exlamation sign causes previous definition to be overridden +``` +pcm.!default { type hw card 0 } +``` + +Can also use: +* ?: assign if not already assigned (so do not override) +* +: create new parameter when necessary + * Default behaviour and therefore useless +* -: Cause error when trying to assign a parameter which did not previously exist + +||| +## More interesting stuff + +Functions in the configuration + * Modify configuration at runtime + * f.e. through env-variable + +``` +pcm.!default { + type plug + slave.pcm { + @func getenv + vars [ ALSAPCM ] + default "hw:myAwesomeAudioDevice" + } +} +``` + +Good luck with that... + + + +||| +## More more interesting stuff +Hook functions to configure device when device is opened +* setting volume to 0 +* ... + +Good luck with that... + +--- +## PCM +Digitized sound +* Samplerate +* Channels +* Sample format + +Not as easy as just setting them one by one + +||| +## PCM configuration + +* Constructs a configuration space +* PCM parameters are not independent from each other for some sound cards + * Cannot combine all sample formats with all sampling rates or channel counts + +||| +## PCM configuration + +* ALSA constructs an n-dimensional space to limit possible combinations + * Samplerate dimension + * Channel dimension + * Sample format dimension + * ... +* Therefore, In ALSA API, we set a minimum samplerate + * snd_pcm_hw_params_set_rate_near(), snd_pcm_hw_params_set_channels_near(), ... + * This narrows down the possible channels, sample format, ... + * So order of configuration is important! + * Order of parameters determines the parameters selected + +||| +## PCM configuration + +Ok, but how do I know what params are actually set?! + +* printf +* /proc/asound/card#/pcm#/sub#/hw_params +* aplay -v + +--- +## Simple usecase +1 device recording and playing + +||| +## Several ways to tackle this +* Blocking +* Non-blocking +* Asynchronous +* Polling + +||| +#### Blocking +* one thread per device + * capture and playback are two separate devices! +* Results in two threads + +||| +#### Blocking + +```c +#define AUDIO_SAMPLERATE 16000 + +#define AUDIO_NR_OF_SAMPLES 128u +#define AUDIO_BYTES_PER_SAMPLE 2u +#define AUDIO_OUTPUT_NR_CHANNELS 2u +#define SAMPLE_BUFFER_SIZE (AUDIO_NR_OF_SAMPLES * AUDIO_OUTPUT_NR_CHANNELS * AUDIO_BYTES_PER_SAMPLE) + +int main(int argc, char **argv) +{ + snd_pcm_t *handle = NULL; + int period_size = 0; + int period_time = 0; + char my_samples[SAMPLE_BUFFER_SIZE]; + + snd_pcm_open(&handle, "default:CARD=MyAwesomeAudioCard", SND_PCM_STREAM_PLAYBACK, 0); + + snd_pcm_hw_params_t *hw_params; + snd_pcm_hw_params_alloca(&hw_params); + snd_pcm_hw_params_current(handle, hw_params); + + snd_pcm_hw_params_set_access(handle, hw_params, SND_MODE_INTERLEAVED); + snd_pcm_hw_params_set_format(handle, hw_params, SND_PCM_FORMAT_U16); + snd_pcm_hw_params_set_rate_near(handle, hw_params, AUDIO_SAMPLERATE); + + snd_pcm_hw_params(handle, hw_params); + + snd_pcm_hw_params_get_period_size(params, period_size, 0); + snd_pcm_hw_params_get_period_time(params, period_time, NULL); + + + snd_pcm_sw_params_t *sw_params = NULL; + snd_pcm_sw_params_malloc(&sw_params); + snd_pcm_sw_params_current(handle, sw_params); // AFTER hw params! + + snd_pcm_sw_params_set_start_threshold(handle, sw_params, AUDIO_NR_OF_SAMPLES); + + snd_pcm_sw_params(handle, sw_params); + + // DUMP SETTINGS + snd_output_t *output = NULL; + snd_output_stdio_attach(&output, stdout, 0); + snd_pcm_dump(handle, output); + + // Prepare codec for output + snd_pcm_drop(handle); // Just to be sure... + snd_pcm_prepare(handle); + + // ALSA gods demand their buffers to be prefilled with 2 period sizes! + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + + // Codec is started after this + snd_pcm_state(handle) == SND_PCM_STATE_RUNNING; + + // Do our thing... + while(1) { + int error = snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + if (error < 0) { + // xrun recovery + int recover = snd_pcm_recover(handle, error, 1); + if (recover < 0) { + // all hope is lost.... + } + // After recovery, need to prefill codec again! + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + } + } +} +``` + +||| +#### Non-Blocking + +* Same as blocking +* Functions return new error codes + * -EBUSY when resource is unavailable + * aka you did something fishy... + * -EAGAIN if buffers are full + +||| +#### Non-Blocking +```c +#define AUDIO_SAMPLERATE 16000 + +#define AUDIO_NR_OF_SAMPLES 128u +#define AUDIO_BYTES_PER_SAMPLE 2u +#define AUDIO_OUTPUT_NR_CHANNELS 2u +#define SAMPLE_BUFFER_SIZE (AUDIO_NR_OF_SAMPLES * AUDIO_OUTPUT_NR_CHANNELS * AUDIO_BYTES_PER_SAMPLE) + +int main(int argc, char **argv) +{ + snd_pcm_t *handle = NULL; + int period_size = 0; + int period_time = 0; + char my_samples[SAMPLE_BUFFER_SIZE]; + + // setup stuff... + + // Prepare codec for output + snd_pcm_drop(handle); // Just to be sure... + snd_pcm_prepare(handle); + + // ALSA gods demand their buffers to be prefilled with 2 period sizes! + snd_pcm_non_block(handle, 0); + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + snd_pcm_non_block(handle, 1); + + // Codec is started after this + snd_pcm_state(handle) == SND_PCM_STATE_RUNNING; + + // Do our thing... + while(1) { + int error = snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + if (error == -EAGAIN) { + sleep(100); + continue; + } + if (error < 0) { + // xrun recovery + int recover = snd_pcm_recover(handle, error, 1); + if (recover < 0) { + // all hope is lost.... + } + // After recovery, need to prefill codec again! + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + snd_pcm_writei(handle, my_samples, AUDIO_NR_OF_SAMPLES); + } + } +} +``` + +||| +#### Async + * 'Microcontroller'-way (patent pending) + * Seems natural/elegant + * Why let us do the waiting when ALSA can just inform us when it wants samples? + * Uses SIGIO by default + * Wizards can redefine it to a realtime signal (actual quote from ALSA docs...) + * ALSA Driver has to raise the signal + * So it's not supported by a lot of drivers + * Can conflict with other modules/libraries/... using the same signal + * Hence, you have to be a wizard to get it working + +||| +#### Async +* Not very stable... + * Seems confirmed by the fact that nobody seems to use it + * Big players (PulseAudio/JACK/PortAudio) don't use it +* My offficial recommendation: don't use it if you want to maintain your sanity... + +||| +#### Async +```c +int main(int argc, char **argv) +{ +//TODO +} +``` + +||| +#### Polling + * Closest to the async model and still managable/stable + * We ask ALSA for file descriptors of the audio device we can poll + * Sweet! + * No need for sleeps, waiting, .... + +||| +#### Polling +Oh you naive fool.... + * ALSA can generate 'NULL' events + * Yes, stated by their official documentation... + * So your thread is always waking up and checking for null events + * You still have to throttle the thread/poll yourself.... + +||| +#### Polling +```c +int main(int argc, char **argv) +{ +//TODO +} +``` + +||| +#### ALSA quirks +* alsa-lib startup behaviour for output devices + * Need to be prefilled with 2 * period_size + * Just because + * If not... xrun after a while +* Maintain handshake with library + * Get state from pcm handle + * Depending on that state, do stuff + * recover from xrun + * prepare again after xrun + * prefill before writing your own audio! + * https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html + +--- +## Complex usecase +Several devices + +||| +## Blocking +Extrapolate the blocking usecase +* 1 device == 1 thread +* Simple +* But resource heavy.... + * f.e. 8 Audio devices, full duplex (playback and recording) + * 8 devices x 2 threads = 16! + +||| +#### Blocking +```c +int main(int argc, char **argv) +{ +//TODO +} +``` + +||| +## Polling +* Bookkeeping + * Figuring out which device generated event +* One device can influence others + * If one device takes too long writing/reading, + the others can experience xrun +* But, this seems to be the only stable/flexible way to handle multiple alsa devices in a performance/resource-friendly way. + +||| +#### Polling +```c +int main(int argc, char **argv) +{ +//TODO +} +``` + +--- +## Tips and tricks +* Thread safety + * Opening audio devices is thread safe and returns a handle + * User is responsible for serializing acces to handle-related functions + * So you have to provide your own locking scheme if handle is shared! + * Standalone (non-handle) functions are thread safe though +* Disable multi-thread support at runtime + * LIBASOUND_THREAD_SAFE=0 +* Check the official examples + * The API doesn't work as you would think it works +* Check alsa-utils + +||| +## Tips and tricks +* Check alsa-mixer for volume control implementation + * Human ear is an a-hole +* Check PortAudio/PulseAudio/JACK/... + * Not just for 'code ideas' + * You can use them iso ALSA + * But check performance impact +* Useful tools + * aplay + * list all devices: aplay -l + * list configuration of device: aplay -v +* Some functions are notorious for not being stable + * snd_pcm_drain + * Comment in PortAudio:src/hostapi/alsa/pa_linux_alsa.c:AlsaStop: "snd_pcm_drain can hang forever." + * Commit from 2013... + +||| +## Tips and tricks +* ALSA output devices startup behaviour + * Need to be prefilled with 2 * period_size + * Just because + * If not... xrun after a while +* Configured audio devices + * /proc/asound/cards +* State of sound devices stored persistently + * Alsa-utils + * /var/lib/alsa/asound.state + * Can be disabled + + +||| +## Future stuff +ALSA/alsa-lib introduced usecase managers +* Headset +* Speakers +* Microphone +* ... + +Used in Ubuntu Touch (Nexus 7) +* Ability to set actions + * EnableSpeakers + * DisableMicrophone + + +--- +## Sources +* Wiki https://alsa-project.org/wiki + * Contains a lot of dead links + * Mostly replaced with kernel info (see below) +* Unofficial wiki https://alsa.opensrc.org/ + * Is more honest about stuff that is broken etc. +* Kernel info https://www.kernel.org/doc/html/v4.17/sound/index.html + * Writing an ALSA driver https://www.kernel.org/doc/html/v4.17/sound/kernel-api/writing-an-alsa-driver.html + + +||| +## Sources +* Some guy that also struggled http://www.volkerschatz.com/noise/alsa.html +* Sample programs http://equalarea.com/paul/alsa-audio.html +* alsa-lib doxygen https://www.alsa-project.org/alsa-doc/alsa-lib/ + * Handshake between app and lib https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html +* Arch is the best wiki ever https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture diff --git a/custom.css b/custom.css new file mode 100644 index 0000000..458dc03 --- /dev/null +++ b/custom.css @@ -0,0 +1,3 @@ +.reveal { + font-size: 30px; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..e65b469 --- /dev/null +++ b/index.html @@ -0,0 +1,56 @@ + + + + + + + ALSA presentation + + + + + + + + + + + +
+
+
+
+ +
+
+ + + + + + + + diff --git a/obi_wan.jpg b/obi_wan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b3529c9db740c2ebd7a40f68a1c1667e01a370b GIT binary patch literal 57442 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