====== Recording from ALSA/Pulseaudio Microphone ====== Per configurare l'output con ALSA/Pulseadio vedere la pagina **[[pulseaudio]]**. Verificare quali periferiche di registrazione (**capture**) ha riconosciuto ALSA: arecord -l **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 È possibile anche eseguire **alsamixer** quindi premere **F6** per selezionare la scheda audio e quindi **F5** per vedere le periferiche di tipo **Capture**. Il comando **pacmd list-sources** è più dettagliato, in questo esempio ha identificato due sorgenti relative alla stessa scheda audio **HDA Intel**, la prima è di tipo **monitor** e la seconda di tipo **sound**. La seconda ha due porte di tipo **microfono**: pacmd list-sources 2 source(s) available. * index: 0 name: driver: ... card: 0 module: 6 properties: device.description = "Monitor of Audio interno Stereo analogico" device.class = "monitor" alsa.card = "0" alsa.card_name = "HDA Intel" ... index: 1 name: driver: ... card: 0 properties: device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "ALC269VB Analog" alsa.id = "ALC269VB Analog" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "HDA Intel" device.description = "Audio interno Stereo analogico" alsa.mixer_name = "Realtek ALC269VB" ... ports: analog-input-internal-mic: Microfono interno (priority 8900, latency offset 0 usec, available: no) properties: device.icon_name = "audio-input-microphone" analog-input-mic: Microfono (priority 8700, latency offset 0 usec, available: yes) properties: device.icon_name = "audio-input-microphone" active port: Come si vede la **active port** è quella dell'**analog-input-internal-mic**. Per selezionare l'altra porta si impartisce il comando: pacmd set-source-port 1 analog-input-mic ===== Registrare con arecord ===== Il programma **arecord** fornito dal pacchetto Debian **alsa-utils** è un registratore audio da riga di comando esperessamente creato per il sistema audio **ALSA**. Ovviamente se si ha installato il sistema **PulseAudio** è preferibile utilizzare un programma che utilizzi quest'ultimo in modo da trarre vantaggio dall'uso concorrente e centralizzato delle risorse audio, ecc. Per registrare con il comando **arecord** si deve prima identificare il device con: arecord --list-devices **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 In questo caso vogliamo usare la **card 0**, **device 0**: arecord --device="hw:0,0" --duration=15 foobar.wav ===== Registrare con parecord ===== Il programma **parecord** fornito dal pacchetto Debian **pulseaudio-utils** è un registratore audio da riga di comando che si interfaccia con il sistema **PulseAudio**. Utilizzare PulseAudio come layer intermedio fra gli applicativi utente e il layer a basso livello ALSA ha diversi vantaggi, tra cui la condivisione del canale audio fra i vari applicativi, ecc. Anzitutto è necessario individuare la periferica che vogliamo utilizzare, su un PC con **scheda audio integrata** e adattatore **audio USB** saranno ovviamente presenti due **source** PulseAudio, identificabili con il comando **pacmd list-sources**: pacmd list-sources 3 source(s) available. index: 0 name: ... index: 1 name: ... ports: analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) active port: * index: 5 name: ... ports: analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) active port: Anzitutto abbiamo il **monitor** fornito dalla scheda PCI audio integrata, che tuttavia non ha **ports** disponibili. Quindi con **index 1** abbiamo la stessa **scheda audio PCI** con la sua **port** per il microfono. Infine con **index 5** c'è la **scheda USB** con la sua **port** per il microfono. Con l'asterisco viene indicata la **sorgente predefinita**. Da riga di comando è possibile impostare la sorgente predefinita tramite il suo **numero** o il **nome**: pacmd set-default-source \ 'alsa_input.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.analog-stereo' Prima di avviare la registrazione è opportuno **impostare il volume**, sempre da riga di comando: pacmd set-source-volume 5 32768 Anche in questo caso invece dell'**indice numerico** (5 nell'esempio) è possibile utilizzare il **name** indicato da ''pacmd list-sources''. Il valore numerico che segue è compreso nell'intervallo 0 - FIXME e si interpreta come da tabella che segue: ^ Valore ^^ Percentuale ^ dB ^ | 0 | 0k | 0% | -infinito | | 16384 | 16k | 25% | -36.12 | | 32768 | 32k | 50% | -18.06 | | 65536 | 64k | 100% | 0.00 | | 81920 | 80k | 125% | 5.81 | | 98304 | 96k | 150% | 10.57 | **ATTENZIONE**: Il livello di volume impostato e mostrato da PulseAudio viene opportunamente convertito nelle impostazioni di basso livello del sistema ALSA. Ad esempio una scheda audio potrebbe avere due controlli ALSA separati per il livello del microfono ed il suo guadagno (amplificazione o gain), ma PulseAudio mostra un solo valore (e quindi un solo cursore nel mixer) per regolare il livello. Quindi in generale conviene evitare di usare i tool ALSA come **alsamixer** o **amixer** per impostare i livelli, ma utilizzare i corrispondenti comandi **pacmd** di **PulseAudio** Ogni source ha il suo **Base Volume** che cambia da scheda audio a scheda audio. Nel nostro esempio il microfono della **scheda audio PCI integrata** ha un valore pari a **5206** (8%, -66.00 dB), mentre la **scheda USB** ha un valore pari a **20724** (32%, -30.00 dB). Per conoscere tale valore si usa il comando **pactl list sources**: Source #1 State: RUNNING Name: alsa_input.pci-0000_00_1b.0.analog-stereo ... Base Volume: 5206 / 8% / -66.00 dB Il mixer **pavucontrol** mostra un segno con etichetta **Base** in corrispondenza di tale livello nel cursore del mixer, fra i segni dello 0% (**Silence**) e del 100% (**0 db**): {{.:audio:pavucontrol.png?320|Base Volume per microfono nel mixer Pulse Audio}} In generale il volume va impostato per tentativi in un intervallo compreso fra il **Base Volume** e il **100%**, per ottenere un suono abbastanza alto ma senza clipping. Sempre in generale non ha molto senso impostare un volume superiore al 100%, ma è preferibile amplificare in post-produzione con gli opportuni software. Per sicurezza conviene anche **togliere il mute** al microfono, nel caso in cui fosse attivo: pacmd set-source-mute 5 0 Finally the command to record a sound file from the microphone: parecord --verbose --device=5 --channels=1 --fix-rate foobar.wav You have to press **Ctrl-C** to terminate the recording. The **%%--fix-rate%%** will use the native sampling rate of the source. ===== Profili PulseAudio ===== FIXME: Come configurare il **Profilo**? In **pavucontrol** c'è il tab **Configurazione** => Audio interno => Profilo e si può scegliere: ^ Duplex stereo analogico | Funzionano le Uscite (cuffie), ma non gli Ingressi (microfono). | ^ Uscita «Stereo analogico» | Funzionano solo le Uscite (cuffie). | ^ Ingresso «Stereo analogico» | Funzionano solo gli Ingressi (microfono). | ^ Spento | Tutto muto. |