Я пытаюсь создать очень простой метроном на Raspberry Pi, который воспроизводит файл .wav с заданным интервалом, но время звучит неточно.
Я действительно не могу понять, почему модуль времени Python является неточным?
Я не думаю, что код, который обрабатывает воспроизведение звука, является узким местом, поскольку, если я помещу его в цикл без таймера, он будет постоянно греметь.
С помощью простого кода, приведенного ниже, звук будет проигрываться несколько раз, а затем один удар будет случайным образом выключаться снова и снова.
import pygame
from time import sleep
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.mixer.init()
pygame.init()
BPM = 160
sound = pygame.mixer.Sound('sounds/hihat1.wav')
while True:
sound.play()
sleep(60/BPM)
Я ожидаю, что звук будет повторяться каждые X миллисекунд с точностью не менее +/- 10 мс или около того. Это нереально? Если это так, пожалуйста, предложите альтернативу.