python_sound
August 10, 2023
Музыку!
Играем нотки, кроссплатформенное решение
import pyaudio
import numpy as np
import time
notes = {'C': 261.63,
'D': 293.66,
'E': 329.63,
'S': 0,
'F': 349.23,
'G': 392.00,
'A': 440.00,
'B': 493.88,
' ': 0}
melodie = 'CDEFG G AAAAG AAAAG FFFFE E DDDDC'
# Инициализация PyAudio
p = pyaudio.PyAudio()
# Длительность звука в секундах
duration = 0.5
# Генерация звука для каждой ноты и воспроизведение
for note in melodie:
if notes[note] != 0:
# Генерация сигнала с помощью NumPy
samples = (np.sin(2 * np.pi * np.arange(44100) * notes[note] / 44100)).astype(np.float32)
# Воспроизведение сигнала
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=44100,
output=True)
stream.write(duration * samples)
stream.stop_stream()
stream.close()
# Завершение PyAudio
p.terminate()