Gibt es solch eine Software?

  • Ersteller alionsonny
  • Erstellt am
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Hallo,
und ersteinmal bitte ich um entschuldigung für den nichtssagenden Beitragstitel. Aber mein Anliegen wollte sich nicht so recht in einem kurzen Titel zusammenfassen lassen. Ich suche, wie der Titel schon andeutet, nach einer bestimmten Software und bin mir nicht sicher ob soetwas überhaupt existiert.

Ihr alle kennt Levelmeter, die graphisch anzeigen, wie laut ein bestimmtes Klangsignal zu einem bestimmten Zeitpunkt ist. Dieses wird in dB angezeigt. Während man einen Song abspielt entsteht dementsprechend eine Reihe solcher dB-Werte. Was ich suche ist eine Software, die diese Werte im Fliesskommaformat in eine Textdatei auf der Festplatte schreibt.

Ganz toll wäre, wenn es eine entsprechende Software für Frequenzanalizer geben würde, bei der dann die Werte der verschiedenen Frequenzbänder in eine Textdatei schreibt.

Gibt es sowas?

Vielen Dank
Sonny
 
Perfect Drug

Perfect Drug

Registrierter Benutzer
Zuletzt hier
12.03.21
Registriert
08.08.04
Beiträge
1.220
Kekse
1.171
Ort
Graz
Also so aus dem Stand wäre mir nichts bekannt.
Aber du kannst es dir höchstwahrscheinlich mit PD (Freeware) basteln.
Könnte aber etwas dauern... ;)
http://puredata.info/
 
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Hmm, eigentlich ne gute Idee. Da ich eh Programmierer bin, ist das interessant. Danke. Ich werde mir mal die Dokumentation zu Gemüte führen und schauen was ich anstellen muss um das was ich suche zu basteln.

Danke erstmal

Sonny
 
pico

pico

HCA-Recording
Ex-Moderator
HCA
Zuletzt hier
29.12.20
Registriert
30.06.07
Beiträge
15.009
Kekse
68.039
Ort
Maintal near Frankfurt/M
hast Du mal darüber nachgedacht, welche Datenmenge da anfällt? Bei 44,1KHz Samplingrate (CD-Standard) sind das 44.100 x 2 für Stereo = 88200 Werte pro Sekunde - und das jetzt noch das ganze pro Frequenzband (wieviele auch immer) ...

Was ist das Ziel des ganzen - denn diese Informationen stecken ja eigentlich schon in der Wave-Datei :D
Also da würde ich gleich ein Programm basteln, das die Daten aus der Wave-Datei extrahiert....
 
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Naja, ganz so hochauflösend soll das ganze gar nicht sein. Ich brauche ungefähr 30 samples pro sekunde. Das ganze soll für ein Musikvideoprojekt sein, bei dem 3D-Objekte abhängig von de Lautstärke der einzelnen Instrumententracks gesteuert werden. Die Visualisierungsseite habe ich bereits fertig und die "frisst" Textdateien und kann leider keine Wav-Audios lesen. Da lässt sich auch so leicht nichts machen.

Ich brauche also eine Software, die alle 30tel Sekunde die Lautstärke des Tracks, meinetwegen aus einer Wav-Datei extrahiert. Ich würde mir ja sowas selbst programmieren, habe aber NULL Ahnung von Audioprogrammierung.. Ich werde mir gleich mal die Spezifikation des Wav-Formats zu Gemüte führen. Vielleicht kapiere ich ja wie es geht ;)
 
C

cx01

Registrierter Benutzer
Zuletzt hier
31.01.16
Registriert
11.05.08
Beiträge
664
Kekse
2.881
Das ganze kannst du über eine FFT lösen. Da schickst du ein zeitbasiertes Signal rein und bekommst ein frequenzbasiertes zurück.
Wenn du C programmierst, bietet sich hier die FFTW-Library an.

Du musst also die WAV-Datei einlesen und dann die einzelnen Werte ins Float-Format bringen (bei einer 16-bit WAV musst du also alle Werte durch 32768 teilen).
Dieses Float-Array zerteilst du nun in kleinere Arrays von 1470Samples (damit du deine 30 Abtastpunkte pro Sekunde hast).
Jedes dieser kleinen Arrays schickst du nun einzeln in die FFTW Bibliothek und kriegst dann ein Array mit den Frequenzen zurück.

Ich hab sogar vor kurzem nen simplen WAV-Parser geschrieben, den ich dir geben könnte; nur leider in der Programmiersprache Haskell (kennst du vermutlich nicht).
 
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Jupp, der Wikiartikel war meine erste Station ;)

ttywaveedit ist ein RICHTIG guter Tip. Das Teil macht zwar in der vorliegenden Version nicht exakt das was ich brauche. Da aber die Source vorliegt werde ich mir wohl schnell was passendes daraus ableiten können. Immerhin besser als alles von Grund auf selbst zu basteln ;)

Danke, jetzt habe ich erstmal reichlich zu tun ..
 
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Oha, cx01... FFT... da habe ich mir schon vor Jahren die Zähne dran ausgebissen. Bin halt nicht so ein hardcore Mathematiker ;) Das liest sich wie VIIIEEEL Arbeit...

Ne Haskell kenne ich in der Tat nicht. Ich versuche es erstmal ttyWaveEdit. Ich komme ggf. auf Dich zurück falls ich viel Spass im Zerlegen von Audiodateien finde ;)
 
C

cx01

Registrierter Benutzer
Zuletzt hier
31.01.16
Registriert
11.05.08
Beiträge
664
Kekse
2.881
Also ttyWaveEdit hat soweit ich das sehe keine FFT. Es liest einfach das zeitbasierte Signal und gibt das wieder aus. Aber du willst es ja frequenzbasiert.
Also um ne FFT wirst du nicht herumkommen :)
Wobei dir FFTW hier die ganze Arbeit abnimmt (hab selber keine Ahnung von der Mathematik dahinter). Wenn es dir gelingt die WAV-Datei einzulesen, kann ich dir ungefähr sagen, wie du FFTW aufrufen musst.
 
A

alionsonny

Registrierter Benutzer
Zuletzt hier
28.03.09
Registriert
28.03.09
Beiträge
6
Kekse
0
Ok, cx01. Erstmal will ich ja nur die Lautstärkesignale alle 30stel Sekunde abfragen. Also wird ttyWaveEdit erstmal reichen. Das zu kapieren ist derzeit schon Arbeit genug ;) Ich versuche das ganze momentan per Borland C++ Builder unter eine grafische Benutzeroberfläche zu bringen. Dabei merkte ich, daß min C ganz schön eingerostet ist...

Wenn ich dann später das ganze frequenzbasiert durchziehen will, komme ich gern dankend auf Dich zurück. Werde Dir dann ggf. eine PM schicken.
 

Ähnliche Themen

Neue Themen

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Recording.de

Musiker-Board Logo
Oben