У меня есть два звуковых файла одинаковой длины, которые я хочу воспроизвести последовательно. В частности, я хочу, чтобы первый файл играл три раза, а второй файл играл один раз.
Я могу достичь этого через a SfPlayer
и aTrigFunc
, но у меня такое впечатление, что это будет читать звуковой файл с диска каждый раз, когда я переключаю звуки. Есть ли способ, которым я могу сделать это через aSndTable
, который держит звуки в RAM ?
Вот решение с использованием SfPlayer
иTrigFunc
, используя этот пример в качестве вдохновения .
from pyo import *
s = Server().boot()
DOWNLOADS = 'C:UsersmmoisenDownloads'
first = DOWNLOADS + 'first.wav'
second = DOWNLOADS + 'second.wav'
sf = SfPlayer(first, speed=100/135.0, loop=True, mul=0.5).out()
count = 0
def foo():
global count
count += 1
print count
if count == 3:
sf.path = second
if count == 4:
sf.path = forst
count = 0
trig = TrigFunc(sf['trig'][0], foo)
s.start()
Чтобы воспроизводить звуковые файлы последовательно из оперативной памяти, мне просто нужно было вызвать
append
SndTable
, как это:Использование списка звуковых файлов не работало, он просто воспроизводил первый звук повторно.