Avalonia solo in codiceEnglish

Volumi

Volume 7 — Audio

Stato: da scrivere

Volume 7 — Audio

Il suono digitale nelle applicazioni Avalonia: campioni e buffer, le architetture audio dei tre sistemi, riprodurre e registrare, elaborare il suono, e sei progetti.

31 capitoli · circa 458 pagine (stima) · da scrivere. 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. Dalle forme d'onda ai formati dei file (WAV scritto a mano, MP3, OGG, FLAC), dalla latenza ai filtri, fino a MIDI e SoundFont. I progetti: un lettore musicale, una piccola workstation audio, un sintetizzatore, un analizzatore di spettro in tempo reale, un registratore di note vocali e un accordatore.

Gli esempi del volume

Indice dei capitoli

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.

ParteCapitoliPagine
Prima di cominciare—8
Prima · Il suono digitaleVII.1–VII.680
Seconda · Riprodurre e registrareVII.7–VII.15120
Terza · Elaborare il suonoVII.16–VII.25133
ProgettiVII.26–VII.3185
AppendiciA–C30
Totale31 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 .mid e 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 ○

Stato dei capitoli: ✔ scritto · ✎ in bozza · ○ da scrivere.

Gli esempi del volume

Gli esempi di questo volume arriveranno con i suoi capitoli.