Wandlung Wave -> Bearbeitbares Format und zurück?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lobosch

Hallo allerseits,

habe ein klitzkleines Problem das höchstwahrschienlich in meiner
beschränkten Auffassungsgabe begründet ist.... :(

Ich möchte in Python eine .wav Datei öffnen und auslesen, das
Ergebnis in eine bearbeitbare Form bringen und wieder zurück in ein
Format wandeln das ich z.B. via ossaudiodev an die Soundkarte
schicken kann.
Grob zusammengefasst:

buffer_length = 16

wave_file = wave.open("test.wav","r") # Oeffnen der Datie
buffer = wave_file.readframes(buffer_length) #Teilstück auslesen
wave_file.close()

# Hier liegt mein Problem:

buffer_work = buffer_zu_bearbeitbarem_format(buffer)

# Hier soll später mal was am buffer_work rumgedoktert werden,
# erstmal egal

buffer = buffer_work_zu_buffer(buffer_work)

# Der Rest ist mir wieder klar

device = ossaudiodev.open("w") # Soundkarte vorbereiten
device.setparameters(16,2,44100)
device.write(buffer) #Teilstück richtung Soundkarte
device.close()

Wusele jetzt schon eine ganze Weile durchs Netz, habe einige
interessante Artikel gefunden (z.B.
http://www.onlamp.com/pub/a/python/2001 ... cally.html), die
mir allerdings nicht die erhoffte Erleuchtung brachten, teils weil zu
speziell, teils weil sie sich hauptsächlich mit DSP selbst
beschäftigen und nicht die "Aufarbeitung" der Dateien.

Kann mir jemand weiterhelfen? Die Python-Module Numeric, numarray,
fft usw. sind vorhanden, struct soll beim Wandeln von Binärdateien
behilflich sein können, aber wie... *achselzuck*

MfG
Lobosch
Mickey
User
Beiträge: 22
Registriert: Donnerstag 29. August 2002, 00:34
Wohnort: Frankfurt am Main
Kontaktdaten:

Da hast Du Dir ausgerechnet eine der wenigen Aufgaben herausgesucht, bei denen Python nicht so toll ist - nämlich der Bitfummelei. Das wäre einfacher mit einer C- oder C++-Extension gemacht.
Gruß,

:M:
Lobosch

Nun ja, allerdings setzt auch C vorraus das ich die Grundprinzipien irgendwie verstanden habe. :wink:

Habe übrigens eine Lösung gefunden. struct.unpack(<fmt>,buffer) dröselt mir das ganze Zeuch auf und mit struct.pack(<fmt>,buffer_edited[0],buffer_edited[1],[...]) kriege ich es wieder in ein für die Soundkarte verständliches Format.

MfG
Lobosch
Antworten