Указание длительности ноты с помощью pyfluidsynth (без использования time.sleep)
Я использую pyfluidsynth для создания звуковых событий (используя звуковые шрифты) из Python. Есть ли способ создания событий noteon без использования time.sleep? Например, указав продолжительность заметки как часть события заметки? Я не могу найти какие-либо способы играть ноты без использования time.sleep в настоящее время.
Например, если я использую следующий код:
fs.noteon (1, 60, 127) time.sleep (1)
тогда я играю ноту. Но если бы я убрал time.sleep, то не получил бы звука.
Проблема, с которой я столкнулся при использовании time.sleep, состоит в том, что я пишу программу, которая воспроизводит несколько событий заметок при каждом выполнении условия. Я хочу, чтобы функция воспроизведения нот повторялась без ограничения по времени, но в настоящее время из-за time.sleep вся программа задерживается всякий раз, когда воспроизводится нота, поэтому быстрые последовательности нот невозможны.
Я попытался использовать многопоточность, чтобы создать новый поток для запуска каждой заметки и времени. Но проблема здесь заключается в том, что в условиях, когда мне нужно сыграть много нот, несколько потоков используют слишком много ЦП для эффективной работы кода.
Я думаю, что идеальным решением было бы указать "продолжительность заметки" как часть события noteon, так что time.sleep не требуется. Но я не могу найти способ сделать это.
Кто-нибудь знает как это сделать? Любая помощь приветствуется.
Спасибо,
Луиза