2016-02-22 8 views
0

Как можно сыграть заметку в обертоне, используя пользовательский образец?Как играть заметку с использованием пользовательского образца в обертоне?

Например, вы можете воспроизводить заметку с использованием предварительно заданного образца пианино, например (piano (note :C4)), но как я могу сделать то же самое для пользовательского образца, который я загрузил с помощью образца или образца загрузки?

Другими словами: допустим, у меня есть (def my-piano (load-sample "/path/to/my/piano_sample.wav")) и вы хотите использовать его вместо предопределенного инструмента для фортепиано.

Я понимаю, что мне нужно определить новый инструмент, который принимает либо ноту, либо частоту в качестве аргумента. Вопрос заключается в том, как определить такой инструмент. Ни масштабируемый-play-buf, ни play-buf не принимают частоту в качестве параметра.

Я видел пример - «как определить собственный инструмент в обертоне» here - и похоже, что у меня должен быть отдельный образец за заметку. Это верно?

ответ

0

Найден ответ (вид) -: параметр скорости в scaled-play-buf может использоваться для достижения желаемого эффекта (ну, лучше использовать его в комбинации с другими на самом деле, особенно если вы хотите играть в несколько октав с вашим прибором):

;; define sample and instrument, rate is the key here 
(def piano (sample "~/Music/Samples/mypiano.wav")) 
(definst i-piano 
       [note 60 level 1 rate 1 loop? 0 attack 0 decay 1 sustain 1 release 0.1 curve -4 gate 1] 
       (let [env (env-gen (adsr attack decay sustain release level curve) 
          :gate gate 
          :action FREE)] 
        (scaled-play-buf 1 piano :rate rate :level level :loop loop? :action FREE))) 

;; try it 
(i-piano :rate 1) ; original note 
(i-piano :rate 1.2) 
(i-piano :rate 0.7) 

 Смежные вопросы

  • Нет связанных вопросов^_^