이 챕터는 샘플링과 오디오 플레이에 대한 연주의 이해를 하고 있는지 테스트를 하는 챕터 입니다.
-a키를 눌러 오디오를 키도록 하고, 다시 눌러 토글로 오디오를 끄도록 하라.
-r키를 눌러 컴퓨터로 들어오는 어떤 소리든 녹음하여 1초의 오디오 파일을 만들라.
-어떤 Amplitude envelope가 플레이 될 때에 샘플로 적용이 되며, 시작과 끝에 조금 감소하게 하여 끝에서 갑자기 클릭이 나타나지 않도록 만들어라.
-샘플이 3Hz의 vibrato를 만들며 연주하도록 하라. Vibrato Depth는 one semitone (a factor of 2±1/12) 오르락 내리락 하도록 하라.
Hints
소리를 플레이 하기 위하여 buffer~를 사용하는 것이 좋다.
buffer~ 와 record~를 사용하여 바로 녹음할 수 있다. record~ 는 adc~ 또는 ezadc~로부터 연결될 것이다.
buffer~로부터 소리를 연주하기 위한 두 가지 선택으로는 play~ 와 groove~가 있다.
그러나 비브라토를 더해야 하기 때문에 groove~를 선택하여 플레이의 스피드를 바로 결정할 수 있도록 하는 것이 유리할 것이다.
Amplitude envelope 은 line~ object 를 사용하는 것이 좋다. *~object는 groove~로부터 나오는 출력신호의 amplitude를 scale하기에 좋다. function object를 사용하여 envelope를 그릴 수 있고 그것을 line~ 로 보내어 envelope을 그릴 수 있다.
computer keyboard로 adc~, record~, groove~, line~ 또는function를 연동시키도록 해야 한다. 따라서 key 와 select를 이용하는 것이 좋겠다.
싸인 곡선을 cycle~ object를 이용하여 만들어 vibrato에 활용한다. frequency 는 vibrato의 rate를, 싸인 곡선의 amplitude는 depth를 결정할 것이다.
Tutorial 10에서, 우리는 vibrato를 만들 때 the modulating oscillator를 carrier oscillator의 frequency input 에 더하여서 만들었다. 여기에선 두 가지가 다른데 일단 modulating oscillator는 또 다른 cycle~ object의 frequency보다는 groove~ 의 playback speed를 modulate해야 하며, 두 번째는 modulator 의 출력을 carrier의 입력에 더하여 carrier 위 아래로 똑 같은 frequency의 진동을 만들어 내는 것이며 똑 같은 pitch를 오르내리는 진동을 만드는 것이 아니다. Pitch의 변화는 어떤 양에 의해 carrier frequency 가 곱해지는 것으로 이루어 지는 것이지 더하는 것으로 생기는 것이 아니다. Pitch를 올리기 위하여 2의 12배수로 frequency를 곱해야 한다. 더 낮은pitch는 반대로 2의 -1/12 제곱으로 만들어진다. 이 범위를 계속 바꾸어주는 signal값을 계산하기 위해서 pow~라는 것을 이용해야 한다. (아직 다루어 본적이 없음)
Solution
buffer~ object 는1000ms의 시간과 channel의 수(2)를 지정해줍니다. 이것은 얼마나 많은 memory 가 buffer~에 할당될 것인지를 결정합니다.
buffer~가 1초로 메모리가 지정되었기 때문에 record~ object에 stop하라는 명령을 줄 필요가 없게 됩니다.
Key와 select object 가 키로 컨트롤 할수 있도록 해줍니다.
이 패치는 또한 amplitude envelope를 샘플이 플레이 됨과 동시에 작동하도록 해줍니다. 이 envelope은 groove~의 출력을 scale하도록 해줍니다.
A sig~ 0.5 object는 groove~의 기본 플레이 스피드의 반의 속도로 맞추어 줍니다. 3 Hz cosine wave 의 amplitude는 0.083333 에 의해 scale됩니다. Sine signal은 pow~에 의해 2의 제곱근에 곱해집니다. 그래서 그 결과로 플레이의 스피드를 곱해주는 역할을 하게 됩니다.