Sound-Aufnahme am Raspberry Pi


Prof. Jürgen Plate

Sound-Verarbeitung am Raspberry Pi

Bekanntermaßen hat der Raspberry Pi zwar Sound-Ausgänge und zwar über eine 3,5-mm-Klinkenbuchse per PWM oder in guter Qualität über den HDMI-Anschluss. Sounds aufnehmen kann er aber nur mit fremder Hilfe, z. B. einem USB-Soundadapter oder ähnlicher Hardware. Wie man ein Mikrofon oder eine andere Audio-Quelle anschliesst, soll hier behandelt werden.

Interne Sound-Schnittstelle

Der Raspberry Pi verfügt über zwei Möglichkeiten der Audio-Ausgabe:

Wenn kein Display angeschlossen ist, kann automatisch auf die analoge Ausgabe umgeschaltet werden.

Bei der Raspbian-Distribution sind schon alle Module per Default installiert. Sonst können Sie das Sound-Modul mittels

modprobe snd_bcm2835 
manuell laden. Wollen Sie das Modul bei jedem Start automatisch laden, erzeugen Sie eine Konfigurationsdatei im Verzeichnis /etc/modules-load.d/ und schreiben Sie dort den Namen des Moduls hinein, zum Beispiel:
echo "snd_bcm2835" > /etc/modules-load.d/sound.conf 
Jetzt sollte die Audio-Ausgabe problemlos funktionieren. Testen können Sie dies beispielsweise per aplay, das im Paket alsa-utils enthalten ist:
aplay foobar.wav 
Im Paket alsa-utils gibt es ein weiteres Testprogramm, mit dem sich ein Sinuston auf einem der Kanäle erzeugen läßt. Zum Beispiel:
speaker-test -t sine -f 440 -c 2 -s 1
speaker-test -t sine -f 440 -c 2 -s 2
(Siehe auch Manual-Page von Speaker-Test: man speaker-test)

Beachten Sie, dass nur der root-User und Nutzer in der Gruppe audio auf die Soundkarte zugreifen können. Gegebenefalls müssen Sie den User mit dem Kommando gpasswd -a <USER> audio in die Gruppe audio eintragen.

Wenn Sie nichts hören sollten, kann es daran liegen, dass der Sound auf dem falschen Kanal ausgegeben wird, beispielsweise über HDMI statt analog. Im Paket alsa-utils ist auch das Programm amixer enthalten, ein textbasierter Mixer für das ALSA-System. amixer ist ein Werkzeug für die Kommandozeile und daher für eigene Scripte das geeignetere Werkzeug. Daneben gibt es noch den Alsamixer, der über eine interaktive ncurses-Oberfläche verfügt. Der amixer ist ein mächtiges Werkzeug und kann alle Einstellungen vornehmen, die vom Treiber unterstützt werden. Hier wird er verwendet, um per Kommandozeile den Kanal und die Ausgabe-Lautstärke einzustellen.Der Kanal kann mittels

amixer cset numid=3 <Nummer>
eingestellt werden, wobei für "Nummer" folgende Werte möglich sind: (Falls Sie pulseaudio installiert haben, müssen Sie noch den Parameter "-c 0" angeben.) Nun sollten Sie Sounddateien mittels aplay abspielen können. Zahlreiche Testdateien finden Sie unter /usr/share/scratch/Media/Sounds/. Beachten Sie jedoch, dass mit aplay keine mp3-Dateien abgespielt werden können - dafür brauchen Sie noch die entsprechenden Codecs.

Das Programm amixer hat zahlreiche Kommandos und Parameter, die Sie per amixer --help anzeigen lassen können. Beispielhaft hier nur einige davon. Zuerst kann man erfragen, welche Controls es überhaupt gibt:

pi@raspberrypi ~ $ amixer controls
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
"Switch" ist uninteressant, weil es nur einen Soundchip gibt. "Route" (numid=3) ist der Ausgabekanal und "Volume" (numid=1) die Lautstärke. Die aktuellen Werte erfahren Sie so:
pi@raspberrypi ~ $ amixer contents
numid=3,iface=MIXER,name='PCM Playback Route'
  ; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0
  : values=1
numid=2,iface=MIXER,name='PCM Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=1,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
  : values=-1725
  | dBscale-min=-102.39dB,step=0.01dB,mute=1
Wie man den Kanal wählt, wurde oben schon gezeigt. Bleibt noch die Lautstärke. Der höchste Wert ist 400, der niedrigste -10239. Da man die Lautstärke meist über die angeschlossene Anlage oder "Brüllwürfel" (PC-Lautsprecherboxen) regelt, wird in der Regel die Maximallautstärke eingestellt (auch um ein genügend starkes Eingangssignal für die Anlage zu bekommen):
pi@raspberrypi ~ $ amixer cset numid=1 400
numid=1,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
  : values=400
  | dBscale-min=-102.39dB,step=0.01dB,mute=1
Werden Kopfhörer verwendet, muss ggf. die Lautstärke reduziert werden. Bei negativen Werten ist ein Trick notwendig, damit das Programm z. B. -100 nicht als unbekannten Parameter zurückweist: Mit dem Parameter "--" wird dem Programm mitgeteilt, dass nun keine Parameter mehr kommen und schon klappt es mit den negativen Zahlen, z. B.:
pi@raspberrypi ~ $ amixer cset numid=1 -- -1000
numid=1,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
  : values=-1000
  | dBscale-min=-102.39dB,step=0.01dB,mute=1

Die Aufrufe von amixer für die Standardeinstellungen können Sie natürlich wieder in der Startdatei /etc/rc.local unterbringen. Mehr Infos zum amixer finden Sie auch noch weiter unten.

Audiostecker beim Raspberry Pi

Ab Version B+ ist das Composite-Video-Signal mit dabei

Sound-Aufnahme am Raspberry Pi mit Zusatzhardware

Allgemeines

Die meisten Desktopcomputer verfügen über mindestens eine Eingangsbuchse zum Anschluss eines Audiogeräts und eine Ausgangsbuchse zum Anschluss eines Verstärkers oder von Lautsprechern. Diese Buchsen befinden sich normalerweise an der Rückseite eines Desktopcomputers. Viele Computer verfügen auch über eine Mikrofonbuchse, die sich oft an der Vorderseite des Computers befindet. Normalerweise ist dieser Anschluss rosafarbig codiert und zeigt das Bild eines Mikrofons darüber.

Im Allgemeinen haben die meisten Computer-Mikrofone eine von zwei Steckervarianten: einen 3,5-mm-Klinkenstecker, der die gleiche Art Stecker wie beim Kopfhörer ist, oder einen USB-Stecker. Der Klinkenstecker weist darauf hin, dass es sich um ein "normales" analoges Mikrofon handelt, wogegen bei einem Mikrofon mit USB-Anschluss der Analog-Digital-Wandler bereits im Mikrofon enthalten ist und die Sound-Daten digital übermittelt werden.

Hochwertigere Musikmikrofone, Kondensatormikrofone und andere professionelle Ausrüstung erfordern normalerweise einen Adapter, bevor man sie einstecken kann. Sieht man ein Dreieck aus Stiften am Stecker des Mikrofons, handelt es sich um einen XLR- oder DIN-Stecker und man braucht entweder ein Adapter-Kabel oder ein Mischpult. Bei 6,35-mm-Steckern reicht ein Adapter-Secker von 6,35 mm auf 3,5 mm.

Das Signal ist bei machen internen Soundkarten und externen Soundadaptern zu leise, beziehungsweise viel zu verrauscht, weil die Soundkarte oder der Adapter eine zu geringe Eingangsempfindlichkeit besitzt. Das Signal des Mikrofons muss daher per Software lauter gerechnet werden. Dies führt zu einem erhöhten Rauschteppich. Abhilfe schafft hier nur ein kleiner Vorverstärker oder ein Mischpult die das Signal auf Line-Level verstärken und dann den Line-Eingang der Soundkarte oder des Adapters nutzen.

Anschlüsse

Bei den Klinkensteckern -und -buchsen unterscheidet man drei Typen unabhängig von dem Durchmesser. Da gibt es drei Klassen: 1/4 "(6,35 mm), 1/8" (3,5 mm) oder 1/10" (2,5 mm).

Die Belegung kann aber von Gerät zu Gerät variieren. Ziemlich oft gilt für den dreipoligen Stereo- oder Monostecker:

Stereo-Stecker
TipLLinkes Tonsignal
RingRRechtes Tonsignal
SleeveGNDgemeinsame Masse (Rückleitung)
 
Mono-Stecker
TipTTonsignal
RingUggf. Speisespannung (Elektret-Mikro)
SleeveGNDgemeinsame Masse (Rückleitung)

   

Wie Sie sehen ist für Stereo-Mikrofone die Anschlussbelegung identisch mit dem Kopfhöreranschluss. Mono-Mikrofone mit zweipoligem Monostecker führen das Signal an der Spitze und Masse am Schaft des Steckers, wobei gelegentlich eine Tonaderspeisung über die Spitze stattfindet. Mono-Mikrofone mit dreipoligem Stecker nutzen die Spitze für das Signal, den Ring für die Speisung (z. B. 1,5 V oder 5 V)), aus der beispielsweise ein Vorverstärker für ein Elektretmikrofon gespeist werden kann, und Masse am Schaft des Steckers.

Gesangsmikrofone im professionellen Bühnen- und Studiobereich werden in der Regel nicht über Klinken-, sondern über XLR-Verbinder angeschlossen. Für den Anschluss von Mikrofonen an transportable Geräte (z. B. DAT-Recorder im Reportagebereich) werden jedoch häufig auch Klinkenstecker verwendet. Gegebenenfalls ist ein Adapter notwendig.


Adapter XLR zu Klinke Stereo


Adapter XLR zu Klinke 2 x Mono

Audio über USB

Audio-Adapter für den Anschluss an USB gibt es wie Sand am Meer. Da fällt die Wahl schwer. Ich habe mich für ein ganz einfaches Teil entschieden, das nur einen Mikrofon-Eingang und einen Line-Ausgang besitzt. Es nennt sich "Plugable USB Audio Adapter" (Schwarzes Aluminiumgehäuse; C-Media HS 100B Chip; Kein Treiber erforderlich für Windows, Mac OS X, Linux und Chromebook).

Der USB-AUDIO eignet sich besonders für spezielle Linux Einplatinencomputer/Kleincomputer wie z.B. Raspberry Pi, Beaglebone Black, und andere Projekte wie Hackintosh wo es keine integrierten Audio-Treiber gibt. Es ist auch kein Netzteil erforderlich, der USB-AUDIO wird über den USB mit Strom versorgt. Der Adapter verfügt über zwei 3,5-mm-Buchsen für Stereo-Kopfhörer (grün) und Mikrofon (rosa).

Die meisten Mikrofone oder Headsets auf dem Markt besitzen einen TRS-Stecker (Tip, Ring, Sleeve, siehe oben). Der USB-AUDIO ist für diesen Anschluss ausgelegt. Mono- oder TS-Mikrofone (Tip, Sleeve) benötigen einen 3,5-mm-Mono auf Stereo-Adapter. Die meisten Betriebssysteme unterstützen zwar mehrere Audio-Ausgänge, erlauben jedoch nur das Aktivieren von nur einem einzigen Ausgang zu einem Zeitpunkt.

Zum Installieren stecken Sie den USB-AUDIO in den Raspberry Pi und booten den Rechner. Dann überprüfen Sie mit lsusb, ob der Adapter erkannt wurde:

lsusb

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0d8c:0014 C-Media Electronics, Inc.
Der letzte Eintrag listet den USB-AUDIO auf (C-Media ...). Öffnen Sie dann die Datei /etc/modules, und kommentieren Sie darin (sofern vorhanden) den Eintrag "snd_bcm2835" aus.
# snd-bcm2835
i2c-bcm2708
i2c-dev
Dann können Sie nachsehen, was alles an Sound-Hardware istalliert ist:
cat /proc/asound/cards

 0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA
 1 [Device         ]: USB-Audio - USB Audio Device
                      C-Media Electronics Inc. USB Audio Device at usb-20980000.usb-1.3, full speed
Wie Sie sehen, hat der eingebaute Standard-ALSA-Treiber des RasPi noch die Priorität (Device 0). Unter Linux mit einem USB-Adapter arbeiten Sie am besten unter ALSA (Advanced Linux Sound Architecture), siehe unten. Eine ähnliche Ausgabe wie oben können Sie auch mit dem ALSA-Player aplay erreichen. aplay -l zeigt alle verfügbaren Interfaces für die Wiedergabe von Audiodaten an:
aplay -l

Card 0 – bcm2835 (Built-in Pi Audio)
Card 1 – Plugable USB Audio Device
Auch hier wird unser USB-AUDIO als zweite Alternative angezeigt. Wichtig ist nur, dass innerhalb der Ausgabe bei beiden Kommandos (cat ... oder aplay ...) die Angabe Card x: Plugable USB Audio Device oder Card x: ... USB Audio (bzw. auf deutsch "Karte x:") auftaucht, was bedeutet, das der RasPi den USB-Audio-Adapter erkannt hat.

Wenn soweit alles in Ordnung ist, können Sie sich an die Konfiguration machen. Verwenden Sie Ihre Lieblings-Editor (als Root → sudo vi ...), um die Datei /etc/modprobe.d/alsa-base.conf zu ändern (bei neueren Raspbian-Versionen versteckt sich die Datei unter dem Namen /usr/share/alsa/alsa.conf). Löschen Sie dabei nichts, sondern setzen Sie nur ein Kommentarzeichen (#) vor die entsprechende Zeile (Oder erstellen Sie eine Sicherungskopie der Datei). Die Veränderung halten sich in Grenzen. Bei neueren Raspbian-Versionen sind die Änderungen hingegen in der Datei /lib/modprobe.d/aliases.conf vorzunehmen.

Ändern Sie die Zeile

options snd-usb-audio index = -2
auf:
options snd-usb-audio index = 0
Damit hat der USB-Adapter die höchste Priorität und wird als Standard genommen. Die folgende Zeile wird geändert oder hinzugefügt, um den internen Sound-Treiber auf die zweite Stelle zu setzen:
options snd_bcm2835 index = 1
Ersetzen Sie index = 1 durch index = -2, wird er ganz abgeschaltet. Damit ist die Neuordnung der Hierarchie der Soundmodule abgeschlossen.

Nun wird die Datei /etc/asound.conf für den ALSA-Soundtreiber bearbeitet. Ist sie noch nicht vorhanden, können Sie die Datei neu erstellen. Die Bearbeitung erfolgt wieder als Root-User, indem folgende Zeilen eingetragen werden:

pcm.!default {
 type hw card 0
}
ctl.!default {
 type hw card 0
}
Bei neueren Raspbian-Versionen beziehen sich die Änderungen hingegen auf die Datei /usr/share/alsa/alsa.conf. Dort steht irgendwo:
defaults.ctl.card 0
defaults.pcm.card 0
Was man nicht ändern muss, weil oben die Adapterreihenfolge geändert wurde und die USB-Karte schon den Index 0 hat.

Danach ist ein Reboot des Raspberry Pi notwendig, um alle Änderungen zu aktivieren. Noch ein Tipp: Da der USB-Adapter kein Kabel hat, ist es sinnvoll, den Adapter in den unteren USB-Port einzustecken. Wenn oben eingesteckt wird, kommt man eventuell nur schwer an den unteren USB-Port. Was man auch bedenken sollte ist die Tatsache, dass USB-Audio-Geräte stets eine signifikante Latenzzeit besitzen, die eventuell beim parallelen Verwenden einer Kamera einen Versatz zur Folge hat. Das gilt für alle Betriebssysteme. Man kann die Latenz nur hinterher mit Software korrigieren.

ALSA (Advanced Linux Sound Architecture)

ALSA ist der grundlegende Baustein des Soundsystems unter Linux. Ohne ALSA (oder die Alternative OSS4, die hier nicht besprochen wird) sind dem RasPi keine Töne zu entlocken oder aufzuteichen. ALSA stellt die Kernelmodule bereit, mit denen der Sound-Adapter überhaupt erst angesprochen werden kann. Da die Module zum Kernel gehören, muss man sie nicht extra installieren, sie sind bereits vorinstalliert. In der Regel wird die Sound-Hardware beim Booten vom Kernel erkannt. Der Kernel lädt daraufhin das zur Sound-Hardware passende Kernelmodul. Erst nach dem erfolgreichen Laden des Kernelmodules ist die Sound-Hardware von Programmen via ALSA ansprechbar. Eine Standard-Raspbian-Installation bringt die notwendigen ALSA-Pakete bereits mit. Je nach Betriebssystem-Version kann aber die Installation folgender Pakete notwendig sein:

Eine Auflistung über die von ALSA vergebenen Namen bekommt man mit dem Befehl aplay -L, z. B.:
aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=Device
    USB Audio Device, USB Audio
    Default Audio Device
front:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    Front speakers
surround40:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Device,DEV=0
    USB Audio Device, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
sysdefault:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device
Das zweite Informationskommando aplay -l (mit kleinem L) wurd weiter oben schon vorgeführt. An die von ALSA bereitgestellten Schnittstellen können sowohl Programme, andere Soundserver (z. B. PulseAudio) als auch Frameworks (z. B. GStreamer) ankoppeln. Diese Vielfältigkeit ist auch meistens das Problem bei Schwierigkeiten mit dem Soundsystem. Nur in wenigen Fällen liegt der Fehler bei ALSA selbst, sondern in der Anbindung und dem Routing der Klangquellen.

Um die Schnittstellen direkt anzusprechen und zu testen, gibt es den Befehl speaker-test. Er verfügt über eine Vielzahl an Optionen, näheres dazu findet man in der entsprechenden Manpage. Der folgende Kommandoaufruf testet mit rosa Rauschen und zwei Kanälen die Schnittstelle "front" (in der Regel die Standardlautsprecher):

speaker-test -c 2 -D front
Man kann auch die Soundkarte direkt ansprechen, indem man die Devicenummer angibt:
speaker-test -c 2 -D plughw:0,0
oder, je nach Devicenummer ("Card 1"),
speaker-test -c 2 -D plughw:1,0
Dies ist hilfreich, wenn die Soundausgabe gar nicht funktioniert und man ermitteln will, wo genau der Fehler liegt. Die Ausgabe des Programms dokumentiert, was gerade geschieht:
speaker-test 1.0.25

Wiedergabe-Gerät ist plughw:0,0
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kan¦le
Verwende 16 Oktaven rosa Rauschen
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 96 bis 262144
Periodengröße von 48 bis 131072
Verwende maximale Puffergröße 262144
Perioden = 4
gesetzt: period_size = 65536
gesetzt: buffer_size = 262144
 0 - Vorne links
 1 - Vorne rechts
Zeit pro Periode = 5,554304
 0 - Vorne links
 1 - Vorne rechts
Zeit pro Periode = 5,558997
 0 - Vorne links
 1 - Vorne rechts
Zeit pro Periode = 5,559127
 0 - Vorne links
 1 - Vorne rechts
 ...

Einstellungen mit dem Mixer

Das Programm amixer ist ein textbasierter Mixer für das ALSA-System. amixer ist ein Werkzeug für die Kommandozeile und daher für eigene Scripte das geeignetere Werkzeug. Daneben gibt es noch den Alsamixer, der über eine interaktive ncurses-Oberfläche verfügt. Der amixer ist ein mächtiges Werkzeug und kann alle Einstellungen vornehmen, die vom Treiber unterstützt werden. Auf der Treiberebene sind diese Einstellungen relativ kompliziert, weshalb der amixer "simple mixer controls" anbietet. Dies sind Regler und Schalter mit für den Menschen verständlichen Bezeichnungen. An dieser Stelle werden nur Kommandos für diese einfachen Steuerelemente behandelt, weiterführende Informationen bietet die Manpage. Die Beispiele in diesem Kapitel beziehen sich auf den USB-Sound-Adapter, bei der Original-Sound-Schnittstelle erhalten Sie andere Auagaben.

Da amixer mehrere Soundkarten unterstützt, muss auch hier wieder die gewünsche Kartennummer angegeben werden. Beim Aufruf ohne Argumente werden die aktuellen Mixer-Einstellungen für die Standard-Soundkarte bearbeitet. Die allgemeine Syntax des Kommandoaufrufs lautet:

amixer <Optionen> <Kommando>
Neben anderen können dem amixer folgende Optionen übergeben werden:
-h
Hilfefunktion
-q
Stillemodus. Es erfolgen keinerlei Ausgaben (z. B. bei Scripten).
-c Karte
Kartennummer des zu steuernden Soundinterfaces. Der Gerätename, der aus diesem Parameter erstellt wird, hat Syntax 'hw:N', wobei N die Kartennummer ist.
-s
Lesen der Kommandos von stdin statt von der Kommandozeile. Alle Befehle werden nacheinander ausgeführt. Dies ist praktisch, wenn man mehrere Eisntellungen vornehmen muss. Dabei werden nur die Kommandos sset und cset akzeptiert. Andere Befehle werden ignoriert.

Der amixer kennt folgende Kommandos (bei einigen Beispielen wurden lange Zeilen umbrochen):

help
Hilfefunktion, Kommandosyntax
info
Zeigt die Informationen über ein Interface an.
amixer -c 0 info
Card hw:0 'Device'/'C-Media Electronics Inc. USB Audio Device 
at usb-3f980000.usb-1.5, full speed'
  Mixer name    : 'USB Mixer'
  Components    : 'USB0d8c:0014'
  Controls      : 9
  Simple ctrls  : 3
scontrols
Zeigt eine vollständige Liste der einfachen Mixer-Controls an.
amixer -c 0 scontrols
Simple mixer control 'Speaker',0
Simple mixer control 'Mic',0
Simple mixer control 'Auto Gain Control',0
scontents
Zeigt eine vollständige Liste der einfachen Mixer-Controls und deren Inhalt an.
 amixer -c 0 scontents
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 37
  Mono:
  Front Left: Playback 30 [81%] [-7.00dB] [on]
  Front Right: Playback 30 [81%] [-7.00dB] [on]
Simple mixer control 'Mic',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch 
                pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 31 Capture 0 - 35
  Mono: Playback 27 [87%] [4.00dB] [on] Capture 30 [86%] [18.00dB] [on]
Simple mixer control 'Auto Gain Control',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
get oder sget <scontrol>
Zeigt den Inhalt zu einem einfachen Mischer-Control an. Das Control muss angegeben werden. Es kann nur ein Device gleichzeitig gesteuert werden.
amixer -c 0 sget Mic
Simple mixer control 'Mic',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch 
                pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 31 Capture 0 - 35
  Mono: Playback 27 [87%] [4.00dB] [on] Capture 30 [86%] [18.00dB] [on]
set oder sset <scontrol> <Parameter> ...
Setzt den Inhalt eines einfachen Mischer-Controls. Der Parameter kann entweder eine Prozentangabe von 0% bis 100% (%-Suffix), eine Angabe in dB (dB-Suffix) oder ein genauer Hardware-Wert sein. Die dB-Angabe für die Verstärkung kann nur für die Mischelemente mit entsprechend verfügbaren dB-Informationen verwendet werden. Die Parameter cap, nocap, mute, unmute, toggle werden verwendet, um die Aufnahmeeigenschaften zu ändern oder das und Muting für die Gruppe festzulegen.
# Aufnahme an/aus: cap, nocap
amixer -c 0 sset 'Mic' cap

# Wiedergabe an/aus: mute, unmute
amixer -c 0 sset Speaker unmute

# Mikrofon-Empfindlichkeit
amixer -c 0 sset Mic Playback 30
Simple mixer control 'Mic',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch 
                pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 31 Capture 0 - 35
  Mono: Playback 30 [97%] [7.00dB] [on] Capture 30 [86%] [18.00dB] [on]
controls
Zeigt eine vollständige Liste der Karten-Controls an.
amixer -c 0 controls
numid=3,iface=MIXER,name='Mic Playback Switch'
numid=4,iface=MIXER,name='Mic Playback Volume'
numid=7,iface=MIXER,name='Mic Capture Switch'
numid=8,iface=MIXER,name='Mic Capture Volume'
numid=9,iface=MIXER,name='Auto Gain Control'
numid=5,iface=MIXER,name='Speaker Playback Switch'
numid=6,iface=MIXER,name='Speaker Playback Volume'
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'
contents
Zeigt eine vollständige Liste der Karten-Controls und deren Inhalt an.
amixer -c 0 contents
numid=3,iface=MIXER,name='Mic Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=4,iface=MIXER,name='Mic Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=31,step=0
  : values=27
  | dBminmax-min=-23.00dB,max=8.00dB
numid=7,iface=MIXER,name='Mic Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=8,iface=MIXER,name='Mic Capture Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=35,step=0
  : values=30
  | dBminmax-min=-12.00dB,max=23.00dB
numid=9,iface=MIXER,name='Auto Gain Control'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=5,iface=MIXER,name='Speaker Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=6,iface=MIXER,name='Speaker Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=37,step=0
  : values=34,17
  | dBminmax-min=-37.00dB,max=0.00dB
numid=2,iface=PCM,name='Capture Channel Map'
  ; type=INTEGER,access=r----R--,values=1,min=0,max=36,step=0
  : values=0
  | container
    | chmap-fixed=MONO
numid=1,iface=PCM,name='Playback Channel Map'
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
cget <scontrol>
Zeigt den Inhalt eines einzelnen Controls an. ie Identifikation eines Controls hat folgende Komponenten: iface, Name, Index, Gerät, Teilgerät, numid. Das Format der Ausgabe ist ähnlich wie bei contents.
amixer cget numid=3
numid=3,iface=MIXER,name='Mic Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
cset <scontrol> <Parameter>
Setzt den Inhalt eines Controls. Die Identifikation eines Controls hat folgende Komponenten: iface, Name, Index, Gerät, Teilgerät, numid. Darauf folgende Argument(e) legen den/die Wert(e) des Controls fest. Siehe auch Beispiele unten.

Einige Beispiele sollen den Gebrauch der Controls veranschaulichen. Noch eine Anmerkung:Bei negativen Werten ist ein Trick notwendig, damit das Programm z. B. -100 nicht als unbekannten Parameter zurückweist: Mit dem Parameter "--" wird dem Programm mitgeteilt, dass nun keine Parameter mehr kommen und schon klappt es mit den negativen Zahlen.

Zuerst wird der Auto Gain Control ausgeschaltet:

amixer -c 0 cset numid=9,iface=MIXER,name='Auto Gain Control' 0
numid=9,iface=MIXER,name='Auto Gain Control'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
Die Langfassung "numid=9,iface=MIXER,name='Auto Gain Control'" ist nicht zwingend erforderlich, aber innerhalb von Scripten eine gute Dokumentationshilfe. Normalerweise reicht es, die numerische ID anzugeben:
amixer -c 0 cset numid=9 0
numid=9,iface=MIXER,name='Auto Gain Control'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
Oder man gibt nur den Namen an, sofern dieser eindeutig ist:
amixer -c 0 cset name='Auto Gain Control' 0
numid=9,iface=MIXER,name='Auto Gain Control'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
Dann wird die Mikrofon-Empfindlichkeit eingestellt:
amixer -c 0 cset numid=8,iface=MIXER,name='Mic Capture Volume' 30
numid=8,iface=MIXER,name='Mic Capture Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=35,step=0
  : values=30
  | dBminmax-min=-12.00dB,max=23.00dB
Schliesslich wird der Lautsprecher "aufgedreht":
amixer -c 0 cset numid=6 30
numid=6,iface=MIXER,name='Speaker Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=37,step=0
  : values=30,30
  | dBminmax-min=-37.00dB,max=0.00dB

Wiedergabe

Das Programm aplay erlaubt nicht nur, den Status von ALSA zu erkennen sondern kann auch Audio-Dateien abspielen. Einen Überblick über die Sound-Interfaces und deren Sub-Geräte bekommt man, wie oben schon erwähnt, mit:

aplay -l
Wollen Sie dagegen die von ALSA selbst kreierten Schnittstellen des Soundservers sehen, so benutzten Sie das große L:
aplay -L
Das Programm kann aber auch direkt Sounddateien (Formate: voc, wav, raw und au) über die Soundkarte ausgeben. Zum Beispiel:
aplay -D front moo.wav
oder auch
aplay -D plughw:0,0 moo.wav
In der Regel reicht die Angabe der Kartennummer (Device) alleine auch schon aus:
aplay -D plughw:0 moo.wav
Das Default-Format ist wav, für andere Formate muss mit dem Parameter -t [Dateiformat] der Dateityp eingestellt werden (voc, wav, raw oder au). Mit der Option -v können Sie sich Informationen über die Arbeit des Programms ausgeben lassen, z. B. über pcm-Struktur und Setup. Es sind auch mehrere "v" möglich ("vv", "vvv") - für noch mehr Info:
aplay -v -D plughw:0,0 test.wav
Wiedergabe: WAVE 'test.wav' : Signed 16 bit Little Endian, Rate: 44100 Hz, stereo
Hardware PCM card 0 'USB Audio Device' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 22050
  period_size  : 5513
  period_time  : 125011
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 5513
  period_event : 0
  start_threshold  : 22050
  stop_threshold   : 22050
  silence_threshold: 0
  silence_size : 0
  boundary     : 1445068800
  appl_ptr     : 0
  hw_ptr       : 0

Wenn aplay nicht ausreicht, kann ich den Sound-Exchanger SoX empfehlen. Es liest, schreibt und konvertiert faktisch alle existierenden Audioformate, seien sie auch noch so exotisch. Außer der bloßen Konvertierung inklusive Anpassung der Sampling-Rate und Quadro-, Mono- oder Stereoumwandlung kann sox (Sound Exchanger) den Dateien auch noch jeweils Effekte hinzurechnen. sox ist bei vielen Distributionen in den Paketlisten enthalten, wird aber nicht automatisch installiert. Bei Debian/Raspbian reicht das Kommando apt-get install sox, um das Tool auf die Platte zu bekommen. Da sox auf der Kommandozeile arbeitet, ist es extrem flexibel im Scripten einsetzbar, aber manchmal auch unkomfortabel. Dafür kann man damit aber auch Sounds synthetisieren und ausgeben. Mit sox können Sie die Soundkarte softwaremässig on-the-fly wechseln, indem Sie die Umgebungsvariable AUDIODEV auf "hw:0" oder "hw:1" setzen. Dazu geben Sie in der Kommandozeile beispielsweise vor dem Aufruf von play (ein Links auf sox) ein:

AUDIODEV=hw:1 play humptataa.mp3

Aufnahme

Um die Aufnahme-Funktionen des USB-Mikrofon in Linux zu testen, gibt es eine Reihe von netten Programmen. Da jedoch nicht alle Programme speziell für USB-Adapter geeignet sind, nehmen Sie eine nicht ganz so schicke, aber brauchbare Aufnahme-Software, die auf der Kommandozeile arbeitet. Das Tool arecord verfügt über eine Vielzahl an Optionen, siehe Manpage. Die Syntax für die Aufzeichnung lautet:

arecord -f [Format] -D [Hardware] -d [Dauer]
Wenn man beispielsweise in CD-Qualität für 20 Sekunden mit dem USB-Mikrofon erfassen will gibt man ein:
arecord -f cd -D plughw:0,0 -d 10 test.wav
Hiermit wird der Aufnahmekanal des USB-Adapters im Format einer Audio-CD mit 44.1 KHz und 16-Bit-Auflösung (Little Endian) in Stereo als wav-Datei gespeichert. Setzt man den Parameter bei -d auf Null (-d 0), wird so lange aufgenommen, bis das Programm mit STRG-C gekillt wird. In der Regel reicht die Angabe der Kartennummer alleine auch schon aus:
arecord -f cd -D plughw:0 -d 10 test.wav
Ich bleibe aber bei den folgenden Beispielen bei der "Langfassung".

Das Ergebnis kann mit aplay abgespielt werden:

aplay -f cd -D front test.wav
Wenn es funktioniert, dann können Sie das Mikrofon in jeder Umgebung zu verwenden. Nun noch zwei Beispiele:
arecord -t wav --max-file-time=60 -D plughw:0,0 mon.wav
Nimmt von der Standard-Audioquelle in Mono, 8000 Samples pro Sekunde, 8 Bit pro Probe auf. Startet eine neue Datei alle 60 Sekunden. Die Dateinamen lauten "mon-nn.wav", wobei "nn" bei "01" beginnt und dann stetig hochgezählt wird.
arecord -f cd -t wav -max-file_time 900 -D plughw:0,0 mon.wav
Das gleiche wie oben, nur dass die Aufnahme in Stereo mit CD-Qualität erfolgt und alle Viertelstunde eine neue Dateri erzeugt wird.

8 Gigabyte Speicher auf dem USB-Stick reichen für ca. 10 Stunden Stereo-Tonaufnahmen im WAV-Format. Mit weniger Qualität kann man im AU-Format (Mono, 8000 Samples/Sekunde, 8 Bit) auf demselben Speicher fast 300 Stunden aufzeichnen. Zum Schneiden von Tonaufnahmen verwenden Sie z. B. die Software "Audacity" mit GUI. Zur Installation genügt der Befehl sudo apt-get install audacity.

Audiodaten verarbeiten

Wenn Sie für Tests mithören wollen, was gerade über das Mikrofon aufgenommen wird, können Sie den Sound von arecord direkt per Pipe an aplay übergeben. Es tritt dabei aber eine leichte Verzögerung zwischen Aufnahme und Wiedergabe auf:

arecord -t wav -D plughw:0,0 |  aplay -D plughw:0,0

Man kann den Output von aplay auch auf die Standardausgabe leiten und so auch per Pipe in ein Programm leiten, dass die Audidaten auswertet oder konzentriert (z. B. Minima/Maxima der Amplitude bestimmt oder per FFT das Frequensspektrum ermittelt. Für das Standardformat 8 Bit Mono, 8000 Samples/Sekunde reicht das folgende Kommando. Der Parameter -q unterdrückt alle sonstigen Ausgaben:

arecord -q -D plughw:0,0 | auswerteprogramm

Audio-Signale über das Netzwerk streamen

Die beiden oben genannten Programme erlauben es, Audio-Signale über das Netzwerk zu schicken, z. B. an irgendeinen Server. Dazu wird das Audiosignal vom Mikrofon über eine SSH-Verbindung auf den Zielcomputer "gepipt". Das ist ganz einfach:

arecord -D plughw:0,0 -f dat | ssh -C user@server aplay -f dat
Nun schalten Sie die Lautsprecher am Ziel-PC ein und hören Sie, was der Raspberry Pi aufnimmt.

Für solche Fälle ist es günstig, einen SSH-Login ohne Passwort einzurichten. Dafür muss auf dem internen Rechner ein Zertifikat erstellt und auf den externen Computer übertragen werden, was mit Hilfe der beiden Kommandos ssh-keygen und ssh-copy-id erledigt werden kann. Zuerst wird ein Schlüssel-Paar (Public- und Private-Key) erstellt und dann der öffentliche Schüssel zum Webserver übertragen.

Der Private-Key ist dann dem normalen Passwort gleichgestellt. Im Gegensatz zum Passwort existiert er aber als Datei, die vor fremdem Zugriff zu schützen ist. Deswegen besteht die Möglichkeit, den Private-Key mit einer Passphrase zu schützen. Die Passphrase muss in unserem Fall leer bleiben, da sonst bei Verbindungsaufnahme diese Passphrase abgefragt würde und so kein automatischer Audiotransfer möglich wäre.

Das folgende Shellscript erzeugt die Schlüssel und übertägt sie dann (den Account "user@www.netzmafia.de" gibt es natürlich nicht, er dient nur als Beispiel):

#!/bin/bash
# Generiert Public/Private-Keys und kopiert sie zur Netzmafia
# damit ein Login bzw. Aufbau eines SSH-Tunnels dorthin ohne
# Passwort-Eingabe moeglich ist
#
# zuerst werden die Keys generiert
ssh-keygen -t dsa

# nun befinden sich im Verzeichnis ~/.ssh zwei Dateien:
# id_dsa  id_dsa.pub
#
# nun wird der public key zur Netzmafia kopiert und dort
# an die Datei ~/.ssh/authorized_keys angehaengt
ssh-copy-id -i ~/.ssh/id_dsa.pub user@www.netzmafia.de

# ab jetzt kann sich der User vom internen System als
# "user@www.netzmafia.de" ohne Passworteingabe auf
# Netzmafia einloggen

Sounds mit Python verarbeiten

Für das ALSA-Soundsystem kann das vorinstallierte Python-Modul pygame herangezogen werden. Leider unterstützt es nur die eingebaute Soundkarte. Um einen USB-Soundadapter mit Python anzusprechen, kann man Linux-Befehle für den SoX-Player oder arecord aufrufen. Über den Lunk am Ende der Seite kann man auch eine kleine Python-Klasse DoSound herunterladen, die einem sogenannten Wrapper für die Systemkommandos bildet.Damit kann die Soundkarte softwaremässig ausgewählt werden.

Das folgende Beispiel zeigt, wie das Abspielen einer Sounddatei von Python aus erfolgt:

#!/usr/bin/env python

import time
from dosound import DoSound

# Device mit ID 1 verwenden  (USB audio adapter)
player = DoSound(1)        
player.play("/home/pi/humptataa.mp3", 0.5) # volume = 0.5
print "isPlaying:", player.isPlaying()
print "stop"
player.stopPlaying()
print "isPlaying:", player.isPlaying()
Oft werden nur bestimmte Signaltöne benötigt, wozu die internen Soundkarte ausreicht. Die Klasse DoSound verwendet playTone(), um einen Ton mit der vorgegebener Frequenz und Dauer abzuspielen. Im folgenden Beispiel werden erst drei Töne nacheinander und dann alle zusammen abgespielt.
#!/usr/bin/env python

from dosound import DoSound
import time

dev = 0  # interner Soundadapter
DoSound.playTone(440, 0.3, dev)
DoSound.playTone(550, 0.3, dev)
DoSound.playTone(660, 0.3, dev)
time.sleep(1)
DoSound.playTone([440, 550, 660], 3, dev)
DoSound.stopPlaying()

MOC - Music on Console

MOC - music on console ist ein einfach zu bedienender Audioplayer mit einer Client-Server-Struktur für die Konsole, der viele Formate (MP3, Ogg Vorbis, FLAC, Musepack, WAVE, Speex und andere) unterstützt. Es lassen sich Lieder aus einem Ordner abspielen, oder Playlisten erstellen und speichern. MOCP eignet sich besonders bei Systemen, bei denen keine grafische Oberfläche zur Verfügung steht. Er unterstützt außerdem das Abspielen von Internetradiostationen (durch Eingabe einer direkten Adresse für den Stream oder durch (M3U-)Playlisten). Zudem unterstützt er gapless playback und er bsitzt Repeat- und Shuffle-Funktionen. Die Textoberfläche basiert auf der Curses-Bibliothek. MOCP erlaubt es, mit sogenannten Themes das Farbschema des Clients zu verändern. Standardmäßig werden schon einige Themes bei der Installation mitgebracht. Dank der Client-Server-Architektur, kann der Player auch von verschiedenen Clients aus per SHH angesprochen werden.

Vorverstärker

Leider hat bei den meisten Sound-Systemen der Mikrofoneingang nur eine recht geringe Empfindlichkeit. In der Regel lohnt es sich, einen Vorverstärker zu verwenden, statt die Daten später "lauter" zu rechnen (siehe Bemerkung weiter oben). Die Dimensionierung von Transistor-Stufen ist nicht so kompliziert wie es scheint. Die Grundschaltung eines einfachen Mikrofon-Vorverstärkers sieht folgendermaßen aus:

Um die Bauteile zu dimensionieren, müseen die Rahmenbedingungen festgelegt werden:

Damit ein Verstärker einen möglichst großen unverzerrten Aussteuerbereich hat, muss der Kollektor-Ruhestrom die Hälfte des Sättigungsstroms betragen. Dann nämlich lässt sich der Strom in beide Richtungen gleich weit verändern, ohne dass es zu einer Begrenzung kommt.

Der Arbeitswiderstand Rc lässt sich am einfachsten berechnen, da die Spannung und der Strom bekannt sind:

Rc = Vcc/(2*Ic) : Rc = 5 V/0,002 A = 2,5 kΩ
Der Strom Ib muss nun über den Widerstand Rb so eingestellt werden, dass sich ein Kollektorstrom von 1 mA ergibt. Auch hier sind alle Größen nun bekannt: Der Basisstrom ergibt sich nun aus dem Kollektorstrom Ic und dem Stromverstärkungsfaktor des Transistors
Ib = Ic/300 = 1/300 = 0,0033 [mA]
Damit kann nun auch Rb berechnet werden:
Rb = (Uc - Ub)/Ib = 1,8 V/0,000'003'3 A = 1,3 MΩ
Rb sorgt zudem für eine Spannungs-Gegenkopplung, die einen Teil des Ausgangssignals gegensinnig zum Eingang zurückführt, um den Einfluss von Temperatur und Exemplarstreuung zu reduzieren und die Stabilität zu erhöhen. Erhöht sich beispielsweise die Temperatur des Transistors, so fließt ein größerer Strom durch den Kollektor. Daraufhin sinkt aber die Spannung am Kollektor, und mit ihr auch die Spannung an Rb. Folglich sinkt der Basisstrom und somit auch der Kollektorstrom. Auf diese Weise lässt sich der Arbeitspunkt der Schaltung stabilisieren. Gleichzeitig hängt die Gesamtverstärkung nur wenig vom Stromverstärkungsfaktor des Transistors ab, sondern lässt sich durch die Wahl des Widerstandes Rb einstellen. Bei dieser sehr einfachen Schaltung stellt sich (fast) immer ein Arbeitspunkt im linearen Bereich der Kennlinie ein, er liegt aber selten in der Mitte des Aussteuerbereichs. Die Schaltung ist brauchbar für kleine Signalamplituden, wie sie beim Mikrofon vorkommen.

Die berechneten Widerstandswerte sind in der Regel nicht handelsüblich. Daher nimmt man Widerstände der E-Reihe, die dem Wertmöglichst nahe kommen:

Die Koppelkondensatoren C1 und C2 bestimmen die untere Grenzfrequenz. In der Regel empfehlen die Hersteller der Mikrofonkapseln Koppelkondensatoren von 100 nF oder größer. Der Ausgangskondensator ist wegen der Verstärkung größer. Das führt zu der Wahl: Das folgende Bild zeigt eine Erweiterung für Elektret-Mikrofonkapseln. Die Mikrofone haben nur ca. 10 mm Durchmesser und passen meist gleich mit auf die Platine. Hinzugekommen sind R3, R4 und C2 für die Speisung des Mikrofons. Daneben ist das Platinenlayout zu sehen.

Sie können sich den Eagle-Schaltplan und das Eagle-Layout herunterladen. Gegebenenfalls wird der Vorverstärker noch über ein RC-Siebglied von der übrigen Schaltung getrennt. Man kann natürlich auch ein passendes Modul oder einen Bausatz im Elektronikhandel erwerben. Dann spart man sich das Rechnen und auch das Testen der Schaltung. Ganz ausführlich und mit vielen erweiterten Schaltung wird der Vorverstärker auf der Webseite von Prof. Gossner besprochen.

Der folgende Verstärker ist mit einem Operationsverstärker realisiert. Das Electret-Mikrophon erhält über die Widerstände R1 und R2 die zum Betrieb nötige Spannung. Elko C3 entkoppelt diese Spannung, so dass überlagerte Störungen unwirksam bleiben. Über Kondensator C1 gelangt das Mikrofonsignal zum nichtinvertierenden Eingang (Pin 3) des Operationsverstärkers TLC271, ein Low-Power-Typ mit FET-Eingängen. Das verstärkte Signal kann am OPV-Ausgang (Pin 6) abgegriffen werden. Der Gegenkoppelzweig mit R6 und R7 ist so dimensioniert, dass die Verstärkung etwa 500 beträgt. Die Kondensatoren C2 und C6 begrenzen den Frequenzbereich auf ca. 150 Hz bis 18 kHz. Die Betreibsspannung wird über eine Z-Diode auf 8,2 V begrenzt.

Soundadapter im Eigenbau

Die folgende Schaltung stellt eine voll funktionsfähige Soundkarte für PC dar. Wie man am Blockdiagramm sehen kann, sind 5V- und 3,3-Spannungsregler eingebaut, Es gibt eine HID-Schnittstelle (MUTE, VOL +, VOL-), die in der Schaltung nicht beschaltet ist, und einen S/PDIF-Ausgang. Die Schaltung kann direkt vom USB-Port mit Strom versorgt werden. Weiter Vorteil ist, dass der Ausgangs-DAC in der Lage ist, direkt 32-Ohm-Kopfhörer anzusteuern, jedoch ist die Ausgangsleistung nur 12 mW. Alle Details zu dem PCM2902 sind dem Datenblatt zu entnehmen.

Der Schaltplan ist fast 1:1 aus dem Datenblatt kopiert. Das IC PCM2902 benötigt einen 12-MHz-Quarz mit der notwendigen Beschaltung, Anschluss an den USB-Port, etliche Blockkondensatoren für alle intern erzeugten Spannungen, einen Kopfhöhrer-Ausgang und für das Mikrofon einen Vorverstärker. In der vorliegenden Schaltung wird der Eingang mit nur einem Mikrofon (Mono) beschaltet. Wenn Sie den Verstärker mit Mikro duplizieren, können Sie auch Stereo-Aufnahmen machen. Das aufwendige Innenleben des PCM2902 zeigt die folgende Blockschaltung:

Das USB-Mikrofon mit dem PCM2902 wird problemlos von Debian, Raspbian und Windows erkannt. Weitere Treiber sind nicht erforderlich. Die USB-Audio-Geräte melden sich automatisch als "Human Interface Device" (HID) an. Die entsprechenden Treiber sind in den o. g. Betriebssystemen bereits enthalten.

Links

Copyright © Hochschule München, FK 04, Prof. Jürgen Plate
Letzte Aktualisierung: , Webseite: