본문 바로가기

Pure Data/Pure Data Study

Pd study 4일차


몰아서 스터디 했던 내용을 쓰려고하니 기억이 혼재된다.


3일째했던 것이 4일에 했던 것인지 헷갈리지만 포스트 함.


기억나는 순서대로 적어봄.


1) Gem의 full screen

2) Gem에서 cube가 나타났다 사라지는 패치 설명 (이건 생략)

3) Gem list를 받아서 복제하는 패치.

4) 그리고 range scale 방법.

예를 들어 0~5까지의 범위를 0~127까지의 범위로 측정하고 싶을 때 할 수 있는 방법이다. scale해주는 오브젝트를 써도 되지만 그냥 원초적인 방법을 적용해보았다.

5) [imgeVert], [newWave] 오브젝트

6) poly_sampler




1. 첫번째의  Gem의 full screen  관련 이야기.


Gem_help에서 패치를 가져왔다.

버티컬 라디오의 첫번째 칸은 0을 내놓고,

두번째는 1, 세번째는 2를 내놓는다.


그러면 메세지 박스의 fullscreen $1의 '$1'에 라디오에서 아웃풋된 숫자가 들어가면서 뱅이 된다.


(reset, fullscreen 선택숫자, create, 1) 순서대로 진행이 된다.


혹시 이렇게 패치를 짜 놓지 않았다면,


fullscreen을 먼저 누르고 창을 켜야한다.


그리고 창이 열린 상태에선 화면 크기를 변경하지 못한다.


(destroy)한 뒤에 할 것



(fullscreen 1)은 1번보니터, 2는 2번모니터이다.


디스플레이에서 주 모니터와 확장 모니터를 설정하는 것을 확인 해야한다.


프로젝터가 확장 모니터로 되어 있고, 그 곳에 꽉찬 화면을 띄우고 싶다면 fullscreen 2를 해야한다.


원래 패치에서는 [pd esc]에 esc 버튼을 누르면 창이 꺼지게 되어있었지만 내 키보드에는 esc가 없어서 space bar를 누르면 창이 꺼지도록 하였다.


(full screen 1)을 했을때 화면이 꽉차서 종료할 수 없을 때를 위한 방책이다.





2. Loop_Gem_list



박성민 씨의 pd/Gem live coding영상에서 나왔던 것을 따라해보았다.

https://www.youtube.com/watch?v=kua7TZtroY4


하나의 cube로 여러개까지 만들 수 있다.

원리는 spigot에서 gemlist를 어느 시간 동안만 열어두는 것인데 [pd loop_gemlist]의 서브 패치를 보면서 알아보겠다.



최대한 보기 쉽게 만들어보려고 했다-_-;

1) 윈도우 창을 켠다

2) Object number 갯수를 늘렸다 줄였다 해본다.

3) speed 조절을 해본다.

4) x-coordinate를 요래저래 움직여본다.




[pd loop_gemlist]에는 이렇게 되어있다.



[t a b]의 a는 anyting의 줄임말이다.


1) 트리거에서 뱅 신호는 카운터로 들어간다.

2) 숫자가 올라가면서 [mod] 혹은 [% ] 오브젝트를 거친다.

3) 오른쪽 인렛으로는 오브젝트 개수가 들어가는데 3이면 3만큼의 gemlist가 들어가도록 spigot이 열리게 된다.

4) 왼쪽 [outlet]을 통해 [s toTrans]로 간다.

5) [r toTrans]는 [translateXYZ] 위에 있다. 그곳으로 gem list가 들어가면서 복제가 된다.

6) 만약 x 좌표가 1이라면, 1씩 밀려서 물체가 생성된다.

7) 이 서브패치에서 오른쪽 [inlet]을 통해 두 번째로 들어가는 오브젝트 [/ 10]은 두번째 [outlet]으로 나가 [colorRGB]에 들어가게 된다.

8) 이것때문에 생성되는 큐브마다 색이 달라지게 된다.





[pd rotate]의 내부



1) 첫번째 [inlet]으로는 [metro]의 스위치가 들어오고,


2) 두번째 [inlet]으로는 speed가 들어 간다.

3) [counter]와 [% 360] 360이 계속 루프된다.

4) [outlet]으로 나간 이 숫자는 [rotateXYZ]로 가서 XYZ축을 같이 계속 돌린다.



x-coordinate scale 부분



[translateXYZ]에 붙은 이 작은 무리를 해석해보자면,

1) 제일 위에 있는 슬라이더의 값은 -1024~1024까지의 숫자를 출력한다.

2) 이것을 [/ 1024]해주면, -1~1까지로 변환해준다.

   1이 들어가면 1/1024 이렇게 되면서 대충 0.0000001 이런식으로 나올 것이다..

3) 여기에 * 4를 해줌으로써 최저 -4붜 최고 4까지를 내보낼 수 있다.

우리는 -1024~1024까지로 -4~4까지를 스케일링할 수 있게 됐다.


gemwindow는 윈도우창이 커지더라도 -4~4까지라는 정수로는 몇 단계 안되는 방식으로 움직이거나 커지고 작아지기때문에 세세한 조절이 불편하다.


좀 더 세밀한 조정을 필요로할 때 저런식으로 스케일해서 쓸 수가 있다.


도형의 크기를 정할때도 마찬가지이다.




3. Poly_play



하나의 샘플러를 abstraction으로 만들어서 계속 복제한다고 해서 [clone]인 것같다.

clone은 패치이름 옆에 적힌 [clone sampler 16] 숫자만큼 복제를 하겠다고 pd에게 선언한다


이 패치의 목적은 여러 사운드 샘플을 읽어서 [table]에 저장한 뒤, 재생을 하는 것이다.


그리고 순서대로 재생하되 그 전에 재생된 샘플이 끊어지지 않아야한다.

단 하나의 player를 써서(사실상 clone으로 복제한 것이지만) 해야한다는 조건도 있다.





우선, 새로운 창(캔버스)를 켜고 이렇게 만들자.

[tabplay~]를 통해 sample을 재생하는 패치이다.

[tabplay~]는 bang을 받으면 set된 테이블을 재생한다.

(set tab$1)은 table의 숫자를 지정해주는 것이다.

그리고 bang을 보내어 그  table을 재생한다.





이 패치를 sampler.pd 라고 이름을 저장하자.


본 패치와는 같은 폴더 안에 존재해야 읽힌다.



본 패치를 만들어 저장하고 [clone sampler (숫자)]를 만들면 오브젝트가 생성된다.


그냥 [clone]이라고 치면 만들어지긴 하지만 아무 기능이 없다.

그리고 [clone sampler]만 치면 오브젝트가 만들어지지 않는다.


내가 만든 클론은 16개까지 복제를 한다는 뜻이다.


만들어졌으면 사운드 샘플을 테이블에 저장하는 것을 만들어보자.


먼저 테이블을 만들자.

나는 테이블 오브젝트가 주욱 늘어지는 모습이 싫어 [pd table]에 다 집어 넣어놨다.


[table (테이블이름)] 이런식으로 만들어놓는다. 더블클릭하여 보면 빈 테이블이 자리한다.


이 곳에 샘플을 넣을 패치를 짜보자.


[loadbang]은 창이 열린 순간에 뱅을 보내는 오브젝트이다.


메세지 박스에 있는 저 파일명들은 사운드 샘플 파일 이름이다.

voice.wav하고 ',' 콤마를 찍어 주고 다름 파일을 넣고 메세지 박스를 누르면

차례대로 메세지를 내보낸다.

[print]를 달고 눌러보면 이렇게 나온다. 요로케.. 데헷..




[t a b]를 통해 하나 들어갈때마다 카운터를 올리도록 만들고,


숫자 9가 나오면 다시 0으로 돌리도록 해놓았다.


[soundfiler]는 (read -resize $1 ta$2)라는 것으로 테이블에 저장해준다.


read는 말그대로 읽어준다는 것이고

-resize는 table 길이를 샘플 길이와 맞춰서 만들어준다는 것이다.

$1의 자리에는 사운드 샘플의 위치가 들어가고,

tab$2에는 tab0, tab1, tab2....이런식으로 숫자가 들어가게 되면서 샘플이 들어가는 테이블을 지정해준다.

테이블 이름은 원하는대로 다르게도 설정할 수 있다.


현재는 [trigger anyting bang]([t a b]의 풀네임)을 이용해서 tab 넘버와 샘플 위치를 번갈아가면서 넣도록 설정해놓았다.



다음엔 플레이어다.

뱅 버튼을 누를때마다 카운팅 되면서 재생이 되도록 설정되었다.

[pack] 부분에서는 clone 번호, 테이블번호 순으로 리스트를 생성되도록 만들었다.

[clone] 오브젝트는 리스트의 처음이 클론 패치의 번호이다.




그냥 숫자를 넣으면 그 클론 패치에 지정된 테이블이 재생된다.


아..힘들..





'Pure Data > Pure Data Study' 카테고리의 다른 글

스터디 5일차  (0) 2016.11.29
[clone]사용하여 샘플러 시퀀스 만들기  (0) 2016.11.22
스터디 3일차에 했던 다른 공부  (0) 2016.11.09
Pd study 3일차  (0) 2016.11.09
Pd study 2일차  (0) 2016.10.10