순수 데이터
Pure Data원저작자 | 밀러 푸켓 |
---|---|
안정된 릴리스 | |
저장소 | |
유형 | 비주얼 프로그래밍 언어 |
면허증. | BSD-3-Clause |
웹 사이트 | puredata |
패러다임 | 데이터 흐름 |
---|---|
설계자 | 밀러 S.푸켓 |
처음 등장한 | 1996 |
안정된 릴리스 | 0.52-2 / 2022년 3월 , 전( |
OS | 크로스 플랫폼(macOS, Windows, Linux) |
면허증. | BSD-3-Clause |
웹 사이트 | puredata |
영향을 받다 | |
패처 |
Pure Data(Pd)는 Miller Puckette가 인터랙티브한 컴퓨터 음악과 멀티미디어 작업을 만들기 위해 1990년대에 개발한 비주얼 프로그래밍 언어입니다.Puckette가 이 프로그램의 주요 작성자인 반면, Pd는 새로운 확장을 위한 대규모 개발자 기반을 가진 오픈 소스 프로젝트입니다.BSD-3-Clause로 출시됩니다.Linux, MacOS, iOS, Android 및 Windows에서 실행됩니다.FreeBSD 및 IRIX용 포트가 있습니다.
PD는 IRCAM에서 개발한 Puckette의 오리지널 Max 프로그램과 범위와 디자인이 매우 유사하며 Max 언어의 상용 전신인 Max/MSP와 어느 정도 상호 운용할 수 있습니다.이들은 패처어족의[2] 일원으로서 집단적으로 논의될 수 있다.
GEM(Graphics Environment for Multimedia)의 외부기능을 추가함으로써 (Pure Data Packet/PiDiP(Linux, Mac OS X용), Windows용 Framestein, GridFlow(Linux, Mac OS X용 n차원 매트릭스 처리로서)를 작성할 수 있습니다.오디오, 외부 센서 등과 대화할 수 있는 광범위한 가능성을 실시간으로 제공합니다.
PD는 기본적으로 네트워크 또는 인터넷을 통해 라이브 콜라보레이션이 가능하도록 설계되어 LAN을 통해 접속된 음악가들이 실시간으로 음악을 함께 만들 수 있습니다.PD는 FUDI를 네트워킹 프로토콜로 사용합니다.
최대값과의 유사점
Pure Data와 Max는 모두 데이터 흐름 프로그래밍 언어의 예입니다.데이터 흐름 언어는 작업 간에 흐르는 데이터의 방향 그래프로 프로그램을 모델링합니다.Pure Data와 Max에서 함수 또는 "객체"는 제어와 오디오의 흐름을 모델링하는 그래픽 환경에서 함께 연결되거나 "패치"됩니다.단, Max의 원래 버전과 달리 Pd는 항상 호스트 중앙 처리 장치(CPU)에서 제어 속도 및 오디오 처리를 수행하도록 설계되어 있습니다.이는 사운드 합성 및 신호 처리를 DSP 보드(Max/FTS에 사용된 Ariel ISPW 등)에 오프로드하는 것이 아닙니다.PD 코드는 소프트웨어 오디오 [3]처리를 수행하기 위해 David Zicarelli가 Max 언어로 확장한 MSP의 기초를 형성합니다.
Max와 마찬가지로 Pd는 소프트웨어로 작성된 프로그램의 구성 요소로 사용되는 외부 또는 객체의 모듈식 코드 베이스를 가지고 있습니다.이를 통해 프로그램은 공개 API를 통해 임의로 확장 가능하며 개발자는 C 프로그래밍 언어 또는 Python, Scheme, Lua, Tcl 및 기타 많은 외부 언어의 제어 및 오디오 루틴을 추가할 수 있습니다.그러나 PD는 프로그래밍 언어이기도 합니다.기본적으로 "패치" 또는 "추상"이라고 불리는 PD에서 작성된 재사용 가능한 모듈식 코드 단위는 독립 실행형 프로그램으로 사용되며 PD 사용자 커뮤니티 간에 자유롭게 공유됩니다. 또한 PD를 효과적으로 사용하기 위해 다른 프로그래밍 기술이 필요하지 않습니다.
언어 기능
Max와 마찬가지로 Pd는 데이터 흐름 프로그래밍 언어입니다.대부분의 DSP 소프트웨어와 마찬가지로 데이터 전송에는 샘플(오디오) 레이트(통상 초당 44,100 샘플)와 64 샘플당1 블록의 제어 레이트)의 2가지 주요 레이트가 있습니다.제어 메시지와 오디오 신호는 일반적으로 입구와 출구를 통해 연결된 "물체" 사이에서 화면 상단에서 하단으로 흐릅니다.
PD는 메시지, 개체, 원자 및 주석의 네 가지 기본 텍스트 엔터티를 지원합니다.원자는 Pd에서 가장 기본적인 데이터 단위이며, 플로트, 기호 또는 데이터 구조로의 포인터로 구성됩니다(Prot에서는 모든 숫자가 32비트 플로트로 저장됩니다).메시지는 하나 이상의 원자로 구성되며 객체에 명령을 제공합니다.bang이라고 불리는 늘 콘텐츠를 가진 특별한 유형의 메시지는 버튼을 누르는 것과 같이 이벤트를 시작하고 데이터를 흐름으로 푸시하는 데 사용됩니다.
PD의 네이티브 객체는 모든 프로그래밍 언어에서 볼 수 있는 기본적인 수학, 논리 및 비트 연산자에서 웨이브 테이블 발진기, 고속 푸리에 변환(fft~) 및 표준 필터 범위와 같은 일반적이고 특수한 오디오 속도 DSP 함수(칠데(~)로 지정됨)에 이르기까지 다양합니다.데이터는 파일에서 로드하거나, Open Sound Control(OSC; 오픈 사운드 컨트롤)을 통해 FireWire, USB 또는 네트워크 연결을 통해 오디오 보드, MIDI에서 읽을 수 있으며, 즉석에서 생성되어 테이블에 저장될 수 있습니다. 이 경우 데이터를 다시 읽어내 오디오 신호 또는 제어 데이터로 사용할 수 있습니다.
데이터 구조
이전 제품보다 PD의 주요 혁신 중 하나는 그래픽 데이터 구조의 도입이었습니다.악보 작성, 이벤트 시퀀스 작성, PD 패치에 부수되는 비주얼 작성, PD의 GUI 확장 등 다양한 방법으로 사용할 수 있습니다.
PD의 이름에 부합하는 데이터 구조를 통해 PD 사용자는 음악 데이터의 동적 또는 애니메이션 그래픽 표현뿐만 아니라 임의로 복잡한 정적 표현을 작성할 수 있습니다.C 구조와 마찬가지로 Pd의 구조는 데이터 구조의 시각적 외관을 기술하거나 반대로 Pd 패치의 메시지와 오디오 신호를 제어하기 위해 매개 변수로 사용할 수 있는 플로트, 기호 및 배열 데이터의 모든 조합으로 구성됩니다.푸켓의 말을 빌리면:
PD는 데이터 구조와 그 그래픽 외관을 기술하기 위해 매우 비정형적인 환경을 제공하도록 설계되었습니다.기본적인 생각은 사용자가 원하는 모든 종류의 데이터를 표시와 관련지어 표시할 수 있도록 하는 것입니다.이를 위해 Programming Language의 데이터 구조처럼 사용자가 시각화 및/또는 편집할 수 있도록 형태와 색상을 데이터에 부가하는 기능을 갖춘 그래픽 데이터 구조를 도입한다.데이터 자체는 처음부터 편집하거나 파일에서 가져오거나 알고리즘으로 생성하거나 들어오는 소리 또는 기타 데이터 스트림 분석에서 파생할 수 있습니다.
--
언어 제한
강력한 언어이긴 하지만, Pd는 객체 지향 [5]개념의 구현에 일정한 한계를 가지고 있습니다.예를 들어 컨스트럭터 함수가 부족하기 때문에 대량의 객체 목록(산란 등)을 인스턴스화하고 조작하는 것은 불가능하기 때문에 대규모 병렬 프로세스를 작성하는 것은 매우 어렵습니다.또한 패치 인스턴스 ID를 전달하는 것은 추가 단계이며 경우에 따라서는 달성하기 어렵기 때문에 PdName 어레이 및 기타 엔티티가 네임스페이스 충돌에 노출될 수 있습니다.
순수 데이터를 사용한 프로젝트
Pure Data는 프로토타이핑 언어 및 사운드 엔진으로 많은 프로젝트의 기반으로 사용되어 왔습니다.리액터블이라고[6] 불리는 테이블 인터페이스와 버려진 아이폰 앱 RjDj는 둘 다 Pd를 사운드 엔진으로 내장하고 있다.
PD는 다수의 오디오 디자이너에 의해 비디오 게임용 오디오 프로토타이핑에 사용되어 왔습니다.예를 들어 EAPd는 Electronic Arts(EA)에서 사용되는 PD의 내부 버전입니다.또한 EA [7]포자에 내장되어 있습니다.
PD는 NRCI(Networked Resources for Collaborative Instruction) [8]라이브러리에서도 네트워크 퍼포먼스에 사용되고 있습니다.
코드 예시
패치 1: PD의 Hello World 프로그램.
- 첫 번째 패치는 모니터에 "hello world"라고 출력합니다.
- 두 번째 패치는 채널 1에서 들어오는 신호에 잔향을 적용한 다음 채널 1과 2에서 잔향을 방출합니다.
- 마지막으로 보다 복잡한 패치는 9000Hz(Q20)에서 백색 노이즈를 필터링하여 0.5초 동안 매초 페이드아웃합니다.Pd에서 시간은 밀리초 단위로 측정되므로 '1000'은 1초, '500'은 0.5초입니다.
「 」를 참조해 주세요.
메모들
- ^ a b "Software by Miller Puckette". Miller Puckette. Retrieved 14 January 2022.
- ^ 푸켓, M. (1988)파쳐.국제 컴퓨터 음악 회의의 속행.
- ^ "FAQ: Max 4 - Cycling '74". Retrieved 5 January 2017.
- ^ PD 매뉴얼 제2장 - 2.9. 9.데이터 구조
- ^ "Possibilities#2: Audio Layer". 2 March 2010. Retrieved 5 January 2017.
- ^ Jorda, Sergi; Kaltenbrunner, Martin; Geiger, Gunter; Bencina, Ross (2005). "ICMC2005: The ReacTable" (PDF). Music Technology Group/IUA, Universitat Pompeu Fabra.
- ^ Kosak, Dave (20 February 2008). "Gamespy: The Beat Goes on: Dynamic Music in Spore". GameSpy. IGN Entertainment, Inc.
- ^ "Networked Resources for Collaborative Improvisation (NRCI)". Center for Computer Research in Music and Acoustics. Department of Music, Stanford University.
레퍼런스
- 댕크스, M. (1996년)최대한의 그래픽스 환경.인: 국제 컴퓨터 음악 회의의 진행 67-70페이지. 페이지.국제 컴퓨터 음악 협회
- 댕크스, M. (1997년)Gem에서의 실시간 이미지 및 비디오 처리.인: 국제 컴퓨터 음악 회의의 진행, 페이지 220-223.국제 컴퓨터 음악 협회
- Puckette, M. S. (1996) 순수 데이터.국제 컴퓨터 음악 회의.샌프란시스코:국제 컴퓨터 음악 협회, 페이지 269~272.
- 푸켓, M.S. (1997년)순수한 데이터인: 국제 컴퓨터 음악 회의의 진행, 페이지 224–227.국제 컴퓨터 음악 협회
추가 정보
- Puckette, Miller Smith (2007). The Theory and Technique of Electronic Music. World Scientific, Singapore. ISBN 978-981-270-541-9.
- Kreidler, Johannes (2009). Loadbang: Programming Electronic Music in Pure Data. Wolke Verlag, Hofheim. ISBN 978-3-936000-57-3.
- Pd~graz, ed. (2006). bang Pure Data. Wolke Verlag, Hofheim. ISBN 978-3-936000-37-5.
- Farnell, Andy J (2010). Designing Sound. The MIT Press. ISBN 978-0-262-01441-0.
- Brinkmann, Peter (2012). Making Musical Apps – Real-time audio synthesis on Android and iOS. O'Reilly Media. ISBN 978-1-4493-1490-3.
- Barkl, Michael (2012). Composition: Pure Data as a Meta-Compositional Instrument. ISBN 3-8383-1647-9.
- Barkl, Michael (2018). Pure Data as a Meta-Compositional Instrument: Compositions Volume 1. ISBN 978-3-659-88634-8.
- Barkl, Michael (2018). Pure Data as a Meta-Compositional Instrument: Compositions Volume 2. ISBN 978-3-659-96899-0.
- Matsumura, Sei (2012). Pd Recipe Book ―Pure Dataではじめるサウンドプログラミング. ISBN 978-4-86100-780-4.
- Habibdoost, Mansoor (2013). Pd Elementary Method (in Farsi) - PDF and patches (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست).