Создайте параллельный список sine_list_y
с другой частотой / каналом, установите nchannels=2
и в цикле вывода используйте for s, t in zip(sine_list_x, sine_list_y):
в качестве предложения заголовка, а тело с двумя вызовами writeframes
- один для s
, один для t
. IOW, соответствующие кадры для двух каналов «чередуются» в файле.
См. Например это страница для подробного описания всех возможных форматов файлов WAV, и я цитирую:
Образцы многоканального цифрового звука
хранятся в виде данных чересстрочной волны
это просто означает, что аудио
образцы многоканального (например,
стерео и объемный) волновой файл
хранится при циклическом переключении аудио
образцы для каждого канала до
переход к следующему времени выборки.
Это сделано для того, чтобы аудио файлы
может быть воспроизведен или передан до
весь файл можно прочитать. Это удобно
при воспроизведении большого файла с диска
(это может не полностью вписаться в
память) или потокового файла через
Интернет. Значения на диаграмме
ниже будет храниться в файле Wave
в порядке их перечисления в
Столбец значений (сверху вниз).
и в следующей таблице четко показаны сэмплы каналов, идущие влево, вправо, влево, вправо, ...