Wie Schreibe stereo-wav-Dateien in Python?
Der folgende code schreibt einen einfachen Sinus mit der Frequenz 400Hz für mono-WAV-Datei. Wie muss dieser code geändert werden, um zu produzieren ein stereo WAV-Datei. Der zweite Kanal sollte in einer anderen Frequenz.
import math
import wave
import struct
freq = 440.0
data_size = 40000
fname = "WaveTest.wav"
frate = 11025.0 # framerate as a float
amp = 64000.0 # multiplier for amplitude
sine_list_x = []
for x in range(data_size):
sine_list_x.append(math.sin(2*math.pi*freq*(x/frate)))
wav_file = wave.open(fname, "w")
nchannels = 1
sampwidth = 2
framerate = int(frate)
nframes = data_size
comptype = "NONE"
compname = "not compressed"
wav_file.setparams((nchannels, sampwidth, framerate, nframes,
comptype, compname))
for s in sine_list_x:
# write the audio frames to file
wav_file.writeframes(struct.pack('h', int(s*amp/2)))
wav_file.close()
Set
nchannels = 2
für ein start 😉InformationsquelleAutor Jonathan | 2010-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bauen eine parallele
sine_list_y
Liste mit der anderen Frequenz /Kanal eingestelltnchannels=2
, und in der Ausgabe-Schleife verwendenfor s, t in zip(sine_list_x, sine_list_y):
wie die header-Klausel, und ein Körper mit zweiwriteframes
anrufen-eine fürs
man fürt
. IOW, entsprechende frames für die beiden Kanäle "Alternative" in der Datei.Siehe z.B. diese - Seite für eine vollständige Beschreibung aller möglichen WAV-Datei-Formate, und ich zitiere:
und die folgende Tabelle zeigt die Kanäle " Proben geht nach Links, rechts, Links, rechts, ...
InformationsquelleAutor Alex Martelli
Ein Beispiel für die Herstellung eines stereo -
.wav
- Datei finden Sie dietest_wave.py
- Modul.Der test liefert einen all-null-Datei.
Sie können ändern, durch das einsetzen abwechselnd sample-Werte.
InformationsquelleAutor gimel