Я хотел построить метроном в Python.
У меня есть 2 звуковых файла. Каждую секунду должен воспроизводиться первый звуковой файл, а каждую четвертую секунду должен воспроизводиться второй звуковой файл.
Я нашел витой модуль, но не мог понять, как передать параметр и выполнить его итерацию. Итак, у меня есть счетчик переменных, который я хочу перебрать, но он не работает со следующим кодом:
import simpleaudio as sa
from twisted.internet import task
from twisted.internet import reactor
def beat(bpm, counter):
timeout = 60/bpm
l = task.LoopingCall(play_beat, counter=counter)
l.start(timeout)
reactor.run()
def play_beat(counter):
counter += 1
print(counter) #This prints always 2, I am expecting an iteration like 2, 3, 4, 5, 6 ...
if counter % 4 == 0:
wave_obj = sa.WaveObject.from_wave_file("wav/beat_end.wav")
else:
wave_obj = sa.WaveObject.from_wave_file("wav/beat_start.wav")
play_obj = wave_obj.play()
play_obj.wait_done()
pass
beat(60, 1)