
Status: to be written
Volume 7 — Audio
Digital sound in Avalonia applications: samples and buffers, the audio architectures of the three systems, playing and recording, processing sound, and six projects.
31 chapters · about 458 pages (estimate) · to be written. Sound goes through external libraries, and licenses matter here more than anywhere: every chapter says which library it uses and what its license allows. From waveforms to file formats (WAV written by hand, MP3, OGG, FLAC), from latency to filters, up to MIDI and SoundFont. The projects: a music player, a small audio workstation, a synthesizer, a real-time spectrum analyzer, a voice note recorder and a tuner.
Table of contents
The table of contents is in Italian, as the volume is written in Italian; the English edition follows.
Il multimedia era un volume solo, audio e video insieme. Diviso in due libri interi, senza togliere niente: questo è l'audio, il volume 8 è il video. Avalonia dà l'interfaccia; il suono passa per librerie esterne, e qui le licenze contano più che altrove: ogni capitolo dice quale libreria usa e che cosa la sua licenza permette.
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare | — | 8 |
| Prima · Il suono digitale | VII.1–VII.6 | 80 |
| Seconda · Riprodurre e registrare | VII.7–VII.15 | 120 |
| Terza · Elaborare il suono | VII.16–VII.25 | 133 |
| Progetti | VII.26–VII.31 | 85 |
| Appendici | A–C | 30 |
| Totale | 31 capitoli | ≈ 458 |
Prima di cominciare ○
Prefazione · la collana · che cosa serve dei volumi precedenti (i thread del volume 1, il Dispatcher del volume 2, il disegno veloce dei volumi 3 e 4) · le cuffie, la scheda audio e il microfono del libro · le librerie e le licenze.
Parte prima — Il suono digitale
- VII.1 L'audio digitale ○ — campionamento, frequenza, bit, canali, PCM intero e a virgola mobile; che cosa si sente e che cosa no.
- VII.2 Buffer e blocchi ○ — il suono a pezzi: buffer, blocchi, il thread che li chiede; perché un ritardo di pochi millisecondi diventa un buco che si sente.
- VII.3 Le architetture audio dei sistemi ○ — WASAPI su Windows, Core Audio su macOS, ALSA, PulseAudio e PipeWire su Linux; modo condiviso ed esclusivo.
- VII.4 Scegliere la libreria (e la licenza) ○ — NAudio, miniaudio, PortAudio, OpenAL Soft: che cosa fanno, su quali sistemi, con quale licenza; BASS escluso perché a pagamento nei programmi commerciali.
- VII.5 I formati dei file ○ — WAV scritto e letto a mano; MP3, OGG Vorbis, FLAC, AAC: compressione con e senza perdita, metadati, copertine.
- VII.6 Misurare il suono ○ — livello, picco, RMS, decibel; un vu-meter disegnato in Skia, onesto.
Parte seconda — Riprodurre e registrare
- VII.7 Il primo suono da Avalonia ○ — un tono generato e mandato all'uscita; il thread audio e quello della finestra.
- VII.8 Aprire e riprodurre file ○ — WAV, MP3, OGG, FLAC con decodificatori gratuiti; la catena sorgente → convertitore → uscita.
- VII.9 Play, pausa, stop, posizione ○ — i comandi del lettore; cercare un punto in un file compresso.
- VII.10 Volume, bilanciamento, guadagno ○ — curve di volume che suonano giuste; il bilanciamento; evitare la saturazione.
- VII.11 Riproduzione in sottofondo e buffer ○ — leggere dal disco senza bloccare; buffer circolari; il suono che continua con la finestra ridotta a icona.
- VII.12 Registrare dal microfono ○ — catturare, salvare in WAV, i permessi del sistema.
- VII.13 Dispositivi di ingresso e uscita ○ — elencarli, sceglierli, accorgersi di quelli collegati e scollegati mentre il programma gira.
- VII.14 Latenza e thread audio ○ — da dove viene la latenza, come si misura, il thread che non deve mai aspettare (niente allocazioni, niente lock).
- VII.15 Conversioni di formato ○ — cambiare frequenza di campionamento, canali e bit senza rovinare il suono.
Parte terza — Elaborare il suono
- VII.16 Mixer e più sorgenti ○ — sommare sorgenti, gestire il livello, aggiungerle e toglierle mentre suonano.
- VII.17 Filtri digitali ○ — passa basso, passa alto, passa banda; FIR e IIR spiegati con il codice.
- VII.18 Equalizzatore ed effetti ○ — equalizzatore a bande; eco, riverbero, compressore, limitatore.
- VII.19 Toni, oscillatori, segnali sintetici ○ — seno, quadra, dente di sega, rumore; l'aliasing nel suono.
- VII.20 Sintesi sonora ○ — inviluppi ADSR, sintesi sottrattiva e FM; una voce, poi molte.
- VII.21 FFT e spettro ○ — la trasformata di Fourier veloce scritta a mano e poi presa da una libreria; finestre; risoluzione in frequenza e nel tempo.
- VII.22 Forma d'onda e spettrogramma ○ — disegnati con Skia (volume 4) a 60 fotogrammi; milioni di campioni senza rallentare.
- VII.23 MIDI ○ — leggere una tastiera MIDI, suonare note, i file
.mid. - VII.24 General MIDI e SoundFont ○ — i 128 strumenti e i canali del General MIDI; una libreria di suoni in un file
.sf2(FluidR3_GM) suonata dal programma con MeltySynth, uguale sui tre sistemi; un file.mide una tastiera MIDI con suoni veri; latenza, memoria, polifonia misurate; il confronto con il sintetizzatore di sistema (Microsoft GS Wavetable Synth su Windows, nessuno pronto su macOS e Linux); le licenze dei SoundFont. - VII.25 Audio sincronizzato con animazioni e timeline ○ — l'orologio dell'audio come orologio del programma; animazioni a tempo di musica.
Progetti
- VII.26 Lettore musicale ○ — libreria, playlist, copertine, equalizzatore, visualizzatore.
- VII.27 Mini workstation audio ○ — tracce, timeline, registrazione, mixer.
- VII.28 Sintetizzatore ○ — tastiera a schermo e MIDI, oscillatori, filtri, inviluppi; accanto agli oscillatori, la voce campionata del SoundFont (capitolo VII.24).
- VII.29 Analizzatore di spettro in tempo reale ○ — dal microfono, con picchi, medie e misure.
- VII.30 Registratore di note vocali ○ — registra, taglia, normalizza, esporta.
- VII.31 Accordatore ○ — la frequenza fondamentale di uno strumento, misurata e mostrata.
Appendici
A. Gli inciampi dell'audio ○ · B. Riferimento rapido ○ · C. Glossario ○
Chapter status: ✔ written · ✎ draft · ○ to be written.
The examples of the volume
The examples of this volume will come with its chapters.