Как мне обернуть образец в конверт в Overtone?

Некоторые образцы, которые я использую на Freesound.org, имеют небольшой щелчок в конце, например:

repl> (use 'overtone.live)
nil
repl> (def stick (freesound 82280))
#'repl/stick
repl> (stick)

Поэтому я пытаюсь обернуть этот образец в конверт, но все, что я получаю, - это молчание. Я подозреваю, что что-то не так с моим использованием buf-rd...

(definst stick1
  [amp 0.7]
  (let [env     (env-gen (perc) :action FREE)
        phase   (phasor:ar :start 0 :end 1 :rate 1)
        index   (* phase (buf-frames stick))
        snd     (buf-rd 1 stick index)]
    (* amp env snd)))

(stick1)

1 ответ

play-buf правильная функция для включения образца в конверт. perc используется для установки атаки на 0,01 секунды и выброса за 1 секунду до молчания, таким образом убивая щелчок.

(def stick (freesound 82280))

(definst stick1
  [amp 0.7]
  (let [env     (env-gen (perc 0.01 1) :action FREE)
        snd     (play-buf 1 stick)]
    (* amp env snd)))

(stick1)
Другие вопросы по тегам