User Tools

Site Tools


doc:appunti:linux:sa:alsa_rec

This is an old revision of the document!


Recording from ALSA/Pulseaudio Microphone

Per configurare l'output con ALSA/Pulseadio vedere la pagina PulseAudio e ALSA.

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: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        driver: <module-alsa-card.c>
        ...
        card: 0 <alsa_card.pci-0000_00_1b.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: <alsa_input.pci-0000_00_1b.0.analog-stereo>
        driver: <module-alsa-card.c>
        ...
        card: 0 <alsa_card.pci-0000_00_1b.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: <analog-input-internal-mic>

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: <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>

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 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.

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.1608976789.txt.gz · Last modified: 2020/12/26 10:59 by niccolo