Jetzt brauche ich einen Audio Abspieler, der die Daten im csv-Format
abspielen kann
Viel spaß beim suchen...
um es kurz zu machen: CSV ist kein Audioformat, ergo wird kein Mediaplayer CSV lesen/importieren/interpretieren können. Was ist das auch für eine Schnappsidee.
Schreib dir selber was, mit Python oder so, was dein Problem löst. Mit allem anderen verlierst du nur Zeit.
...
Jetzt brauche ich einen Audio Abspieler, der die Daten im csv-Format
abspielen kann, oder wenigstens direkt Importieren.
Du musst die *.csv Datei in ein rohes Datenformat umwandeln. Ich gehe davon aus daß der Zahlenbereich den Audiobereich nicht verlässt. Ganze Zahlen.
Dann kannst du zB. mit Audacity die Rohdaten abspielen. Musst halt mit der Abspielgeschwindigkeit etwas herumtüfteln.
Suche mal nach einem Onlineprogramm welches CSV Dateien in binäre Rohdaten konvertieren kann. Oder du schreibst dir einen Script der das für dich macht.
Die Daten werden halbautomatisch aus Messungen erzeugt und liegen als
Excel vor.
Dann sollte man sich ein Makro für Excel ausdenken, das eine WAV-Datei erzeugt und nicht einfach nur die Tabelle als CSV speichert.
Das kann nicht sooo schwer sein. Der Aufbau des WAV-Datenformat ist frei zugänglich:
https://de.wikipedia.org/wiki/RIFF_WAVE
Wenn du jetzt noch den Excel-Import mit einbindest, spart er sich den
Umweg über CSV. :-)
Besser: Excel entsorgen und das, was bisher Excel gemacht hat, in Python
implementieren. Dann hat man alles aus einem Guss in einer einzigen
Applikation :)
Man könnte auch Csound einbinden, wenn man unbedingt ein "Audiofile" haben will.
Eine andere Sache ist, VBA und die Windowsfunktionen einzusetzen. Die Windows-Sounddateien selber kann man auch noch mal frisieren (bzw. erweitern) - wobei das Handling dann über die vorbereiteten Samples läuft.
Früher für die 68000er oder für DOS gab es Text to MIDI und umgekehrt, oder verschiedene andere Spielereien in diesem Zusammenhang bis hin zu Kompositionshilfen.
Darüberhinaus bräuchte man noch irgendwo eine Analog zu Digital - Umwandlung bzw. umgekehrt, weswegen die oben angesprochenen Sequenzer / Audioeditoren oder eine passende Hardware nahelegend sind.
Früher konnte man für dies und das auch noch den Windows - Soundrekorder einsetzen. Ein einfaches Programm um Klänge aufzunehmen oder abzuspielen.
Früher war auch noch MIDI direkt eingebunden, heute leider nicht mehr, damit hat man bei den Handys wohl noch etwas mehr Glück.
Du musst die *.csv Datei in ein rohes Datenformat umwandeln. Ich gehe
davon aus daß der Zahlenbereich den Audiobereich nicht verlässt. Ganze
Zahlen.
Das ist natürlich klar und sollte mit Excel auch kein Problem darstellen.
Dann kannst du zB. mit Audacity die Rohdaten abspielen. Musst halt mit
der Abspielgeschwindigkeit etwas herumtüfteln.
Dazu muss man erst händisch importieren.
Kriege ich natürlich hin.
Es wäre aber super, wenn es ein Programm gäbe das die CSV direkt lesen, skalieren (klar) und auf der Soundkarte ausgeben könnte - ohne den manuellen Schritt. Wahrscheinlich muss man da aber selber ran.
Aus der Erinnerung weiß ich nur, das MATLAB direkt mit RS232 kommunizieren kann, wenn man die Matlab-GUI entsprechend erstellt. Das müsste auch mit dem Audio-Treiber gehen, hoffe ich.
[Beleidigung gelöscht, sowas muss nicht sein. - Mod.]
Noch eine Idee.
Audio als ASCII-Text abzuspeichern ist wirklich das dümmste...
Man könnte mit Excel oder Libre Office Calc die csv-Datei einlesen und in ein Intel-Hex oder Motorola S-record umgeformt ausgeben. Das kann jede Eprommer-Software lesen und als Binärfile abspeichern. Die kann dann ein Arduino mit einem DAC als Töne ausgeben.
Oder man setzt mit dem Hexeditor die Präambel eines WAV-Files davor (weiß nicht ob das so geht, ich habe mal so Pixelgrafik in BMP umgeformt).
Man sollte auch bedenken das Soundkarten üblicherweise keine
Gleichspannung ausgeben. Falls das für den TO wichtig sein sollte.
Doch, das tun sie natürlich. Jede Gleichspannung (die hinreichend lange "gleich" ist) wird einfach als 0V ausgegeben. Was ja auch eine Gleichspannung ist...
Solange wir nicht vom TO wissen, wo die Messungen herkommen
und was genau die Daten beinhalten, ist es nur ein Rätselraten.
Die Messungen bzw. Daten könnten ja schließlich auch von einem
Gerät erzeugt worden sein, das sie per RS232 oder USB ausgibt
oder bestenfalls in eine Datei auf einer Micro-SD karte schreibt.
Das einzige, was schon mal feststeht, ist, daß es mindestens 2 Spalten
mit Daten gibt. Sonst gäbe es ja auch keine .csv Datei. Das andere muß
man sehen. Evtl. kann man über RS232 abgreifen, umwandeln wenn nötig,
und als Sound wieder direkt ausgeben.
Mit so wenig Informationen kommen wir halt nicht weiter.
Warten wir mal ab, ob noch was vom TO kommt.
… auch einfach Yalus Python-Script oben nehmen, und die CSVs einfach umwandeln. ;-) Oder, wie er vorgeschlagen hat, auch die davor liegende Wertschöpfungskette :) noch auf Python umstellen und alles in einem Rutsch machen.
Ich glaube kaum, dass der TO Samplingdaten per CSV abslielen will, das wäre wohl ziemlich absurd. Ich vermute, dass in dem CSV Frequenzen und Timings drin stehen ... oder?
Aber das soll er mal bitte selber präzisieren, bis dahin ist die Diskussion ziemlich fruchtlos ...
Wenn man das ganze von Anfang an richtig gemacht hätte, gäbe es kein Problem. Das Problem ist die Überlegung am Anfang. Das ganze lässt sich mit vielen Methoden reparieren. Je nach Anzahl der bereits vergurken csv-Dateien. Irgendwie lässt sich alles lösen.
Mittlerweile denke ich auch, daß die Daten von einem Gerät stammen
und einfach nur Frequenz und Duration paarweise aufgelistet sind.
Solche Geräte werden wohl kein MIDI WAVE oder sonstas kennen bzw.
können.
Da es ja eine Windows-API dafür gibt, gestaltet sich die Ausgabe
doch sehr einfach :
1
Function Ton& Lib "kernel32" Alias "Beep" (ByVal dwFrequenz As Long, ByVal dwDauer As Long)
2
Ton&(440, 360) ' gibt Kammerton A 1 Sekunde lang aus
Wenn man die .csv dann Zeile für Zeile ausliest (Schleife), beide Werte in Zahlen umwandelt (Val) und mit obiger Funktion ausgibt, ist man schon am Ziel. Man muß halt nur schauen, wie Duration definiert ist. Und Pausen dazwischen kann man mit einem Sleep machen.
Das geht mit fast jeder Sprache oder mache es direkt in Excel + VBA.
Es wäre aber super, wenn es ein Programm gäbe das die CSV direkt lesen,
skalieren (klar) und auf der Soundkarte ausgeben könnte - ohne den
manuellen Schritt.
Für mich klingt das anders als "will er aber nicht".
Will er ja auch nicht. Er braucht eigentlich noch ein Zwischending. Also den Teil, den der Audioeditor erledigt, wenn du nur Zahlen hast, und die dann als Wavefile o.ä. haben willst.
Python oder Csound sind schon mit solchen "Schnittstellen" vorbelastet, wo man das händische weglassen kann. Die Windows-API eigentlich nicht.
Würde mich mal interessieren, wie sowas aussieht.
Könntest du mal ein paar Sequenzen hier posten und
evtl kommentieren ?
Nein, sind Firmendaten. Da ist aber auch nichts Großartiges dran:
Wir haben synthetische und realen Messprotokolle. Die einen vom Logger, die anderen aus MATLAB. Die werden auf die Baugruppen losgelassen. MATLAB deshalb, um die Szenarien zu erzeugen, die es real kaum gibt, aber theoretisch auftreten können.
Nein, sind Firmendaten. Da ist aber auch nichts Großartiges dran:
Verstehe ich dann auch, daß man die nicht rausgeben darf.
Ob nun großartig oder nicht : es ist halt was Spezielles.
Da wird sich wohl kaum ein Standardprogramm wo das kann, finden
lassen. Da mußt du oder die Firma halt selber ran.
Vielleicht muß du da eine Art Matrix, die bestimmte Bereiche abdeckt,
basteln und damit umwandeln. Die Windows-API zum Tonerzeugen hatte ich
ja oben bereits erwähnt.
Ich könnte mir da sowas wie ein Voltmeter vorstellen, wo ein Programm
nach Ausgabe, je nach Bereich gewisse Kammertöne erzeugt. z.b.
Nidriger Voltbereich - dumpfe Brummtöne
je höher der Bereich, je höher die Töne