맨위로가기

퓨어 데이터

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

퓨어 데이터(Pd)는 데이터 플로우 프로그래밍 언어의 일종으로, 시각적인 그래픽 환경을 통해 제어 및 오디오 흐름을 모델링한다. 맥스(Max)와 유사한 점이 많으며, 맥스의 상용 후속작인 Max/MSP와 어느 정도 호환된다. Pd는 데이터, 메시지, 객체, 주석의 네 가지 기본 텍스트 엔티티를 지원하며, 파일, 오디오 보드, MIDI, OSC 등을 통해 데이터를 읽어오거나 즉석에서 생성하여 처리할 수 있다. Pd는 자료 구조를 도입하여 음악 데이터를 표현하는 데 사용되며, 리액터블, RjDj, 비디오 게임 오디오 프로토타입 등 다양한 프로젝트에 활용된다.

더 읽어볼만한 페이지

  • 소프트웨어 신시사이저 - 맥스 (소프트웨어)
    맥스는 시각적 프로그래밍 기반의 실시간 음향 및 영상 처리 소프트웨어로, MSP와 Jitter 모듈 추가를 통해 기능이 확장되었으며, 음악 제작, 사운드 디자인, 인터랙티브 아트 등 다양한 분야에서 활용되고 Ableton Live와의 통합으로 활용 범위가 넓어졌다.
  • 소프트웨어 신시사이저 - 버추얼 스튜디오 테크놀로지
    버추얼 스튜디오 테크놀로지(VST)는 스타인버그가 개발한 오디오 플러그인 표준으로, VST 호스트 프로그램에서 오디오 플러그인(VST 인스트루먼트, VST 이펙트, VST MIDI 이펙트)을 사용하여 소프트웨어 신시사이저, 음향 효과, MIDI 메시지 제어 등의 기능을 제공하며, 큐베이스, 로직 프로, FL 스튜디오 같은 DAW 소프트웨어에서 활용되고, C++ 언어로 개발된다.
  • 자유 오디오 소프트웨어 - 밴시 (미디어 플레이어)
    밴시는 플러그인을 통해 기능을 확장할 수 있으며, Mac OS X, 리눅스, 윈도우를 지원하는 미디어 플레이어이다.
  • 자유 오디오 소프트웨어 - XMMS
    XMMS는 X MultiMedia System의 약자로, Winamp와 유사한 인터페이스와 스킨, 다양한 플러그인을 통해 폭넓은 오디오 파일 형식을 지원하는 크로스 플랫폼 오디오 플레이어이다.
  • 시각적 프로그래밍 언어 - 맥스 (소프트웨어)
    맥스는 시각적 프로그래밍 기반의 실시간 음향 및 영상 처리 소프트웨어로, MSP와 Jitter 모듈 추가를 통해 기능이 확장되었으며, 음악 제작, 사운드 디자인, 인터랙티브 아트 등 다양한 분야에서 활용되고 Ableton Live와의 통합으로 활용 범위가 넓어졌다.
  • 시각적 프로그래밍 언어 - 래더 로직
    래더 로직은 PLC 프로그래밍에 사용되는 그래픽 기반 언어로, 릴레이 회로를 연상시키는 접점과 코일을 사용하여 AND, OR, NOT 등의 논리 연산을 구현, 자동화 시스템을 제어한다.
퓨어 데이터 - [IT 관련 정보]에 관한 문서
기본 정보
퓨어 데이터 로고
퓨어 데이터 로고
종류비주얼 프로그래밍 언어
기술 정보
패러다임데이터 흐름
라이선스BSD-3-Clause
웹사이트puredata.info
디자이너밀러 S. 푸켓
출시 연도1996년
영향을 받은 언어패처
최신 버전0.53-2
지원 운영체제크로스 플랫폼 (macOS, Windows, Linux)
추가 정보
개발자밀러 푸켓
장르비주얼 프로그래밍 언어
라이선스BSD-3-Clause
웹사이트puredata.info

2. 맥스(Max)와의 유사성

퓨어 데이터와 맥스는 모두 데이터 플로우 프로그래밍 언어의 대표적인 예시이다. 두 프로그램은 비슷한 점이 많지만, 몇 가지 중요한 차이점도 존재한다.

퓨어 데이터는 맥스와 유사하게 'externals' 또는 객체의 모듈 코드 기반을 가지고 있어, 소프트웨어로 작성된 프로그램의 구성 요소로 사용된다. 이를 통해 API를 통해 프로그램을 확장할 수 있다.

하지만, 맥스의 원래 버전과 달리 퓨어 데이터는 항상 사운드 합성 및 신호 처리를 호스트 중앙 처리 장치(CPU)에서 처리하도록 설계되었다. 퓨어 데이터의 코드는 데이비드 지카렐리의 맥스 언어에 대한 MSP 확장의 기반이 되었다.[3]

또한, 퓨어 데이터는 프리웨어이기 때문에 무료로 이용할 수 있지만, 상용인 Max/MSP와 비교하면 처리 속도, 기능, 안정성 면에서 떨어진다고 평가받고 있다.

2. 1. 데이터 흐름 프로그래밍

퓨어 데이터(Pure Data)와 맥스는 모두 데이터 플로우 프로그래밍 언어의 예시이다. 데이터 플로우 프로그래밍은 프로그램을 연산 간에 데이터가 흐르는 유향 그래프로 모델링한다. 퓨어 데이터와 맥스에서는 함수 또는 "객체"가 제어 및 오디오의 흐름을 모델링하는 그래픽 환경에서 연결되거나 "패치"된다.[3]

Pd는 IRCAM 재직 시 개발한 Max와 대상 영역 및 설계가 유사하며, Max의 상용 후속작인 Max/MSP와 어느 정도 상호 운용이 가능하다. Pd와 Max는 그래픽 환경에서 함수와 "객체"가 서로 연결되어 제어 흐름과 음향의 흐름을 나타내는 전형적인 데이터 흐름 프로그래밍 언어이다.

2. 2. 그래픽 환경

퓨어 데이터(Pure Data)와 맥스에서는 함수 또는 "객체"가 그래픽 환경에서 연결되어 제어 및 오디오 흐름을 나타낸다. 이러한 연결은 "패치"라고도 불린다.[3] 퓨어 데이터는 데이터 플로우 프로그래밍 언어의 한 예시이며, 프로그램은 연산 간에 데이터가 흐르는 유향 그래프로 모델링된다.

2. 3. 호스트 CPU 처리

맥스의 초기 버전과 달리 Pd는 항상 사운드 합성 및 신호 처리를 디지털 신호 프로세서(DSP) 보드로 오프로드하는 대신 호스트 중앙 처리 장치(CPU)에서 제어 속도 및 오디오 처리를 수행하도록 설계되었다. Pd 코드는 소프트웨어 오디오 처리를 위해 데이비드 지카렐리(David Zicarelli)의 Max 언어에 대한 MSP 확장의 기반이 되었다.[3] Pd에서는 음성 처리 등도 호스트 CPU에서 수행되는데, 이는 Max/FTS에서 DSP 보드(Ariel ISPW)에 신호 처리합성을 맡겼던 것과는 대조적이다.[3]

2. 4. 모듈성

맥스와 마찬가지로 Pd는 ''externals'' 또는 객체의 모듈 코드 기반을 가지고 있어 소프트웨어로 작성된 프로그램의 구성 요소로 사용된다. 이를 통해 API를 통해 프로그램을 임의로 확장할 수 있으며, 개발자는 C, 파이썬, Ruby, 스킴, 루아, Tcl 등 다양한 프로그래밍 언어로 작성된 외부 모듈(externals)을 활용하거나, 자체 제어 및 오디오 루틴을 추가할 수 있다.[3] 그러나 Pd는 프로그래밍 언어이기도 하다. Pd로 작성된 모듈식 재사용 가능한 코드 단위("패치" 또는 "추상화")는 독립 실행형 프로그램으로 사용되며, Pd 사용자 커뮤니티 간에 자유롭게 공유된다. Pd를 효과적으로 사용하는 데 다른 프로그래밍 기술은 필요하지 않다.

3. 언어 기능

맥스 (Max)와 마찬가지로, Pd는 데이터 흐름 프로그래밍 언어이다. 대부분의 DSP 소프트웨어와 마찬가지로, 데이터가 전달되는 두 가지 주요 속도가 있는데, 일반적으로 초당 44,100개의 샘플인 샘플 (오디오) 속도와 64개 샘플당 1블록의 제어 속도이다. 제어 메시지와 오디오 신호는 일반적으로 화면 상단에서 하단으로 인렛과 아울렛을 통해 연결된 "객체" 사이를 흐른다.

Pd는 메시지, 객체, 아톰, 주석의 네 가지 기본 텍스트 엔티티를 지원한다.[1]

3. 1. 아톰

퓨어 데이터(Pd)에서 가장 기본적인 데이터 단위이며, 부동 소수점, 심볼 또는 데이터 구조에 대한 포인터로 구성된다.[1] Pd에서 모든 숫자는 32비트 부동 소수점으로 저장된다.[1] 데이터는 파일에서 읽어오거나, FireWire, USB, 네트워크 등에서 OSC을 경유하여 오디오 보드나 MIDI를 읽어오거나, 즉석에서 생성할 수 있다. 결과를 테이블에 보관하여 이를 새로운 입력으로 사용할 수도 있다.

3. 2. 메시지

메시지는 하나 이상의 아톰으로 구성되며, 객체에 대한 지침을 제공한다. 내용이 없는 특별한 메시지는 '뱅(bang)'이라고 부르며, 데이터 흐름을 시작시키는 시작 버튼과 같은 역할을 한다.[1]

3. 3. 객체

퓨어 데이터(Pd)는 메시지, 객체, 아톰, 주석의 네 가지 기본 유형의 텍스트 엔티티를 지원한다.[4] 객체는 기본적인 수학, 논리, 비트 단위 연산부터 웨이블렛 오실레이터, 고속 푸리에 변환(fft~), 필터 등 오디오 처리(DSP) 기능(물결표(~) 기호로 지정)까지 다양하다.[4]

퓨어 데이터 객체. 상자 오른쪽에 있는 텍스트 문자열은 주석입니다.

3. 3. 1. 데이터 입력 및 처리

데이터는 파일에서 로드하거나, 오디오 보드, MIDI, Open Sound Control(OSC)을 통해 FireWire, USB 또는 네트워크 연결을 통해 읽어오거나, 즉석에서 생성하여 테이블에 저장할 수 있으며, 이 테이블은 다시 읽어 오디오 신호 또는 제어 데이터로 사용할 수 있다. 아톰이란, Pd(Pure Data)에서의 기본 데이터 단위로, 부동 소수점 수 또는 심볼, 아니면 다른 데이터 구조로의 포인터 중 하나이다.[4] Pd에서는 모든 수치가 32비트 부동 소수점 수이다.[4] 입력 데이터는 파일, FireWire, USB, 네트워크 등에서 OpenSound Control(OSC)을 경유하여 오디오 보드나 MIDI를 읽어오거나, 그 자리에서 생성할 수 있다.[4] 그리고, 결과를 테이블에 보관하여 이를 새로운 입력으로 사용할 수도 있다.[4]

4. 데이터 구조

퓨어 데이터(Pd)는 그래픽 자료 구조를 도입하여 이전 버전과 차별화된다. 밀러 퍼켓(Miller Puckette)은 사용자가 원하는 데이터를 자유롭게 표시하고 디스플레이와 연결할 수 있도록 극도로 구조화되지 않은 환경을 제공하는 것을 목표로 Pd를 설계했다.[4]

Pd는 자료 구조를 시각적으로 표현할 수 있으며, 데이터는 편집, 파일 가져오기, 알고리즘 생성, 사운드 및 데이터 스트림 분석 등 다양한 방식으로 생성될 수 있다.[4]

4. 1. 다양한 활용

Pd의 전신과 비교했을 때 Pd의 주요 혁신 중 하나는 그래픽 자료 구조의 도입이다. 이는 악보 구성, 이벤트 시퀀싱, Pd 패치를 위한 시각 자료 제작, 심지어 Pd의 GUI 확장 등 다양한 방식으로 사용될 수 있다.[4]

Pd의 이름처럼, 자료 구조를 통해 Pd 사용자는 음악 데이터에 대한 임의로 복잡한 정적 표현뿐만 아니라 동적 또는 애니메이션 그래픽 표현을 만들 수 있다. C 구조체와 마찬가지로, Pd의 구조체는 데이터 구조의 시각적 모양을 설명하거나, 반대로 Pd 패치의 메시지와 오디오 신호를 제어하기 위한 매개변수로 사용될 수 있는 플로트, 심볼 및 배열 데이터의 모든 조합으로 구성된다.[4]

Hans-Christoph Steiner의 ''[http://at.or.at/hans/solitude Solitude]''를 위한 악보, Pd의 자료 구조를 사용하여 제작됨.


Pd의 특기할 만한 기능은 자료 구조를 시각적으로 표현할 수 있다는 것이다. 이는 작곡이나 이벤트 순서 정하기부터 시각적인 작품을 만들거나, Pd 자체의 GUI를 확장하는 등 다양한 응용을 생각할 수 있다.[4]

Pure Data(순수한 데이터)라는 이름처럼, Pd의 자료 구조는 음악 데이터를 정지 화상 또는 동영상으로 표현할 수 있다. C 언어의 구조체처럼 Pd의 자료 구조는 다양한 데이터로 구성될 수 있으며, 자료 구조의 시각화를 통해 자료 구조로 파라미터를 지정하거나, Pd 패치 내에서 메시지나 음성 신호를 제어할 수 있다.[4]

4. 2. C 구조체와의 유사성

C 구조체와 마찬가지로, Pd의 구조체는 플로트, 심볼 및 배열 데이터의 조합으로 구성되며, 데이터 구조의 시각적 모양을 설명하거나, 반대로 Pd 패치의 메시지와 오디오 신호를 제어하기 위한 매개변수로 사용될 수 있다.[4]

4. 3. 그래픽 표현

데이터 구조는 정적 또는 동적 그래픽 표현을 만들 수 있다. Pd의 주요 혁신 중 하나는 그래픽 자료 구조의 도입이었다. 이는 악보를 구성하고, 이벤트를 시퀀싱하고, Pd 패치를 위한 시각 자료를 만들거나 심지어 Pd의 GUI를 확장하는 등 다양한 방식으로 사용될 수 있다.[4]

Pd의 이름에 걸맞게, 자료 구조를 통해 Pd 사용자는 음악 데이터에 대한 임의로 복잡한 정적 표현뿐만 아니라 동적 또는 애니메이션 그래픽 표현을 만들 수 있다. C 구조체와 마찬가지로, Pd의 구조체는 플로트, 심볼 및 배열 데이터의 모든 조합으로 구성된다.

5. 언어 한계

퓨어 데이터(Pd)는 객체 지향 개념 구현에 몇 가지 제한이 있다.[5] 예를 들어, 생성자 함수가 없어 대규모 병렬 프로세스를 생성하고 조작하기 어렵고, 배열 등의 엔티티는 패치 인스턴스 ID를 전달해야 하므로 네임스페이스 충돌에 취약하다.

5. 1. 병렬 처리

강력한 언어임에도 불구하고, 퓨어 데이터(Pd)는 객체 지향 개념 구현에 몇 가지 제한 사항이 있다.[5] 예를 들어, 생성자 함수가 없기 때문에 대규모 병렬 프로세스를 생성하고 조작하는 것(스폰 등)이 불가능하여 매우 어렵다. 또한, 퓨어 데이터의 배열 및 기타 엔티티는 패치 인스턴스 ID를 전달하는 것이 추가적인 단계이며 때로는 수행하기 어려워 네임스페이스 충돌에 취약하다.

5. 2. 네임스페이스 충돌

강력한 언어임에도 불구하고, 퓨어 데이터(Pd)는 객체 지향 개념 구현에 몇 가지 제한 사항이 있다.[5] 퓨어 데이터의 배열 및 기타 엔티티는 패치 인스턴스 ID를 전달하는 것이 추가적인 단계이며 때로는 수행하기 어려워 네임스페이스 충돌에 취약하다.

6. 퓨어 데이터 활용 프로젝트

Pd는 비디오 게임 오디오 프로토타입 제작에 사용되었다. EAPd는 일렉트로닉 아츠(EA)에서 사용되는 Pd의 내부 버전이며, 스포어에 내장되었다.[7] 리액터블(Reactable)[6], RjDj등이 Pd를 사운드 엔진으로 내장하고 있다. 또한, 퓨어데이터는 네트워크 퍼포먼스에도 사용되었으며, 이는 Networked Resources for Collaborative Improvisation (NRCI) Library에서 확인할 수 있다.[8]

6. 1. 리액터블(Reactable)

리액터블(Reactable)[6]은 퓨어 데이터를 사운드 엔진으로 내장하고 있는 테이블 인터페이스이다.

6. 2. RjDj

리액터블(Reactable)과 개발이 중단된 아이폰 앱 RjDj는 모두 퓨어 데이터(Pd)를 사운드 엔진으로 내장하고 있다.[6]

6. 3. 비디오 게임 오디오

EAPd는 일렉트로닉 아츠(EA)에서 사용되는 Pd의 내부 버전으로, EA의 스포어에도 내장되었다.[7]

6. 4. 네트워크 퍼포먼스

퓨어 데이터는 네트워크 퍼포먼스에도 사용되었으며, 이는 Networked Resources for Collaborative Improvisation (NRCI) Library에서 확인할 수 있다.[8]

7. 코드 예시

패치 1: 퓨어 데이터의 헬로 월드 프로그램.


첫 번째 패치는 "hello world"를 디스플레이에 출력한다.[1] 두 번째 패치는 채널 1에서 들어오는 신호에 잔향을 적용한 다음 채널 1과 2에서 내보낸다.[1] 더 복잡한 세번째 패치는 백색 잡음을 9000 Hz (Q 값 20)에서 필터링한 다음, 0.5초 동안 매 초마다 페이드 인 및 아웃한다. 퓨어 데이터에서 시간은 밀리초 단위로 측정되므로 '1000'은 1초이고 '500'은 0.5초이다.[1]

참조

[1] 웹사이트 Software by Miller Puckette http://msp.ucsd.edu/[...] 2022-01-14
[2] 논문 The patcher Proceedings of International Computer Music Conference
[3] 웹사이트 FAQ: Max 4 - Cycling '74 http://cycling74.com[...] 2017-01-05
[4] 문서 Pd Documentation Chapter 2 — 2.9. Data structures http://crca.ucsd.edu[...]
[5] 웹사이트 Possibilities#2: Audio Layer https://pedrolopesre[...] 2010-03-02
[6] 웹사이트 ICMC2005: The ReacTable http://modin.yuri.at[...] Music Technology Group/IUA, Universitat Pompeu Fabra
[7] 웹사이트 Gamespy: The Beat Goes on: Dynamic Music in Spore http://pc.gamespy.co[...] IGN Entertainment, Inc 2008-02-20
[8] 웹사이트 Networked Resources for Collaborative Improvisation (NRCI) https://ccrma.stanfo[...] Department of Music, Stanford University
[9] 문서 http://puredata.info[...]
[10] 문서 http://puredata.info[...]
[11] 웹인용 Software by Miller Puckette http://msp.ucsd.edu/[...] 2022-01-14



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com