______________________________________________________________________________________________________________________________
이미 아두이노에서 클레멘타인 연주와 아울러 가사를 읽을 수 있도록 노래방 스타일로 lcd를 사용해 보았다. 이 곡을 Processing sound.cipher 용으로 편곡하기로 하자. 편곡이라 해봐야 단지 듣기 괜찮은 수준으로 계명 높이와 템포를 조절하는 수준이다. 계명 높이 조절은 아두이노에서는 오픈소스에서 이미 다 구현되어 있어 수정할 필요는 없었으나 Processing sound,cipher에서 사용하는 pitch와는 괴리가 큰 듯하다.
processing에서 계명 솔을 pitch 65 로 잡은 후 몇 번 들어 보고 조정하였다. 그리 어려운 수준은 아니며 어릴 때 실포폰 두드려 보았으면 할 수 있는 조율이다. 음정 높이가 마음에 들지 않으면 스스로 조정해야 할 것이다. 아무래도 계산기에 의한 더하기 빼기 및 찾기 기능에서 모조리 바꾸기가 필요할 듯하다. 어쟀든 아무래도 Processing sound,cipher의 퀄리티가 아두이노에 비해서는 높은듯하다.
동요 연주를 다루면서 발견한 사실 한가지는 sound.cipher 시작 첫 소절에서 균일한 박자 유지가 되지 않았다. 워밍업이 필요한 듯하다. 클레멘타인 곡이 31ᅟᅡᆨ자 송이므로 첫 소절에 도도도도 라는 계명으로 소리 크기에 해당하는 DYNAMICS 값을 아예 0으로 잡아 durations를 3초 잡아 주었다. 실제로 3초간 소리가 나지 않으나 노래 연주 시동 거는데 충분하였다.
일단 dutrations 기준을 보면 한소절당 3초로 되어 있는데 동시에 템포 명령을 사용하여 속도를 조절하면 된다. 80이 보통인 듯 하며 숫자가 커지면 빨라진다. repeat 명령은 반복 횟수이다. 한회 연주가 끝나고 3초간 쉬는 현상을 관찰할 수 있을 것이다.
다음 동영상을 통하여 아두이노 수준과 비슷한 클레멘타인 연주를 들어 보고 곡 연주를 바꾸어 편곡해보면서 Processing의 sound.cipher 용법을 익혀나가는 것은 독자의 몫일 것이다.
첨부된 오픈소스 코드를 실행해 보자.
//Clementine_Song_Draw_01
import arb.soundcipher.*;
SoundCipher sc1 = new SoundCipher(this);
void setup() {
size(500,500);
SoundCipher sc = new SoundCipher(this);
sc.tempo(85);
sc.repeat(2);
// warming up sol sol sol re si si si sol sol si re re do si ra ra si do do si ra si sol sol si ra re fa ra sol
float[] pitches = { 65,65,65,65,65, 65, 65, 60, 69, 69, 69, 65, 65, 69, 72, 72, 70, 69, 67, 67,69,70,70, 69,67,69, 65, 65, 69,67,60, 64 ,67,65};
float[] dynamics ={ 0, 0, 0, 0,100,100,100,100, 100,100,100,100, 100,100,100,100, 100,100,100,100,100,100,100, 100,100,100,100, 100,100,100,100, 100,100,100};
float[] durations={ 1,1,.25,.25,.75,.25, 1, 1, .75,.25, 1, 1, .75,.25, 1, 1, .75,.25, 2,.75,.25, 1, 1, .75,.25, 1, 1, .75,.25, 1, 1, .75,.25, 2};
sc.playPhrase(pitches, dynamics, durations);
}
void draw() {
fill(color(random(256), random (256), random(256)));
rect(random(500), random(500), random(300), random(300));
delay(1000);
}//End
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
Processing ON OFF 버튼 클라스 코딩 (0) | 2018.07.18 |
---|---|
Processing에서 버튼 클라스 코딩 (0) | 2018.07.17 |
Processing sound.cipher 그래픽 건반 예제 (0) | 2018.07.17 |
Processing sound.cipher PlayPhase 연주효과 코딩 (0) | 2018.07.15 |
엄마야∼ 누나야 Processing sound.cipher용 편곡,연주 Random Visualization (0) | 2018.07.15 |