Что за звук 440 Гц? В «440 Гц» есть много типов волн: синус, пила, квадрат и т. Д. У вас может быть флейта, играющая на А, и это тоже может иметь значение.
Если вы хотите получить синусоидальную волну, похоже, что вы можете создать объект Sound с помощью pygame.sndarray.samples
. (Я не проверял это) Вы можете создать образцы с:
samples = [math.sin(2.0 * math.pi * frequency * t / sample_rate) for t in xrange(0, duration_in_samples)]
Это, надеюсь, основные синусоидальные волны. frequency
- желаемая частота в Гц. sample_rate
- количество сэмплов в секунду в сгенерированном звуке: 44100 Гц - типичное значение. duration_in_samples
- длина аудио. (5 * 44100 == 5 секунд, если звук воспроизводится с частотой дискретизации 44100 Гц.)
Похоже, вам, возможно, придется преобразовать samples
в numpy.array
, прежде чем переходить к pygame.sndarray.samples
. Документы указывают, что аудио должно соответствовать формату, возвращаемому pygame.mixer.get_init
, поэтому настройте samples
соответствующим образом, но это основная идея. (mixer.get_init
сообщит вам переменную sample_rate
, указанную выше, и о том, нужно ли вам учитывать стерео, и нужно ли регулировать амплитуду волны или сдвигать ее.)
Сделайте samples
целым числом длин волн, и оно должно зацикливаться.