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

pacmd set-default-source 'alsa_input.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.analog-stereo'

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