User Tools

Site Tools


doc:appunti:linux:sa:alsa_rec

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:alsa_rec [2020/12/23 18:49] niccolodoc:appunti:linux:sa:alsa_rec [2020/12/26 11:34] (current) – [Registrare con parecord] niccolo
Line 61: Line 61:
 </code> </code>
  
-Come si vede la **active port** è quella dell'**internal-mic**+Come si vede la **active port** è quella dell'**analog-input-internal-mic**. Per selezionare l'altra porta si impartisce il comando: 
 + 
 +<code> 
 +pacmd set-source-port 1 analog-input-mic 
 +</code> 
 + 
 +===== 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: 
 + 
 +<code> 
 +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 
 +</code> 
 + 
 +In questo caso vogliamo usare la **card 0**, **device 0**: 
 + 
 +<code> 
 +arecord --device="hw:0,0" --duration=15 foobar.wav 
 +</code> 
 + 
 +===== 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**: 
 + 
 +<code> 
 +pacmd list-sources 
 +3 source(s) available. 
 +    index: 0 
 +        name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor> 
 +        ... 
 +    index: 1 
 +        name: <alsa_input.pci-0000_00_1b.0.analog-stereo> 
 +        ... 
 +        ports: 
 +                analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) 
 +        active port: <analog-input-mic> 
 +  * index: 5 
 +        name: <alsa_input.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.analog-stereo> 
 +        ... 
 +        ports: 
 +                analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown) 
 +        active port: <analog-input-mic> 
 +</code> 
 + 
 +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**: 
 + 
 +<code> 
 +pacmd set-default-source \ 
 +    'alsa_input.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.analog-stereo' 
 +</code> 
 + 
 +Prima di avviare la registrazione è opportuno **impostare il volume**, sempre da riga di comando: 
 + 
 +<code> 
 +pacmd set-source-volume 5 32768 
 +</code> 
 + 
 +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**: 
 + 
 +<code> 
 +Source #1 
 +        State: RUNNING 
 +        Name: alsa_input.pci-0000_00_1b.0.analog-stereo 
 +        ... 
 +        Base Volume: 5206 /   8% / -66.00 dB 
 +</code> 
 + 
 +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: 
 + 
 +<code> 
 +pacmd set-source-mute 5 0 
 +</code> 
 + 
 +Finally the command to record a sound file from the microphone: 
 + 
 +<code> 
 +parecord --verbose --device=5 --channels=1 --fix-rate foobar.wav 
 +</code> 
 + 
 +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.  |
doc/appunti/linux/sa/alsa_rec.1608745791.txt.gz · Last modified: 2020/12/23 18:49 by niccolo