Pure Data(이하 pd)는 오픈 소스 ‘비주얼 프로그래밍 언어’입니다. Pd는 컴퓨터에 비전문적인 사람(음악가, 비주얼 아티스트, 퍼포머 등)은 물론 개발자들을 위한 코드를 쓰지 않고도 개발할 수 있는 프로그램입니다. pd는 소리, 영상, 2D/3D 그래픽, 인터페이스 센서, 인풋 디바이스와 미디까지 만들고 사용할 수 있습니다. 더 자세한 사항과 다운로드는 Pure Data 웹 사이트인 https://puredata.info 에서 확인하기 바랍니다.
pd는 가능성이 많은 소프트웨어입니다. 그만큼 자유롭지만 쓰는 목적이 다양합니다. 그만큼 목적이 없이는 언어를 배우기 어려울 수 있습니다. 하지만 pd가 비개발자들을 위해서도 만들어진 이유는 다른 언어보다 배우기 쉽기때문이기도 합니다. 매뉴얼을 따라 가면서 목적에 맞는 방법을 찾을 수 있길 바랍니다.
이미 이 곳까지 오신 것은 기존에 사용하던 도구들에서 만족하지 못하고 더 유연한 방법을 찾고 있었기 때문입니다. 위에 말씀드렸던 것처럼 우리가 원하는 바를 컴퓨터를 통해 만들어내려면 언어를 배워야 합니다. 그러려면 pd의 기본적인 어법과 데이터 연산 방법을 익히면서 자신에게 필요한 소프트웨어인지 판단하셔야 합니다. 물론 오디오든 비디오든 자신의 목적에 취합하는 것부터 시작하는 것도 하나의 방법입니다. 하지만 여기에서는 기본적인 법칙과 연산 사용법을 알려드리려고 합니다.
이 안내문은 기본적으로 pd의 매뉴얼과 help browser의 Pure Data/의 컨트롤 예제를 참고하여 만들었습니다.
Pure Data Korea 그룹 링크:
https://www.facebook.com/groups/koreanPdUsers/
Download Pure Data (Vanilla)
http://msp.ucsd.edu/software.html
Download Pd-extended
https://puredata.info/downloads/pd-extended
Pure Data Japan 그룹 링크:
(크롬으로 번역해서 보면 유용한 정보가 잘 정리되어 있습니다)
01. main window, canvas
pd를 설치하고 처음 실행시켰을 때 뜨는 창이 있습니다. 이 창이 main window입니다. DSP(Disital Signal Processing)를 on/off 할 수 있고 print 오브젝트를 이용해 데이터의 아웃풋 상황을 띄워 볼 수 있습니다.
우선 File - new(ctrl + n)를 눌러 canvas를 만들어 봅시다. 캔버스에는 패치를 만들 수 있습니다. 코드를 꽂고 연결하는 방식으로 여러 기능을 하는 박스를 사용할 수 있습니다.
02. object box, GUI box, message box, comment box
pd에는 크게 4가지 종류의 박스가 있습니다.
object box는 이름을 넣으면 그에 해당하는 기능을 담은 박스입니다. 예를 들어 더하기를 하고 싶다면 박스에 [+ ]를 넣어서 기능을 쓸 수 있습니다.
GUI box는 숫자, 토글, 슬라이더, 뱅버튼 등 그 외의 것들을 말합니다. 일단은 숫자를 넣고 받을 수 있는 number box를 알아둘 필요가 있습니다.
message box는 숫자나 심볼(글자)를 써 넣어 놓으면 활성화되었을 때(뱅 신호를 받거나 클릭을 했을 때) 써 놓은 메세지들이 아웃풋으로 나가게 됩니다.
comment box는 명시된 대로 주석이나 메모를 할 수 있는 박스입니다.
04. edit and run mode
두 가지 모드가 있는데 edit과 run 모드가 있습니다. edit 모드는 말 그대로 캔버스에 박스를 놓고 패치를 만들어 편집할 수 있는 상태이고, run은 마우스 클릭을 통해 온전히 실행만 할 수 있는 상태입니다. 넘버 박스나 메세지 박스는 run 모드에서 숫자를 변경하거나 활성화 할 수 있습니다.
모드는 ctrl + e(혹은 상단 메뉴의 edit -> edit)를 눌러 변경할 수 있으며, edit 모드에서 간이로 활성화 시키고자 할 때는 ctrl + click을 하면 됩니다. 예를 들어 넘버 박스의 숫자를 edit 모드에서 run 모드처럼 숫자를 변경하고자 하면 ctrl을 누른 상태로 위 아래로 끌면 됩니다.
05. 연산순서
이럴 경우 연산 순서는 어떻게 될까요? 오른쪽이 먼저 일까요? 아니면 왼쪽일까요? 순서가 어떻게 되느냐에 따라 결과가 달라지기 때문에 데이터가 어느 쪽으로 먼저 들어가는지는 중요한 문제입니다.
print 오브젝트로 본 처음 left와 right의 출력값은 왼쪽-오른쪽 순이었습니다. 두번째는 오른쪽-왼쪽 순으로 출력이 되었습니다. 사실 이럴 때 순서는 어느 쪽에 먼저 패치가 연결되었는지에 따라 결정됩니다. 그래서 같은 모습인데도 서로 다른 결과가 나오게되었습니다.
하지만 연결한 순서대로 연산이 된다면 문제점이 있습니다. 눈으로 확인을 하기 어렵다는 것이죠. pd는 코딩을 해서 프로그래밍을 하는 것이 아닌 대신 이런 단점이 있습니다. 그래서 trigger 오브젝트를 이용하여 연산 순서를 정해줄 수 있습니다. 위 그림의 trigger 오브젝트 박스엔 float, float이라는 아규먼트가 들어가 있습니다. floating number를 내보내준다는 것입니다. 이렇게 하면 10이라는 숫자가 무조건 오른쪽부터 나가기 때문에 순서를 알기 쉬워집니다. 오른쪽부터 나간 데이터는 print 오브젝트 박스까지 도달한 후에 왼쪽으로 나가게 됩니다. 결과값을 보시면 right가 먼저 프린트 된 후 left가 프린트되는 걸 알 수 있습니다.
새 캔버스(ctrl + n) 를 열고 연산순서를 실험해봅시다.
06. hot inlet과 cold inlet
오브젝트에는 두 개의 inlet이 있습니다.
왼쪽은 ‘hot’ inlet, 오른쪽은 ‘cold’ inlet입니다.
‘hot’ inlet은 값을 바꾸어 넣자마자 작동합니다. 그림에서 보는 것처럼 [+ 3]의 왼쪽 inlet에 값을 바꾸어 넣자마자 8이라는 숫자가 나옵니다.
‘cold’ inlet은 오브젝트에 그저 저장을 할 뿐 값을 출력해내지는 않습니다. 다음 그림에서는 오른쪽 넘버 박스의 값을 먼저 바꾼 뒤, 왼쪽 넘버 박스의 값을 변경하였습니다. 그래서 ‘5’라는 값이 저장되어 사실상 ‘+ 5’가 되었고 왼쪽에 ‘5’를 넣자 ‘5+5’가 되어 결과값은 ‘10’이 됩니다.
Pd의 특성상 cold inlet으로 들어간 값은 눈으로 보이지 않기 때문에 보기가 까다롭다는 단점이 있습니다.
07. inlet 연결 순서
1번과 2번은 겉보기엔 같아보이지만 결과는 다릅니다. 어떤 이유에서 일까요? 1번은 [+ ] 오브젝트에 왼쪽, 오른쪽 순서로 연결했고, 2번은 반대의 순서로 연결했습니다. 새로운 패치를 열어 1번처럼 연결한 뒤에 ‘6’이란 숫자를 넣어봅시다. 결과는 ‘6’이 나올 것입니다. 다시 한번 더 ‘6’을 넣어보죠. 그럼 ‘11’이라는 결과가 나올 것입니다.
이 같은 문제가 발생하지 않도록 순서를 분명하게 해주기 위해서 [trigger ] 오브젝트를 사용합니다. [trigger ]는 오른쪽부터 순서대로 나갑니다.
어떤 식으로 해도 오른쪽부터 나가게 됩니다.
08. 단축키
윈도우에서는 ⌘ =ctrl.
⌘-E : 편집 모드와 실행 모드의 전환.
⌘-1 : 객체
⌘-2 : 메시지 상자
⌘-3 : 번호 상자
⌘-5 : 댓글 상자
Shift + ⌘-B : Bang 버튼
Shift + ⌘-T : Toggle 버튼
Shift + ⌘-V : 수직 슬라이더
Shift + ⌘-H : 수평 슬라이더
⌘-R : Pd 콘솔창 불러오기
Shift + ⌘ + L : Pd 콘솔 창을 지웁니다.
⌘ + / : DSP 설정
⌘ + : DSP 해제
⌘-T : 글꼴 창
09. help에서 example 찾기
'Pure Data > Pure Data Study' 카테고리의 다른 글
Windows에서 External 설치하기 (0) | 2016.10.03 |
---|---|
[metro ] simple metronome (2) (0) | 2016.01.11 |
[metro ] object (1) (0) | 2015.12.30 |
Simple counter 만들기 (0) | 2015.12.23 |
Pd 시작하기 업데이트 아닌 업데이트 (0) | 2015.12.22 |