Forum: PC Hard- und Software Welches Audioprogramm kann csv-Dateien abspielen?


von Simon R. (Gast)


Lesenswert?

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.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

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.

von Jens B. (dasjens)


Lesenswert?

Freitag, lasst die Spiele beginnen.

von Micha I. (e-nomo)


Lesenswert?

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
von Dieter S. (ds1)


Lesenswert?

"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

von Rahul D. (rahul)


Lesenswert?

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

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Yalu X. schrieb:
> Gerade getan (s. Anhang) :)

Wenn du jetzt noch den Excel-Import mit einbindest, spart er sich den 
Umweg über CSV. :-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

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 :)

von Thomas T. (runout)


Lesenswert?

is schon klar nä,

für Flötentöne brauchst du ein *.flt-File.

TT

von Rbx (rcx)


Lesenswert?

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.

von Christoph K. (christoph_k314)


Lesenswert?

Schau dir mal das Programtool „Processing“ an. Da geht  das mit 
Hausmitteln. Csv einlesen, parsen und als audiostream ausgeben

von Simon R. (Gast)


Lesenswert?

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
von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

https://de.wikipedia.org/wiki/CSV_(Dateiformat)
geht es um das Format? "Comma-separated values"

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

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

von Monk (roehrmond)


Lesenswert?

Excel kann mit Hilfe eines VBA Makros durchaus auch beliebige 
Binärformate schreiben.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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).

von Björn W. (bwieck)


Lesenswert?

Man sollte auch bedenken das Soundkarten üblicherweise keine 
Gleichspannung ausgeben. Falls das für den TO wichtig sein sollte.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

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...

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

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 ...

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

> 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.

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

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
von Jens K. (jensky)


Lesenswert?

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.

von Oliver S. (oliverso)


Lesenswert?

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

von Monk (roehrmond)


Lesenswert?

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.

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

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

von Monk (roehrmond)


Lesenswert?

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".

: Bearbeitet durch User
von Rbx (rcx)


Lesenswert?

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/

von Simon R. (Gast)


Lesenswert?

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.

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

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
Noch kein Account? Hier anmelden.