Rohdaten der Tonspur

  • Hallo,


    ich versuche mit Audacity Knackgeräusche beim zerbeißen einer Erdnuss aufzunehemen. Dazu werden die Nüsse mit einem Texture-Analyser "zerschnitten" und die Kraft/Widerstand wird gemessen, parallel dazu wird das Geräusch aufgenommen.


    Am Ende möchte ich die Grafik des Texture-Analysers (Kraft in Abhängigkeit der Zeit/Weg) mit der Tonspur des Geräuschs vergleichen (Amplitude in Abhängigkeit der Zeit). Am besten wäre eben ein Übereinanderlegen, oder zumindest Untereinanderlegen, der beiden Graphen im Xact.


    Mein Problem: ich komme nicht an die Rohdaten (Tabellenform) der Tonspur um sie ins Xact oder Excel zu kopieren und mir die Tonspur so anzeigen zu lassen!


    Kann mir bitte jemand weiterhelfen?!?!


    VG

  • Der Hauptgrund warum es so etwas nicht als eingebaute Funktion gibt ist der, dass die Rohdaten einer Standard-Tonaufnahme mit 44100Hz/Mono aus 44100 Zahlen pro Sekunde bzw. mit 44100Hz/Stereo aus 88200 Zahlen pro Sekunde Aufnahmedauer bestehen. In Excel brauchst du also eine Tabelle, die mindestens 44100 bzw. 88200 Zahlen multipliziert mit der Aufnahmedauer pro Sekunde enthalten kann. Das Rechnen mit so vielen Zahlen ist in Excel (oder jedem anderen Tabellenkalkulationsprogramm) extrem langsam, weil diese Programme für so etwas überhaupt nicht gemacht wurden.


    Es gibt ein Kommandozeilenprogramm mit Namen SoX, mit dem die Rohdaten von unkomprimierten Audiodateien (WAV, AIFF, usw.) in eine Textdatei geschrieben werden können. [Falls das wirklich interessiert bitte nochmal melden. Ich weiss dass es geht weil ich habe es selber schon gemacht, kann mich jetzt aber nicht mehr erinnern wie es genau funktioniert und finde es gerade auch nicht in der SoX Bedienungsanleitung].


    Was vielleicht auch noch wichtig sein könnte: Die genauen Amplitudenwerte sind sehr stark abhängig vom verwendeten Mikrofon. Das bedeutet dass wenn jemand anders später die gleichen Versuche mit einem anderen Mikrofon macht die Daten nicht vergleichbar sind, weil Tonaufnahmen mit Standard-Mikrofonen aus physikalischer Sicht zu unzuverlässig sind.


    Falls du die Amplitudenwerte nur zur Illustration der Versuche in der Dokumentation brauchst wäre es wahrscheinlich einfacher Bildschirmfotos der Audacity Tonspuren zu machen.

  • Fällt mir gerade nochwas ein:


    Steve [the Fiddle] hat im internationalen Audacity Forum mal ein "Sample Printer" Plugin geschrieben, das die Rohdaten direkt aus Audacity heraus in eine Textdatei schreiben kann:


    * Sample Printer - Text ist in englisch.


    Die momentan endgültige Version des "Sample Printer" Plugins befindet sich am Ende der Diskussion auf Seite 3, die genaue Bedienungsanleitung und wie und warum wie wo was funktionert ist auf den Seiten davor beschrieben. MIt diesem Plugin sollte es [laut Steve] möglich sein eine Datei zu schreiben, die direkt mit Excel oder ähnlichen Tabellenkalkulationsprogrammen gelesen werden kann.

  • Hallo edgar-rft,


    Vielen vielen Dank für deine Hilfe.
    Ich werde mir das Plugin auf jeden Fall ansehen und schauem ob ichs verwenden kann. Momentan kann ich sowieso noch nicht sagen ob mir die Akustikmessungen sinnvolle Ergebniss liefern. Die letzten Auswertung der Frequenzanalysen zeigte keine Unterschiede, wo aber welche sein müssten. Vermutlich weiß ich aber noch zu wenig über Akustik im allgemeinen und Audacity im Besonderen.


    Vielen Dank erstmal!


    Lg

  • Ich teste hier geraden das "Sample Printer" Plugin und stelle fest dass ich nur maximal 1000 Samples (= 0.022 Sekunden Aufnahmedauer) als Daten exportieren werden können. Ich weiss allerdings wie die Programmiersprache des Plugins funktioniert und werde versuchen das auf sinnvollere Werte zu ändern.


    Frage1: wie lange (in Sekunden) sind deine Tonaufnahmen, deren Daten als Tabelle exportiert werden sollen?


    Frage2: um die Datenflut zu reduzieren wäre es möglich z.B. nur den Mittelwert von jeweils mehreren Samples als Zahl zu exportieren.


    Audacity zeigt z.B. je nach Vergrösserung der Tonspur immer den Mittelwert von 64, 256, 1024 usw. Samples an. Vielleicht sollte das Plugin für Tabellenkalkulation datenreduzierte Durchschnittswerte speichern? Die Datenreduktion wäre in einem "Sample Printer" Plugin wesentlich schneller und einfacher zu machen als in einem Tabellenkalkulationsprogramm. Nachteil: Datenreduktion kann nachträglich durch Tabellenkalkulation nicht mehr rückgängig gemacht werden. Für eine Grafik-Präsentation ist Datenreduktion OK, für eine wissenschaftliche Auswertung sind datenreduzierte Werte meist nicht mehr brauchbar, aber du hättest ja immer noch alle (unreduzierten) Daten in den Tonaufnahmen selbst.


    Irgendwelche Ideen?

  • Hallo,


    zu Frage 1:
    Also die Werte der Tonspur die in benötige sind genau 4 sekunden lang. Der Texture-Analyser beginnt mit der Datenaufnahme beim ersten Wiederstand und hat eine Testgeschwindigkeit von 1 mm/s und soll 4 mm lang schneiden --> ergo 4 Sekunden Datenaufnahme von denen ich die Tonspur brauche. Das könnte man aber ggf. noch ändern/erhöhen womit sich die Dauer der Tonaufnahme reduzieren lassen könnte.


    zu Frage 2:
    die versteh ich leider nicht ganz... mit "jeweils mehreren samples" meinst du ja nicht mehrere Aufnahme oder?
    Wenn ich das richtig versteh, meinst du das die 44100 Daten pro Sekunde einer Tonaufnahme quasi zusammengefasst werden und meinetwegen immer 4 Daten als ein punkt ausgegeben werden.. sprich "nur noch" 11025 Daten pro Sekunde.


    Das ginge prinzipiell, da der Texture-Analyser "auch nur" im 0,005 Sekundentakt Daten aufnimmt. Das wären dann gerade mal 200 Daten pro sekunde. wenn ich genau diese 200 Daten der Tonaufnahme hätten, würde das möglicherweise für eine Vergleich schon reichen. (Bessere wäre schon 400 bis 800 Daten)


    Ich kann sehr schwer abschätzen wie sehr das meine ursprüngliche Tonspur verändert.

  • Zitat

    ...die Werte der Tonspur die in benötige sind genau 4 sekunden lang...


    Das passt locker in den Speicher jeden Rechners, da brauche ich mir keine Sorgen zu machen. Das heisst auf deutsch: das ist mit einem Audacity Plugin machbar.


    Zitat

    dass die 44100 Daten pro Sekunde ... immer 4 Daten als ein punkt ausgegeben werden ... sprich "nur noch" 11025 Daten pro Sekunde


    Ja, genau das meinte ich. "44100Hz" bedeutet nichts anderes als dass von der Soundkarte 44100 Zahlen [= Samples] pro Sekunde aufgenommen werden. Wenn aus z.B. jeweils 220.5 Zahlen [Samples] der Mittelwert ausgegeben wird dann würde das genau den 200 Daten/Sekunde des Texture-Analysers entsprechen.


    Bei nur 4 Sekunden Aufnahmedauer wäre es aber auch kein wirkliches Problem bis zu 44100 Daten/Sekunde auszugeben, bei 4 Sekunden wären das 44100*4=176400 Zahlen. Ich weiss aber nicht ob das Tabellenkalkulationsprogramm so grosse Datenmengen verarbeiten kann. Im Zweifelsfall kann aber eine Einstellmöglichkeit für Daten/Sekunde in das Plugin eingebaut werden.


    Noch eine Frage: das "Xact" Programm, ist das dieses hier: http://www.scilab.de/produkte.html? (ich frage weil ich kein Windows Betriebssystem zum Ausprobieren habe)


    Oder anders gefragt: mit welchem Programm möchtest du die Daten hinterher weiterverarbeiten? Dann könnte ich schonmal raussuchen in welchem Dateiformat die Zahlen gespeichert werden müssen.

  • Das hört sich ja klasse an!


    Ja ich werde mit Xact auswerten, das ist der richtige Link.
    Ich vermute aber das Xact mit 176400 Daten ein ganz klein wenig Schwierigkeiten haben könnte. Deshalb wäre so eine Einstellmöglichekeit nicht ganz verkehrt.


    Welche Daten sind denn das im Endeffekt von der Tonspur? Doch die Amplitude über der Zeit oder? Und die Amplitude bezieht sich auf das verwendete Mikrofon sowie auf meine Soundkarte. Wenn ich diese Kennwerte hätte müsste ich doch in dB umrechnen können, was ich dann mit anderen akustischen Messungen von Chips oder so etwas vergleichen könnte, oder?


    Ist das prinzipiell richtig?

  • Zitat

    Welche Daten sind denn das im Endeffekt von der Tonspur? Doch die Amplitude über der Zeit oder?


    Ja, 44100 Amplitudenwerte pro Sekunde, also jede 1/44100-stel Sekunde ein Amplitudenwert.


    Zitat

    Und die Amplitude bezieht sich auf das verwendete Mikrofon sowie auf meine Soundkarte.


    Ja, beides hat einen Einfluss auf die Aufnahme, wobei die grösseren "Messfehler" meist durch das Mikrofon verursacht werden.


    Eine Mikrofonaufnahme funktioniert ungefähr folgendermassen:


    Die mechanische Bewegung beim Zerbrechen der Erdnuss verursacht Luftdruckschwankungen, die sich als "Luftdruck-Wellen" kugelförmig um die Erdnuss ausbreiten, so wie wenn du einen Stein ins Wasser wirfst. Wenn eine dieser Wellen auf die Mikrofonmembran trifft, dann wird durch die Luftdruckschwankung die Mikrofonmembran bewegt. Auf der Mikrofonmembran ist dann ein Messwertaufnehmer angebracht, der die Bewegung der Membran in eine elektrische Spannung umwandelt. Die elektrische Spannung wird in der Soundkarte in 44100 Amplitudenwerte pro Sekunde umgewandelt.


    So weit zur Theorie, jetzt beginnen die Probleme:


    Das dumme an den Luftdruckwellen ist, dass sie genauso wie Wasserwellen von Hindernissen zurückgeworfen oder abgelenkt werden. Das gilt nicht nur für die Wände des Raums, in dem du aufnimmst, sondern selbst wenn du mit dem Mikrofon ganz nah an die Erdnuss heran gehst gibt es das Problem dass um die Mikrofonmembran herum ein Gehäuse ist, das die Luftdruckschwankungen verändert bis sie zur Membran gelangen. Die Mikrofonmembran nimmt also niemals exakt die gleichen Luftdruckschwankungen auf, wie sie von der Erdnuss verursacht werden, sondern immer ein durch das Mikrofongehäuse verfälschtes Signal. Dieses Problem hat jedes Mikrofon, egal wie teuer.


    Ausserdem hat jede Mikrofonmembran, ähnlich wie ein Trommelfell von einem Musikinstrument, ein akustisches Eigenleben (Resonanzfrequenzen und andere Geschichten), was zur Folge hat dass nicht alle Frequenzen gleich laut aufgenommen werden. Je kleiner die Mikrofonmembran ist, desto geringer ist dieses Problem. Das dumme ist dass je kleiner die Mirofonmembran, desto teurer das Mikrofon.


    Das Hauptkunststück beim Mikrofonbau besteht darin, das Gehäuse um die Mikrofonmembran so hinzubekommen, dasss die Klangveränderungen, die das Gehäuse verursacht, die Klangveränderungen, die die Membran verursacht, möglichst ausgleichen. Das ist aber so gut wie nie wirklich zu 100% möglich. Nach über hundert Jahren Mikrofonbau gibt es deshalb immer noch kein Mikrofon, das wirklich 100% funktioniert, egal wie teuer.


    Aus alle diesen Gründen muss eine Vergleichsmessung immer mit genau dem selben Mikrofon und möglichst in genau der gleichen Entfernung zum Messobjekt gemacht werden, weil sonst sind die Daten nicht vergleichbar.


    Zitat

    Wenn ich diese Kennwerte hätte müsste ich doch in dB umrechnen können


    Ich hoffe du weisst dass "dB" ein Vergleichmass ist. Also immer "soundso viel dB mehr oder weniger als irgendwas anderes", es muss aber immer bekannt sein was "irgendwas anderes" ist weil sonst sagt ein dB-Wert überhaupt garnichts aus. Im Prinzip ist eine Umrechnung des Amplitudenwerts in einen dB-Wert eine Lachnummer (= sehr leicht), es muss aber bekannt sein auf was sich "dB" bezieht (das ist meist schwieriger).


    In Audacity bezieht sich "dB" z.B. entweder auf die Vollaussteuerung der Soundkarte (in der Audacity Aussteuerungsanzeige gibt es deshalb z.B. nur negative dB-Werte) oder auf den aktuellen Amplitudenwert der Tonspur (z.B. der Lautstärkeregler links vorne in der Tonspur, positive dB-Werte = "soundso viel dB lauter als vorher", negative dB-Werte = "soundso viel dB leiser als vorher", der Referenzwert ist "vorher" = aktueller Amplitudenwert).


    Frage: Ich versuche gerade herauszufinden welche Dateiformate Xact lesen kann, weiss du da vielleicht mehr dazu?


    P.S.: Laut http://www.scilab.de/ct_test.html kann Xact zumindest ASCII, CSV und DIF lesen, das müsste mit einem Audacity Plugin machbar sein, oder wie überträgst du z.B. die Daten vom Texture-Analyser nach Xact?


    P.P.S.: Du hattest ganz oben mal geschrieben dass du Frequenzanalysen durchführen möchtest. Machst du das in Xact oder einem anderen Programm oder in Audacity? Die 44100 Amplitudenwerte sind nämlich nur die reinen "Lautstärke" Werte, aus denen sich aber mit Audacity oder mit einem anderen externen Programm eine Frequenzanalyse berechnen lässt. Es gibt aber auch die Möglichkeit die bereits fertig berechnete Frequenzbänder als Daten mit einem Audacity Plugin auszugeben. Das wäre allerdings dann mehr als nur fünf Minuten Arbeit. Hast du schon eine genauere Vostellung wie du das machen möchtest?


    P.P.P.S.: :) Ich muss jetzt weg und bin wahrscheinlich erst heute abend wieder da.

  • Also ich nehme die Daten ins Xact immer via copy and paste... Sprich ASCII format mit Editor öffnen, würde völlig reichen.


    Das sich der Pegel immer auf irgendwas bezieht, weiß ich. Mir war eben nur nicht ganz klar auf was. Prinzipiell soll meine Arbeit später auch nicht mit anderen verglichen werden die ähnliche Messungen machen (das funktioniert ja ohnehin nicht). Wenn ich aber immer mit dem gleichen Mikrofon (gleicher Abstand zum Objekt), mit meinem PC (gleiche Soundkarte) und Audacity arbeite, kann ich doch zumindest Produkt A mit Produkt B vergleichen. Und das will ich im Endeffekt.


    Danke für die Erklärung der Mikrofonaufnahme, so steht zumindest fest das ich nicht Unsummen in ein anständiges Mikrofon investieren muss. Momentan arbeite ich mit einem stinknormalen Headsetmikrofon, womit ich zumindest erstmal etwas aufnehmen kann. Ein etwas besseres Richtmikrofon soll aber angeschafft werden.


    Zur Auswertung der ganzen Geschichte:


    Das ist mir im Moment noch nicht ganz klar. Es ist so, das einige andere Forschergruppe einen Texture-Analyser mit integriertem Akustikmesssystem verwendet haben. Also alles was ich jetzt versuche zusammenzubasteln, geht dort in einem Programm ohne aufwendiges umrechnen, auswerten oder zusammenschneiden von Tonaufnahmen. Dort werden eben direkt Kraft und Pegel über der Zeit oder dem Weg dargestellt. Dann werden vorzugsweise hinsichtlich der Akustik die Pegel Maxima ausgewertet oder die Anzahl der Peaks. (Gerät nennt sich AED Acoustic Envelope Detector mit der Software Texture Exponent 32, Firma: stable micro systems)


    Wenn ich an die Rohdaten kommen könnte, kann ich das auch machen: das ist das erste Ziel.


    Warum nicht so ein integriertes Gerät angeschaffen? - Kosten im 5 stelligen Bereich.


    Wenn so ein kombiniertes System verwendet wurde, wurde dann anscheinend keine Frequenzanalyse mittels FFT gemacht.
    Andere Studien, die dieses System auch nicht hatten, machen dann eine FFT. Wie genau sie das machen schreiben sie leider nicht alle.


    So und jetzt hörts auf... Ich weiß prinzipiell was die Frequenzanalyse ist und wie mathematisch eine FFT funktioniert. Ich hab das so verstanden das die Tonspur (amplitude-time plot) zerlegt wird in ihre sinusförmigen Bestandteile und sozusagen die "Hauptfrequenzen zerlegt werden" so das ich dann den Pegel einer bestimmten Frequenz auslesen kann.


    Dann heißt es beispielsweise, das besonders knusprige Produkte bei 12 kHz hohe Pegel aufweisen. Dann schau ich mir also die Frequenzanalysen der Probe A,B und C an und sehe im Bereich von 8 bis 12 kHz hat Probe A einen höheren Pegel als Probe B und C, also ist Probe A knuspriger...?!?!


    So hatte ich mir das zumindest vorgestellt, aber mittlerweile bin ich mir nicht mehr sicher ob ich da nicht was falsch verstanden habe. Zum Beispiel wüsste ich gern ob die Dauer der Tonaufnahme, Einfluss auf die Frequenzanalyse hat, was irgendwie unsinnig wäre.
    Und wenn ich im Audacity mehere Tonspuren im selben Projektfenster geöffnet habe, macht er mir die Frequenzanalyse doch über alle Tonspuren, sozusagen als Mittelwert, oder?


    Meine Frequenzanalysen habe ich direkt im Audacity machen lassen, davon die Daten exportiert und mir die ganze Sache im Xact genauer angesehen. So und jetzt: ich höre ganz deutliche Unterschiede aber im Graphen sehe ich keine, bzw. andere. Ich weiß zum Beispiel das Probe A definitiv knackiger und knuspriger ist als Probe B, aber der Graph sagt mir genau das Gegenteil.

  • Bevor ich jetzt wieder lange Vorträge schreibe (ich habe mir bereits die Geräte von Stable Microsystems angeschaut) probier mal folgendes:


    * [1] Lade eine deiner Mikrofonaufnahmen in Audacity rein


    * [2] Öffne das Spurausklappmenü und stelle die Anzeige der Tonspur auf "Spektrum" um.


    Was du dann siehst ist eine FFT-Analyse der gesamten Tonspur. Am oberen Rand befinden sich die hohen Töne [= hohe Frequenzen, 12kHz usw.], am unteren Rand befinden sich die tiefen Frequenzen.


    * [3] In Audacity unter "Bearbeiten > Einstellungen > Spektrogramme" kannst du die Eigenschaften der "Spektrum" Anzeige der Tonspur einstellen.


    Als "Obere Grenzfrequenz" ist dort meist "8000Hz" eingestellt, das ist für eine 12kHz Analyse natürlich zu niedrig. Bei eine Samplefrequenz der Tonspur von 44100Hz macht für die "Obere Grenzfrequenz" allerdings nur Werte bis 44100/2=22050Hz oder weniger einen Sinn.


    Das führt bereits zum nächsten Problem:


    Um Frequenzen von 12kHz einigermassen vernünftig analysieren zu können brauchst du eine Soundkarte die mindestens mit 12000*20=240000Hz Samplefrequenz aufnehmen kann. Die Samplefrequenz einer Standard Soundkarte von 44100Hz ist für so etwas viel zu niedrig, weil z.B. ein 12kHz Sinus nur noch mit 44100/12000=3.675 Zahlen [Samples] dargestellt werden kann und eine Kurve mit nur 3 oder 4 Punkten hat mit einem Sinus nicht mehr viel zu tun, die Kurve ähnelt mehr einem Trapez oder Rechteck (oder irgendwas dazwischen). Mit 240000kHz Samplefrequenz würde jede Halbwelle eines Sinus immer noch mit 10 Zahlen [Punkten] dargestellt, was einem Sinus viel näher kommt als ein Rechteck. Oder anders gesagt, zu niedrige Samplefrequenzen bei der Mirofonaufnahme verursachen massive Rechenfehler bei der Analyse.


    Es gibt Soundkarten die mit 192kHz bzw. mit 384kHz Samplefrequenz aufnehmen können, die kosten aber auch alle mindestens mehrere hundert Euro.


    Also ich will dich nicht entmutigen, aber die Probleme mit denen du hier zu kämpfen hast sind nicht gering. Es wurde allerdings schon oft nach einem Plugin gefragt, das Messdaten von Tonspuren in einer Textdatei speichern kann und ich bin in jedem Fall bereit da noch mehr Arbeit reinzuhängen. Allerdings werden wir an Brüel&Kjaer (Hersteller der von Stable Microsystems verwendeten Audio Messgeräte) wahrscheinlich nicht rankommen. Es gibt einen Grund (bzw. sogar viele Gründe) warum diese Messgeräte so teuer sind. Ein Grund ist allerdings dass diese Preise zu ungefähr 90% aus reinen Arbeitszeit Kosten bestehen, so dass durch "selber machen" tatsächlich viel Geld gespart werden kann. Allerdings werden wir mit Standard Mikrofonen und Standard Soundkarten die Qualität von Brüel&Kjaer Messgeräten (das ist so ungefähr das beste was du für Geld bekommen kannst) nicht erreichen können.


    Ich werde nachher versuchen ein Plugin zu schreiben, das die Tondaten in einer ASCII Datei speichert, kann aber noch ein paar Stunden dauern. Probier mal ob du mit der "Spektrum" Anzeige der Tonspuren weiterkommst.

  • Aus einer Pressemitteilung "Sound Advice from Stable Micro Systems" über den "Acoustic Envelope Detector":


    Zitat

    ... acoustic data can be acquired at very high speeds of up to 500pps (data points per second) ...


    Das bedeutet dass die Frequenzanalysedaten mit bis zu 500 Daten pro Sekunde berechnet werden. Das entspricht einer unteren Grenzfrequenz (tiefste Frequenz der verwendeten Mikrofon Aufnahmedaten) von 500 Hertz.


    Wofür ich immer noch keine richtige Lösung weiss ist wie eine vernünftige Analyse von Daten oberhalb von 2kHz hinzubekommen wäre. Mit einer Standard Soundkarte und 44.1kHz Samplefrequenz läge der brauchbare Bereich der Mikrofon Aufnahmedaten bei 500 Hertz bis etwa 44100/20=2205 Hertz, was nicht gerade besonders viel ist.


    Ich habe aber immer noch nicht aufgegeben ... :)

  • Das "Rohdaten exportieren" Plugin schreibt die Rohdaten einer Mono-Tonspur mit 44100 Zahlen pro Sekunde Aufnahmedauer in eine "rohdaten.txt" ASCII Datei. Von dort aus kannst du die Daten entweder mit einem Texteditor öffnen und per Copy&Paste nach Xact kopieren oder mal versuchen, ob Xact die Daten vielleich auch über irgendeine "Import" Funktion von alleine lesen kann.


    Wichtig: das "Rohdaten exportieren" Plugin funktioniert nur mit Audaciy_1.3.x-beta, aber nicht mit der älteren Audacity_1.2.x Version.


    Die "raw-data-export.ny" Datei von hier unten in den Audacity "plug-ins" Ordner kopieren (ein Unter-Ordner von dem Ordner in dem die "audacity.exe" Datei installiert ist, unter Windows meist "C:\Programme\Audacity\plug-ins" oder ähnlich). Im "plug-ins" Ordner müssten sich auch schon andere ".ny"-Dateien befinden. Nach dem nächsten Start von Audacity müsste sich im "Analyse" Menü ein neuer Eintrag "Rohdaten exportieren" befinden.


    Den Bereich der Tonspur, dessen Rohdaten gespeichert werden sollen, mit der Maus markieren und dann im "Analyse" Menü auf "Rohdaten exportieren" gehen. Es erscheint ein Fenster, wo du einen anderen Dateinamen als "rohdaten.txt" (Voreinstellung) angeben kannst, danach auf OK klicken. Die Datei wird im "HOME" oder "UserProfile" Ordner (unter Windows ist das meist "C:\Benutzer und Einstellungen\..." oder ähnlich) gespeichert, der genaue Speicherort der Datei wird auch noch einmal in einem Audacity Fester angezeigt, nachdem die Datei geschrieben wurde. Die "rohdaten.txt" Datei kann mit jedem Texteditor geöffnet und gelesen werden.


    Die Rohdaten sind Fliesskomma-Zahlen zischen -1.0 (maximale negative Aussteuerung der Soundkarte) bis +1.0 (maximale positive Aussteuerung der Soundkarte), ein Wert von 0 entspricht "Stille".


    Probier mal bitte aus ob das bei dir funktioniert weil ich habe kein Windows um das ausprobieren zu können. Wenn alles soweit funktioniert werde ich versuchen einen Regler für "Daten pro Sekunde" einzubauen.


    Falls nichts funktioniert und irgend eine Fehlermeldung erscheint, mit der du nichts anfangen kannst, bitte im "Rohdaten exportieren" Plugin Fenster auf "Debug" statt auf "OK" klicken, es erscheint dann ein weiteres Fenster mit sehr viel komischem Text (die genauen Nyquist/XLISP Fehlermeldungen zusammen mit dem Programmcode, der den Fehler verursacht hat). Den Text, der dort erscheint, dann bitte hier ins Forum kopieren.

  • Stunden später...


    Die neue Version von hier unten kann die Rohdaten von Mono- und Stereotonspuren exportieren und hat einen Einstellregler für "Daten pro Sekunde". Die Installation funktioniert genauso wie oben bereits beschrieben.


    * Dateiname - hier kannst du einen anderen Dateinamen angeben für die Datei in die die Daten geschrieben werden sollen.


    * Stereo-Tonspur - hier kannst du einstellen ob von einer Stereotonspur beide Kanäle getrennt, oder nur der rechte oder nur der linke Kanal als Rohdaten exportiert werden sollen oder ob die Stereotonspur zuerst zu einer Monotonspur zusammengemischt und dann die Mono-Rohdaten exportiert werden sollen. Bei einer Monotonspur ist es egal was hier eingestellt ist, bei Monotonspuren wird diese Einstellung ignoriert.


    * Daten Pro Sekunde - hier kannst du einstellen wieviel Daten pro Sekunde Laufzeit der Tonspur exportiert werden sollen. Die Tonspur wird dann in "Blöcke" der jeweiligen Länge geteilt und der Mittelwert aller Zahlen jeweils eines "Blocks" wird exportiert. Wenn der Einstellbereich nicht ausreicht oder der Regler zu ungenau ist dann kannst du die Zahl auch mit der Tastatur in das Textfeld neben dem Regler reinschreiben.


    Die Daten werden jetzt im CSV Format geschrieben. Das ist im Prinzip genau das gleich wie das ASCII Format, nur wenn bei Stereotonspuren beide Kanäle exportiert werden dann wird eine Textzeile mit zwei Zahlen, getrennt durch ein Komma, in der Datei gespeichert: "ZahlLinkerKanal,ZahlRechterKanal" (CSV = comma separated values). Du kannst nach wie vor die CSV-Datei mit jedem Texteditor öffnen und die Daten über Cut&Paste kopieren falls Xact die CSV-Datei nicht lesen kann.


    Die nächste Nummer wäre dann herauszufinden wie eine komplette Frequenzanalyse von einer Tonspur als CSV-Datei exportiert werden kann.

  • Hallo!


    Sorry ich hatte seit gestern abend keine Möglichkeit mehr das alles zu verfolgen.
    Ich schaus mir gleich an und hoffe das es funktioniert!


    Danke erstmal!!!!


    Zu den anderen Dingen später.... :(

  • error: unbound function - GET-ENV
    if continued: try evaluating symbol again
    Function: #<FSubr-OR: #87a5a28>
    Arguments:
    (GET-ENV "HOME")
    (GET-ENV "UserProfile")
    Function: #<FSubr-LET*: #87a3ac8>
    Arguments:
    ((FILE-NAME (FORMAT NIL "~a~a~a" (OR (GET-ENV "HOME") (GET-ENV "UserProfile")) *FILE-SEPARATOR* FILE-NAME)) (FILE-STREAM NIL) (STEP-SIZE (/ *SOUND-SRATE* DATA-RATE)) (LAST-SAMPLE (ROUND LEN)) (BOTH-CHANNELS-P (AND (ARRAYP S) (= MODE 0))) (MESSAGE "Error - Data file not written.~%"))
    (FORMAT T "Filename: ~s~%" FILE-NAME)
    (UNWIND-PROTECT (PROGN (SETQ FILE-STREAM (OPEN FILE-NAME :DIRECTION :OUTPUT)) (SETQ MESSAGE (FORMAT NIL "Error - Invalid data file:~%~a" FILE-NAME)) (WHEN FILE-STREAM (DO* ((CHAN1 0 0) (CHAN2 0 0) (STEP 1 (1+ STEP)) (START 0 END) (END (ROUND STEP-SIZE) (MIN LAST-SAMPLE (ROUND (* STEP-SIZE STEP))))) ((>= START LAST-SAMPLE)) (LET ((SAMPLES (- END START))) (IF (ARRAYP SND) (CASE MODE (0 (SETQ CHAN1 (AVERAGE (AREF SND 0) SAMPLES) CHAN2 (AVERAGE (AREF SND 1) SAMPLES))) (1 (SETQ CHAN1 (AVERAGE (AREF SND 0) SAMPLES))) (2 (SETQ CHAN1 (AVERAGE (AREF SND 1) SAMPLES))) (3 (SETQ CHAN1 (AVERAGE (SCALE 0.5 (SUM (AREF SND 0) (AREF SND 1))) SAMPLES)))) (SETQ CHAN1 (AVERAGE SND SAMPLES)))) (IF BOTH-CHANNELS-P (FORMAT FILE-STREAM "~a,~a~%" CHAN1 CHAN2) (FORMAT FILE-STREAM "~a~%" CHAN1))) (SETQ MESSAGE (FORMAT NIL "Raw data written to file:~%~a" FILE-NAME)))) (WHEN FILE-STREAM (CLOSE FILE-STREAM)))
    Function: #<Closure-WRITE-DATA-FILE: #879eda8>
    Arguments:
    "rohdaten.txt"
    #<Sound: #7890328>
    200
    0
    1>

  • Mal noch eine andere Frage:


    Beispielsweise wurde in einer Publikation wieder mit dem AED-System gemessen und mit dem tollen Mikrofon von Bruel&Kjaerl aufgenommen. Und dann wird beschrieben: " The gain of the AED was set at 1" Was ist "gain" Hab das im Audacity auch schon mal irgendwo gesehen...


    Außerdem wurde dann wohl eine Art Kalibrierung vorgenommen mit: "acoustic calibrator type 4231 (94 and 114 dB sound pressure level [SPL], 1000 Hz)" Was bedeutet das? Das die Amplitude -1 = 94 dB und +1 = 114 dB war???

  • Zitat

    Sorry ich hatte seit gestern abend keine Möglichkeit mehr das alles zu verfolgen.


    Das macht nichts, wenn das Plugin mal irgendwann funktioniert wird es ja wahrscheinlich auch noch mal eine Weile dauern bis alle Messdaten so hingefummelt sind dass man wirklich was damit anfangen kann. Ich habe es nicht eilig, mir war ganz einfach langweilig. :)


    Zitat

    Fehler: Nyquist gab keine Audiodaten zurück ... error: unbound function - GET-ENV


    Die Audacity Version, mit der du arbeitest, ist zu alt. Die Plugins funktionieren nur mit Audacity_1.3.x-beta. Die Audacity Versionsnummer steht in Audacity unter "Hilfe > Über Audacity". Welche Versionsummer steht dort? Versuche im Zweifelsfall ob es mit Audacity_1.3.13-beta funktioniert. GET-ENV wurde erst in Audacity_1.3.10 oder 1.3.1.1 eingebaut. Audacity_1.2.x ist über fünf Jahre alt.


    Zitat

    The gain of the AED was set at 1 ... Was ist "gain"?


    Gain = Verstärkung. "The gain of the AED was set at 1" bedeutet dass nichts verstärkt wurde oder dass nichts lauter oder leiser gemacht wurde.


    Im Prinzip funktioniert "gain" [Verstärkung] mit linearen Zahlen [keine "dB"] ganz einfach:


    [m]amplitude_vorher * gain = amplitude_nachher[/m]


    * Wenn "gain" grösser als 1 ist dann ist es eine Verstärkung (wird lauter)
    * Wenn "gain" gleich 1 ist dann verändert sich gar nichts
    * Wenn "gain" zwischen 0 und 1 ist dann ist es eine Abschwächung (wird leiser)
    * Wenn "gain" gleich 0 ist dann ist hinterher kein Signal mehr vorhanden
    * Wenn "gain" negativ ist dann dreht sich gleichzeitig die Phase um 180 Grad (wie in Audacity mit "Effekt > Invertieren")


    "gain" heisst oft auch "amplification", beides ist das gleiche.


    Zitat

    "acoustic calibrator type 4231 (94 and 114 dB sound pressure level [SPL], 1000 Hz)"


    SPL [Sound Pressure Level] = Schalldruckpegel, das ist im Prinzip die normierte Schalldruchschwankung einer Luftdruckwelle.


    Ich habe wenn ich ehrlich sein soll gerade keine wirklich gute Idee wie mit einem Headsetmikrofon der absolute Schalldruckpegel gemessen werden kann, weil meiner Erfahrung nach ist eine Frequenzanalyse (die relative Anderung der verschiedenen Frequenzbereiche im Verlauf der Zeit, üblicherweise eine FFT-Analyse) wesentlich wichtiger, weil sich das menschliche Gehirn absolute Lautstärken [SPL] sowieso nur für ungefähr eine halbe Sekunde merken kann. Die Lautstärkewahrnehmung im Gehirn ist ein Vorher/Nachher Vergleich mit den akustischen Ereignissen, die in den letzten paar Sekunden stattgefunden haben.


    Ich bin Elektriker (RFT = Rundfunk/Fernsehtechniker) und SPL ist eine typische Masseinheit für Akustiker. Ich selber brauche Einheiten wie SPL eigentlich nur wenn ausgerechnet werden muss ob der Schalldruckpegel einer Lautsperecherbox ausreicht, damit das Publikum in der hintersten Reihe noch was hört. Ich selber habe also keine wirklich grosse Erfahrung was das Rechnen mit SPL angeht. Ich weiss aber im Zweifelsfall aber noch Akustiker, die ich fragen kann.


    Das einzige, was ich mir vorstellen kann, für was die absolute Lautstärke [SPL] einer zerbrechenden Erdnuss vielleicht wichtig sein könnte, ist damit ausgerechnet werden kann welches Mikrofon zum Aufnehmen zerbrechender Erdnüsse verwendet werden sollte (nicht lachen, wer schon einmel einen Werbefilm gedreht hat weiss dass so etwas wichtig sein kann).


    Eine riesige Fundgrube zu akustischen Fragen ist zum Beispiel http://www.sengpielaudio.com/

  • Guten Morgen...


    Also meine Version war 1.3.12... jetzt mit der 1.3.13 funktionierts.
    Die csv. Datei wird geschrieben, ich öffne im Excel, trenne die Daten in zwei Spalten auf (linker Kanal, rechter Kanal)
    Dann trage ich die Zeit dazu ein, wenn ich 200 Daten eingegeben habe von 0,005 s angefangen und runter ziehen bis der Datensatz zu ende ist.


    Soweit super.


    Was mich jetzt wundert ist, warum ich stellenweise Daten drin habe von 6,628250 oder sowas. So das dann natürlich meine Y-Achse im Xact von -10 bis 10 geht. Das ist irgendwie ein Datenübertragungsfehler oder? Eigentlich dürften meine Daten 1 nicht überschreiten und -1 nicht unterschreiten. Zumal im linken Kanal 6,628... steht und im rechten 0,06728...