Ich möchte eine Baugruppe mit analogen Signalen versorgen, die per PC abgespielt werden und dazu einfach die Soundkarte benutzen. Die Daten werden halbautomatisch aus Messungen erzeugt und liegen als Excel vor. Jetzt brauche ich einen Audio Abspieler, der die Daten im csv-Format abspielen kann, oder wenigstens direkt Importieren.
Simon R. schrieb: > 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.
Simon R. schrieb: >... > 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.
:
Bearbeitet durch User
"Sample Data Import" von Audacity geht in die Richtung: "Sample Data Import reads numeric values from a plain ASCII text file and creates a PCM sample for each numeric value read." https://manual.audacityteam.org/man/sample_data_import.html
Simon R. schrieb: > Jetzt brauche ich einen Audio Abspieler, der die Daten im csv-Format > abspielen kann, oder wenigstens direkt Importieren. Wenn deine CSV ein WAV implementiert, wäre jedes Audioprogramm dazu in der Lage. Kann es sein, dass der gewählte Weg etwas ungünstig ist? Simon R. schrieb: > 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
Kaj G. schrieb: > Schreib dir selber was, mit Python oder so, was dein Problem löst Gerade getan (s. Anhang) :) Die CSV-Datei terz.csv enthält für jeden der beiden Stereokanäle einen Sinuston im Abstand von einer Terz. Abgespielt wird die Datei mit
1 | python3 playcsv.py terz.csv |
Neben Python muss noch PyAudio installiert sein.
Yalu X. schrieb: > Gerade getan (s. Anhang) :) Wenn du jetzt noch den Excel-Import mit einbindest, spart er sich den Umweg über CSV. :-)
Jörg W. schrieb: > Yalu X. schrieb: >> Gerade getan (s. Anhang) :) > > 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 :)
is schon klar nä, für Flötentöne brauchst du ein *.flt-File. TT
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.
Schau dir mal das Programtool „Processing“ an. Da geht das mit Hausmitteln. Csv einlesen, parsen und als audiostream ausgeben
Micha I. schrieb: > 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.]
:
Bearbeitet durch Moderator
Simon R. schrieb: > Die Daten werden halbautomatisch aus Messungen erzeugt und liegen als > Excel vor. Würde mich mal interessieren, wie sowas aussieht. Könntest du mal ein paar Sequenzen hier posten und evtl kommentieren ? Es gibt da ja BASIC Sprachen, die einiges unterstützen, sei es nun midi, ogg oder einfach nur Sequenzen und Dauer. Mist, der Spieltrieb hat mich mal wieder gepackt.
Christoph db1uq K. schrieb: > https://de.wikipedia.org/wiki/CSV_(Dateiformat) > geht es um das Format? "Comma-separated values" Der TO sollte sich eher zu "Die Daten werden halbautomatisch aus Messungen erzeugt und liegen als Excel vor." verlautbaren. Äquidistante Zeitreihe vielleicht ? https://de.wikipedia.org/wiki/Zeitreihe
Excel kann mit Hilfe eines VBA Makros durchaus auch beliebige Binärformate schreiben.
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.
Björn W. schrieb: > 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.
Christoph db1uq K. schrieb: > Man könnte … … 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 ...
> Wertschöpfungskette
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.
:
Bearbeitet durch User
Kaj G. schrieb: > um es kurz zu machen: CSV ist kein Audioformat, ergo wird kein > Mediaplayer CSV lesen/importieren/interpretieren können. Danach hat er auch nicht gefragt! Wenn du keine Antwort weist, wieso musst du dich dann melden? Der TO könnte die CSV durch Excel aber in ein Audioformat exportieren. Die Audiowerte hat er ja immerhin als Zahl in der Tabelle.
Jens K. schrieb: > Der TO könnte die CSV durch Excel aber in ein Audioformat exportieren. > Die Audiowerte hat er ja immerhin als Zahl in der Tabelle. Der TO könnte alle möglichen sinnvollen und naheliegender Lösungen nutzen. Will er aber nicht. Simon R. schrieb: > 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. Oliver
Oliver S. schrieb: > Der TO könnte alle möglichen sinnvollen und naheliegender Lösungen > nutzen. Will er aber nicht. Ist das so, weil DU das sagst? Die meisten Menschen sind selbst genau so, wie sie sich über andere äußern.
Monk schrieb: > Ist das so, weil DU das sagst? Nein, weil er das gesagt hat. Ist alleine sein Problem, und dem Rest der Menschheit vermutlich herzlich egal. Die Frage an sich kann man auch ruhig stellen, man sollte nur mit den Antworten klar kommen. Oliver
Oliver S. schrieb: > man sollte nur mit den Antworten klar kommen. Einen Vorschlag hat er angenommen. "Klar kommen" bedeutet doch etwa das gleiche wie "hin kriegen", oder nicht? Simon R. schrieb: >> Audacity > Dazu muss man erst händisch importieren. > Kriege ich natürlich hin. Für mich klingt das anders als "will er aber nicht".
Monk schrieb: > 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. Auf sequenzer.de gibt es auch keine so schlechten Hinweise: https://www.sequencer.de/synthesizer/threads/wie-entwickelt-man-softsynths.123326/
Heinz B. schrieb: > 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. Rbx schrieb: > keine so schlechten Hinweise: kenne ich, kostet aber Zeit, das zu entwickeln. Es muss wie immer schnell und billig gehen.
Simon R. schrieb: > 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 Ich wünsche viel Erfolg dabei.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.