[bootlin/training-materials updates] master: agenda: on-site version of audio agenda and fixups (82f36988)

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/82f36988d6db66809db4ebb7889c0dca04ec9c92

>---------------------------------------------------------------

commit 82f36988d6db66809db4ebb7889c0dca04ec9c92
Author: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Date:   Fri Jan 13 17:40:35 2023 +0100

    agenda: on-site version of audio agenda and fixups
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>


>---------------------------------------------------------------

82f36988d6db66809db4ebb7889c0dca04ec9c92
 agenda/audio-agenda.tex        | 313 +++++++++++++++++++++++++++++++++++++++++
 agenda/audio-online-agenda.tex |  14 +-
 2 files changed, 326 insertions(+), 1 deletion(-)

diff --git a/agenda/audio-agenda.tex b/agenda/audio-agenda.tex
new file mode 100644
index 00000000..cfa85bc2
--- /dev/null
+++ b/agenda/audio-agenda.tex
@@ -0,0 +1,313 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\def \trainingtitle{Audio with embedded Linux}
+\def \trainingduration{On-site training, 2 days}
+\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, and the GStreamer multimedia
+    pipeline library
+    \vspace{-0.5cm}
+  \end{itemize}
+}
+\feagendasummaryitem{Duration}{
+  {\bf Two} days - 16 hours (8 hours per day).
+}
+\feagendasummaryitem{Pedagogics}{
+  \begin{itemize}
+    \vspace{-0.5cm}
+  \item Lectures delivered by the trainer: 50\% of the duration
+  \item Practical demonstrations done by the trainer: 50\% of the
+    duration
+  \item Electronic copies of presentations.
+    \vspace{-0.5cm}
+  \end{itemize}
+}
+\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}{
+  {\bf For on-site sessions at our customer location, the customer must provide}:
+  \begin{itemize}
+  \item Video projector
+  \item Drawing board
+  \end{itemize}
+}
+\certificate{}
+\disabilities{}
+
+\section{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.}
+}
+
+\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{Day 2}
+
+\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.}
+}
+\\
+
+\feagendaonecolumn
+{Lecture - Userspace, playing and capturing audio}
+{
+  \begin{itemize}
+  \item Userspace ALSA API
+  \item Concept of audio server
+  \item Legacy audio servers: {\em Pulseaudio}, {\em Jack}
+  \end{itemize}
+  \vspace{0.5em}
+  {\em Playing and capturing audio samples.}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - Pipewire}
+{
+  \begin{itemize}
+  \item Pipewire introduction
+  \item Pipewire configuration
+  \item Pipewire tools (pwdump, pw-cli, ...)
+  \item Pipewire session and policy management
+  \item Pipewire modules and filtering
+  \item {\em WirePlumber}
+  \end{itemize}
+  \vspace{0.5em}
+  {\em Using Pipewire as the sound server.}
+}
+{Demo - Pipewire}
+{
+  \begin{itemize}
+  \item Running pipewire on the target
+  \item Inspecting the configuration and setting properties
+  \item Dynamic routing and patchbay
+  \item Using modules and Filter-Chain
+  \end{itemize}
+  \vspace{0.5em}
+  {\em Running Pipewire and exercising advanced configuration.}
+}
+\\
+
+\feagendatwocolumn
+{Lecture - The GStreamer multimedia framework}
+{
+  \begin{itemize}
+  \item {\em GStreamer}
+  \item GStreamer pipelines
+  \item GStreamer plugins
+  \end{itemize}
+  \vspace{0.5em}
+  {\em Using Gstreamer for audio capture and playback.}
+}
+{Demo - GStreamer}
+{
+  \begin{itemize}
+  \item Running gstreamer on the target
+  \item Creating multiple pipelines
+  \end{itemize}
+  \vspace{0.5em}
+  {\em Running Gstreamer using different audio pipelines.}
+}
+
+\end{document}
diff --git a/agenda/audio-online-agenda.tex b/agenda/audio-online-agenda.tex
index e38fbbe1..aaf63d18 100644
--- a/agenda/audio-online-agenda.tex
+++ b/agenda/audio-online-agenda.tex
@@ -39,7 +39,19 @@
 \feagendasummaryitem{Duration}{
   {\bf Three} half days - 12 hours (4 hours per half day).
 }
-\onlinepedagogics{audio}
+\feagendasummaryitem{Pedagogics}{
+  \begin{itemize}
+    \vspace{-0.5cm}
+  \item Lectures delivered by the trainer, over
+    video-conference. Participants can ask questions at any time.
+  \item Practical demonstrations done by the trainer, over
+    video-conference. Participants can ask questions at any time.
+  \item Instant messaging for questions between sessions (replies
+    under 24h, outside of week-ends and bank holidays).
+  \item Electronic copies of presentations.
+    \vspace{-0.5cm}
+  \end{itemize}
+}
 \feagendasummaryitem{Trainer}{
   Alexandre Belloni
   \newline \url{https://bootlin.com/company/staff/alexandre-belloni/}




More information about the training-materials-updates mailing list