[bootlin/training-materials updates] master: agenda: new online audio training (87e6c12b)
Alexandre Belloni
alexandre.belloni at bootlin.com
Sun Apr 23 21:36:18 CEST 2023
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/87e6c12bbfcdcc4221cb21a77ffafbd1fe9d0085
>---------------------------------------------------------------
commit 87e6c12bbfcdcc4221cb21a77ffafbd1fe9d0085
Author: Alexandre Belloni <alexandre.belloni at bootlin.com>
Date: Mon Jan 25 11:29:46 2021 +0100
agenda: new online audio training
Signed-off-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
>---------------------------------------------------------------
87e6c12bbfcdcc4221cb21a77ffafbd1fe9d0085
agenda/audio-online-agenda.tex | 269 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 269 insertions(+)
diff --git a/agenda/audio-online-agenda.tex b/agenda/audio-online-agenda.tex
new file mode 100644
index 00000000..a24ef7d2
--- /dev/null
+++ b/agenda/audio-online-agenda.tex
@@ -0,0 +1,269 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\def \trainingtitle{Audio with embedded Linux}
+\def \trainingduration{On-line seminar, 3 sessions of 4 hours}
+\def \agendalanguage{english}
+\def \training{audio}
+
+\usepackage{agenda}
+
+\begin{document}
+
+\feshowtitle
+
+\feagendasummaryitem{Title}{
+ {\bf \trainingtitle{}}
+}
+\feagendasummaryitem{Training objectives}{
+ \begin{itemize}
+ \vspace{-0.5cm}
+ \item Be able to understand the basics of audio theory: analog
+ vs. digital, sampling theory, audio formats and audio hardware
+ \item Be able to understand the architecture of ASoC, the Linux
+ kernel subsystem for audio devices used in embedded systems, the
+ role of the different drivers and the Device Tree representation
+ \item Be able to write a Device Tree describing the topology of
+ audio hardware on an embedded Linux system
+ \item Be able to use complex audio routing capabilities, audio power
+ management capabilities, and complex audio components such as
+ auxiliary devices or amplifiers
+ \item Be able to configuration the ALSA user-space components and
+ ALSA audio widgets
+ \item Be able to understand the available user-space APIs for
+ playing and capturing audio, as well as audio servers such as
+ Pulseaudio, Pipewire or Jack.
+ \vspace{-0.5cm}
+ \end{itemize}
+}
+\feagendasummaryitem{Duration}{
+ {\bf Three} half days - 12 hours (4 hours per half day).
+}
+\onlinepedagogics{audio}
+\feagendasummaryitem{Trainer}{
+ Alexandre Belloni
+ \newline \url{https://bootlin.com/company/staff/alexandre-belloni/}
+}
+\feagendasummaryitem{Language}{
+ Oral lectures: English
+ \newline Materials: English.
+}
+\feagendasummaryitem{Audience}{
+ Companies and engineers that are developing embedded Linux systems
+ that include audio features.
+}
+\feagendasummaryitem{Prerequisites}{
+ \begin{itemize}
+ \prerequisitecommandline
+ \prerequisiteembeddedlinux
+ \prerequisiteenglish
+ \end{itemize}
+}
+\feagendasummaryitem{Required equipment}{
+ \begin{itemize}
+ \item Computer with the operating system of your choice, with the
+ Google Chrome or Chromium browser for videoconferencing
+ \item Webcam and microphone (preferably from an audio headset)
+ \item High speed access to the Internet
+ \end{itemize}
+}
+\certificate{}
+\disabilities{}
+
+\section{Half day 1}
+
+\feagendatwocolumn
+{Lecture - Digital Audio Representation}
+{
+ \begin{itemize}
+ \item What is sound?
+ \item Sampling theory
+ \item Sample size, sample rate
+ \item Audio formats: I2S, LJ, RJ, DSPA, DSPB
+ \item Slimbus
+ \item Soundwire
+ \item AC97
+ \item IEC 61937 (S/PDIF and HDMI)
+ \item PDM
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Introducing the basic notions used for representing audio waveforms.}
+}
+{Lecture - Hardware}
+{
+ \begin{itemize}
+ \item Signals
+ \item CPU Digital Audio Interfaces
+ \item CODEC Digital Audio Interfaces
+ \item Amplifiers
+ \item Clocks and clock master
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting the hardware involved in the audio playback or capture.}
+}
+\\
+\feagendatwocolumn
+{Lecture - Linux kernel ASoC subsystem}
+{
+ \begin{itemize}
+ \item ASoC: the ALSA System-on-Chip subsystem in the Linux kernel
+ \item Linux kernel drivers for audio codecs
+ \item Linux kernel drivers for CPU audio interfaces
+ \item Linux kernel drivers for audio cards
+ \item Widgets
+ \item Describing audio cards with Device Tree: {\em
+ audio-graph-card}, {\em simple-audio-card}
+ \item Audio components
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Introducing the Linux kernel subsystem for audio on embedded systems.}
+}
+{Demo - Audio card examples}
+{
+ \begin{itemize}
+ \item Walk-through of audio codec drivers
+ \item Walk-through of CPU audio interface drivers
+ \item Walk-through of DT-only audio cards
+ \item Walk-through of card drivers
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting existing sound card support.}
+}
+
+\section{Half day 2}
+
+\feagendatwocolumn
+{Lecture - Linux kernel helpers}
+{
+ \begin{itemize}
+ \item {\em regmap}, {\em regcache}
+ \item DMA handling
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting the common helper APIs.}
+}
+{Lecture - Routing}
+{
+ \begin{itemize}
+ \item Routing audio
+ \item DAPM: Dynamic Audio Power Management
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting the audio routes and power managment.}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - More audio components}
+{
+ \begin{itemize}
+ \item Auxiliary devices, amplifiers, muxing
+ \item Jack detection
+ \item Asynchronous Sample Rate Converter
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting more components of the sound cards.}
+}
+{Demo - Complex audio card examples}
+{
+ \begin{itemize}
+ \item Examples of DT-only complex audio cards
+ \item Examples of complex card drivers
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting existing advanced sound card support.}
+}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Lecture - Troubleshooting}
+{
+ \begin{itemize}
+ \item Debugging
+ \item {\em vizdapm}
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting how to debug common issues.}
+}
+{Demo - Debugging}
+{
+ \begin{itemize}
+ \item Examples of common issues and their resolutions
+ \end{itemize}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - Userspace, hardware configuration}
+{
+ \begin{itemize}
+ \item ALSA plugins
+ \item \code{asound.conf}
+ \item Sound card configuration
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Configuring the userspace audio paths and effects.}
+}
+{Demo - Card configuration examples}
+{
+ \begin{itemize}
+ \item Reordering channels
+ \item Splitting channels
+ \item Resampling
+ \item Mixing
+ \item LADSPA
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Exercising the ALSA plugins.}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - Userspace, widget configuration}
+{
+ \begin{itemize}
+ \item {\em amixer}
+ \item {\em alsamixer}
+ \item Userspace API
+ \item Saving state: {\em alsactl}, \code{asound.state}
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Configuring the userspace audio paths and effects.}
+}
+{Demo - Configuring widgets}
+{
+ \begin{itemize}
+ \item {\em alsamixer} demonstration
+ \item \code{asound.state} examples
+ \item Custom application
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Configuring the sound card widgets.}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - Userspace, playing and capturing audio}
+{
+ \begin{itemize}
+ \item Userspace API
+ \item {\em Pulseaudio}
+ \item {\em Pipewire}
+ \item {\em Jack}
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Playing and capturing audio samples.}
+}
+{Lecture - Advanced features}
+{
+ \begin{itemize}
+ \item Compressed streams
+ \item Topology
+ \item CODEC to CODEC link
+ \end{itemize}
+ \vspace{0.5em}
+ {\em Presenting some very advanced features.}
+}
+
+\end{document}
+
More information about the training-materials-updates
mailing list