Мне любопытно, как проще всего воспроизвести звуковой файл или какую-либо частоту с заданным темпом. Самый простой метроном, который вы можете реализовать. Любые идеи?
Как проще всего воспроизвести семпл/тон с заданным темпом в SuperCollider
Ответы (1)
Если вы ищете простоту, то «самый простой метроном»
~bpm = 120;
x = {Impulse.ar(~bpm/60)}.play;
но это будет звучать не очень приятно и только в левом канале.
Для тона, а не щелчка, и в обоих каналах есть один простой способ:
~bpm = 120;
x = {SinOsc.ar.dup * Pulse.ar(~bpm/60, 0.01).lag}.play;
Чтобы воспроизвести файл WAV, вы можете просто использовать устройство PlayBuf и перезапустить его в нужном темпе. Здесь мы предполагаем, что вы загрузили семпл в буфер b
:
x = {PlayBuf.ar(1, b, trigger: Impulse.kr(~bpm/60))}.play;
или, вместо того, чтобы делать это как синтезатор, как я только что сделал, вы можете собрать что-то вместе, используя паттерны:
p = Pseq([Pfunc({ b.play; 60/~bpm })], inf).play
person
Dan Stowell
schedule
18.07.2015
Легче, чем я думал! А как насчет сэмплов wav, будет ли это намного сложнее?
- person ciembor; 26.07.2015
Хорошо, добавил это к моему ответу. Если вам нравится ответ, пожалуйста, примите его :)
- person Dan Stowell; 27.07.2015