Hallo liebe Gemeinde.
Es geht um die Ausgabe von 8 Bit-Werten (von einem ADC) direkt auf die Soundkarte.
Folgender Aufbau:
Ich bekomme von einem Analog/Digital Wandler 8 Bit Werte (Sprache wird über Mikrofon abgetastet). Diese Werte lese ich mittels C++ ein und möchte sie gern direkt auf die Soundkarte (Klinke-Buchse) ausgeben. Ich habe gegooglet und ein Script gefunden, welches das Thema super beschreibt, doch leider geht es nicht.
Hier ein Auszug aus dem Script:
Code
fd = open("/dev/dsp", O_WRONLY); // Soundcard oeffnen
exit_if(fd < 0);
// Anzahl und Groesse der Audio-Buffers im Soundcard Treiber setzen
i = AUDIOBUFS << 16 | BUFSIZELD;
rv = ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &i);
exit_if(rv < 0);
i = AUDIOFORMAT; // Audio Codec (Format) setzen
rv = ioctl(fd, SNDCTL_DSP_SETFMT, &i);
exit_if(rv < 0);
i = AUDIOCHANNELS; // Mono oder Stereo setzen
rv = ioctl(fd, SNDCTL_DSP_CHANNELS, &i);
exit_if(rv < 0);
i = AUDIOSPEED; // Abtastfrequenz setzen
rv = ioctl(fd, SNDCTL_DSP_SPEED, &i);
exit_if(rv < 0);
while(1) // Endlosschleife
{
buffer = get.AbtastWert.ADC; // Nicht der originale Syntax, nur vereinfacht...
len = 8;
rv = write(fd, buffer, len);
exit_if(rv != len);
}
Alles anzeigen
Mir geht es nicht so sehr um die Richtigkeit des Codes, sondern, er bemängelt, dass es die Datei ("/dev/dsp") nicht gibt.
Kann mir jemand sagen, wie ich diese Soundausgabe beim Pi hinbekomme?
Vielen Dank!