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()