09.10.2013, 02:40 PM
Hier wäre denn mal ein vorzeigbares bash-script, mit doku:
#! /bin/bash
export AUDIODEV="hw:CODEC,0"
sox --buffer 200 -r 4k -d -t dat - | tee x.dat | feedgnuplot --lines --stream --xlen 1 --domain --ymax 1 --legend 0 "linker Kanal" --title "Behringer U202: input L: Fsine=1030Hz Vsine=3,6Vss Fs=8kHz -> PlotData -> Plot" --y2 2 #--extracmds "set logscale yy2 10"
exit
------- ende des codes
Details
Vorab per Umgebungsvariablen die ext Soundkarte wählen
1.Prozess - Audiodaten aufnehmen von Soundkarte Behringer U202
Signal an line-in, links: Sinus 1kHz, 3,6Vpp
Signal an line-in, rechts: Stille
Sox
--buffer 200 verkürzte Reaktionszeit
-r 4k down sampling von 48KHz auf 4kHz zur CPU-Entlastung
-d Eingabedatei ist das Audio Default Device: sox ist im RealTime-play modus
-t dat konvertiere auf das Plotdateiformat, dh. eine Textdatei formatiert zu 1.Spalte=Zeit(s) 2.Spalte=Signal1 3.Spalte=Signal2
- Ausgabedatei des streams ist STDOUT
2.Prozess Datei speichern
tee i/o Gabelung des streams 1) STDOUT 2) Abspeichern auf Datei
3.Prozess 1x/sec Graphische Ausgabe des streams
feedgnuplot
--lines Punkte mit Linien verbinden
--stream stream plot
--xlen 0.01 x-Breite 0,01sec/Bild
--domain 1.Spalte ist x-Achse = sec
--ymax 1 Skalierung y-Achse max=1,0
--legend 0 Beschriftung y0
--title Überschrift
--y2 2 Y2 = Spalte2 des Datenstromes
System Lenovo X200 DualCore, LinuxMint15/64bit
CPU-Last 2x 45..55% @fs=8kHz xlen=0,01
CPU-Last 2x 70..100% @fs=8kHz xlen=1
CPU-Last 2x 60..85% @fs=4kHz xlen=1
Kritik
Die PlotAusgabe ist derartig resourcenhungrig, dass die Abtastfrequenz auf 4-8khz begrenzt ist.
Abhilfe verspricht ein aufs Notwendigste begrenzter Datenstrom - evtl mit Hilfe von GNU-Octave.
#! /bin/bash
export AUDIODEV="hw:CODEC,0"
sox --buffer 200 -r 4k -d -t dat - | tee x.dat | feedgnuplot --lines --stream --xlen 1 --domain --ymax 1 --legend 0 "linker Kanal" --title "Behringer U202: input L: Fsine=1030Hz Vsine=3,6Vss Fs=8kHz -> PlotData -> Plot" --y2 2 #--extracmds "set logscale yy2 10"
exit
------- ende des codes
Details
Vorab per Umgebungsvariablen die ext Soundkarte wählen
1.Prozess - Audiodaten aufnehmen von Soundkarte Behringer U202
Signal an line-in, links: Sinus 1kHz, 3,6Vpp
Signal an line-in, rechts: Stille
Sox
--buffer 200 verkürzte Reaktionszeit
-r 4k down sampling von 48KHz auf 4kHz zur CPU-Entlastung
-d Eingabedatei ist das Audio Default Device: sox ist im RealTime-play modus
-t dat konvertiere auf das Plotdateiformat, dh. eine Textdatei formatiert zu 1.Spalte=Zeit(s) 2.Spalte=Signal1 3.Spalte=Signal2
- Ausgabedatei des streams ist STDOUT
2.Prozess Datei speichern
tee i/o Gabelung des streams 1) STDOUT 2) Abspeichern auf Datei
3.Prozess 1x/sec Graphische Ausgabe des streams
feedgnuplot
--lines Punkte mit Linien verbinden
--stream stream plot
--xlen 0.01 x-Breite 0,01sec/Bild
--domain 1.Spalte ist x-Achse = sec
--ymax 1 Skalierung y-Achse max=1,0
--legend 0 Beschriftung y0
--title Überschrift
--y2 2 Y2 = Spalte2 des Datenstromes
System Lenovo X200 DualCore, LinuxMint15/64bit
CPU-Last 2x 45..55% @fs=8kHz xlen=0,01
CPU-Last 2x 70..100% @fs=8kHz xlen=1
CPU-Last 2x 60..85% @fs=4kHz xlen=1
Kritik
Die PlotAusgabe ist derartig resourcenhungrig, dass die Abtastfrequenz auf 4-8khz begrenzt ist.
Abhilfe verspricht ein aufs Notwendigste begrenzter Datenstrom - evtl mit Hilfe von GNU-Octave.
...mit der Lizenz zum Löten!