Какой самый простой способ воспроизвести семпл / тон с заданным темпом в 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;
или, альтернативно, вместо того, чтобы делать это как Synth, как я делал тогда, вы можете собрать что-то вместе, используя Patterns:
p = Pseq([Pfunc({ b.play; 60/~bpm })], inf).play