Czyste dane - Pure Data

Czyste dane
Pure Data z wieloma otwartymi łatami (pokazuje projekt netpd).png
Pure Data z wieloma otwartymi łatami (projekt netpd)
Pierwotny autor (autorzy) Pucketka Millera
Wersja stabilna
0,51-4 / 28 grudnia 2020 ; 6 miesięcy temu ( 28.12.2020 )
Magazyn Edytuj to na Wikidata
Rodzaj Wizualny język programowania
Licencja BSD-3-klauzula
Stronie internetowej puredata .info
Czyste dane
Paradygmat Przepływ danych
Zaprojektowany przez Miller S. Puckette
Po raz pierwszy pojawiły się 1996
Wersja stabilna
0,51-4 / 28 grudnia 2020 ; 6 miesięcy temu ( 28.12.2020 )
OS Wieloplatformowy
Licencja BSD-3-klauzula
Stronie internetowej puredata .info
Wpływem
Łatacz

Pure Data ( Pd ) to wizualny język programowania opracowany przez Millera Puckette w latach 90. do tworzenia interaktywnej muzyki komputerowej i dzieł multimedialnych . Podczas gdy Puckette jest głównym autorem programu, Pd jest projektem open-source z dużą bazą programistów pracujących nad nowymi rozszerzeniami. Jest wydany na mocy klauzuli BSD-3 . Działa na systemach Linux , Mac OS X , iOS , Android i Windows . Porty istnieją dla FreeBSD i IRIX .

Pd jest bardzo podobny pod względem zakresu i konstrukcji do oryginalnego programu Max Puckette , opracowanego podczas jego pracy w IRCAM i jest do pewnego stopnia interoperacyjny z Max/MSP, komercyjnym poprzednikiem języka Max. Mogą być wspólnie omawiane jako członkowie rodziny języków Patcher.

Z dodatkiem zewnętrznego środowiska graficznego dla multimediów (GEM) i zewnętrznych zaprojektowanych do pracy z nim (takich jak Pure Data Packet / PiDiP dla Linux, Mac OS X ), framestein dla Windows, GridFlow (jako n-wymiarowe przetwarzanie macierzy, dla Linux, Mac OS X , Windows), możliwe jest tworzenie i manipulowanie wideo, grafiką OpenGL , obrazami itp. w czasie rzeczywistym z rozbudowanymi możliwościami interaktywności z dźwiękiem, czujnikami zewnętrznymi itp.

Pd jest natywnie zaprojektowany, aby umożliwić współpracę na żywo w sieciach lub Internecie, umożliwiając muzykom połączonym za pośrednictwem sieci LAN, a nawet w różnych częściach świata, wspólne tworzenie muzyki w czasie rzeczywistym. Pd używa FUDI jako protokołu sieciowego.

Podobieństwa do Maxa

Pure Data i Max to przykłady języków programowania przepływu danych . W takich językach funkcje lub „obiekty” są łączone lub „łatane” razem w środowisku graficznym, które modeluje przepływ sterowania i dźwięku. Jednak w przeciwieństwie do oryginalnej wersji Maxa, Pd zawsze był projektowany do wykonywania kontroli szybkości i przetwarzania dźwięku na jednostce centralnej (CPU) hosta , zamiast przenosić syntezę dźwięku i przetwarzanie sygnału na płytę procesora sygnału cyfrowego (DSP) ( takich jak Ariel ISPW, który był używany do Max/FTS). Kod Pd stanowi podstawę rozszerzeń MSP Davida Zicarelli do języka Max do programowego przetwarzania dźwięku.

Podobnie jak Max, Pd ma modułową bazę kodu zewnętrznych lub obiektów, które są używane jako klocki dla programów napisanych w oprogramowaniu. To sprawia, że ​​program można dowolnie rozszerzać poprzez publiczne API i zachęca programistów do dodawania własnych procedur sterujących i audio w języku programowania C lub z pomocą innych zewnętrznych, w Pythonie , Scheme , Lua , Tcl i wielu innych. Jednak Pd jest również językiem programowania. Modułowe, wielokrotnego użytku jednostki kodu napisane natywnie w Pd, zwane „łatkami” lub „abstrakcjami”, są używane jako samodzielne programy i swobodnie udostępniane społeczności użytkowników Pd, a do efektywnego korzystania z Pd nie są wymagane żadne inne umiejętności programistyczne.

Funkcje językowe

Image
Obiekty czystych danych. Ciągi tekstowe po prawej stronie pól to komentarze.

Podobnie jak Max, Pd jest językiem programowania przepływu danych. Podobnie jak w przypadku większości programów DSP , istnieją dwie podstawowe szybkości przesyłania danych: częstotliwość próbkowania (audio) , zwykle 44 100 próbek na sekundę, oraz częstotliwość kontrolna, przy 1 bloku na 64 próbki. Komunikaty sterujące i sygnały dźwiękowe zazwyczaj przepływają od góry ekranu do dołu między „obiektami” połączonymi przez wloty i wyloty.

Pd obsługuje cztery podstawowe typy jednostek tekstowych: wiadomości, obiekty, atomy i komentarze. Atomy są najbardziej podstawową jednostką danych w Pd i składają się z liczby zmiennoprzecinkowej , symbolu lub wskaźnika do struktury danych (w Pd wszystkie liczby są przechowywane jako 32-bitowe liczby zmiennoprzecinkowe ). Komunikaty składają się z jednego lub więcej atomów i dostarczają instrukcji obiektom. Do inicjowania zdarzeń i wypychania danych do przepływu, podobnie jak naciśnięcie przycisku, używany jest specjalny rodzaj wiadomości o zerowej treści, zwany hukiem .

Natywne obiekty Pd obejmują zarówno podstawowe operatory matematyczne , logiczne i bitowe występujące w każdym języku programowania, jak i ogólne i wyspecjalizowane funkcje DSP szybkości audio (oznaczone symbolem tyldy (~), takie jak oscylatory falowe , szybka transformata Fouriera (fft). ~) oraz szereg standardowych filtrów . Dane mogą być ładowane z pliku, odczytywane z karty audio, MIDI , przez Open Sound Control (OSC) przez FireWire , USB lub połączenie sieciowe lub generowane w locie i przechowywane w tabelach, które można następnie odczytać i używane jako sygnały audio lub dane sterujące.

Struktury danych

Jedną z kluczowych innowacji w Pd w porównaniu z poprzednikami było wprowadzenie graficznych struktur danych . Można ich używać na wiele różnych sposobów, od komponowania partytur muzycznych, sekwencjonowania wydarzeń, do tworzenia wizualizacji towarzyszących łatkom Pd, a nawet rozszerzania GUI Pd .

Zgodnie z nazwą Pd struktury danych umożliwiają użytkownikom Pd tworzenie dowolnie złożonych, statycznych, dynamicznych lub animowanych graficznych reprezentacji danych muzycznych. Podobnie jak struktury C, struktury Pd składają się z dowolnej kombinacji elementów pływających, symboli i danych tablicowych, które mogą być użyte jako parametry do opisania wizualnego wyglądu struktury danych lub odwrotnie, do sterowania wiadomościami i sygnałami audio w łacie Pd. Mówiąc słowami Puckette:

Pd został zaprojektowany, aby oferować wyjątkowo nieustrukturyzowane środowisko do opisywania struktur danych i ich graficznego wyglądu. Podstawową ideą jest umożliwienie użytkownikowi wyświetlania dowolnych danych, które chce, kojarząc je w dowolny sposób z wyświetlaczem. Aby to osiągnąć, Pd wprowadza graficzną strukturę danych, nieco podobną do struktury danych z języka programowania C, ale z funkcją dołączania kształtów i kolorów do danych, tak aby użytkownik mógł je wizualizować i/lub edytować. Same dane mogą być edytowane od podstaw lub mogą być importowane z plików, generowane algorytmicznie lub wyprowadzane z analiz przychodzących dźwięków lub innych strumieni danych.

—  Puckette Millera,
Image
Punktacja dla Samotności Hansa-Christopha Steinera , stworzona przy użyciu struktur danych Pd.

Ograniczenia językowe

Choć potężny język, Pd ma pewne ograniczenia w implementacji pojęć obiektowych. Na przykład bardzo trudno jest tworzyć procesy masowo równoległe, ponieważ tworzenie instancji i manipulowanie dużymi listami obiektów (spawnowanie itp.) jest niemożliwe z powodu braku funkcji konstruktora. Ponadto tablice Pd i inne jednostki są podatne na kolizje przestrzeni nazw, ponieważ przekazanie identyfikatora wystąpienia poprawki jest dodatkowym krokiem i czasami jest trudne do wykonania.

Projekty wykorzystujące Pure Data

Pure Data był używany jako podstawa wielu projektów, jako język prototypowania i silnik dźwięku. Interfejs tabeli o nazwie Reactable i porzucona aplikacja na iPhone'a RjDj zawierają Pd jako silnik dźwiękowy.

Pd został wykorzystany do prototypowania dźwięku do gier wideo przez wielu projektantów dźwięku. Na przykład EAPd to wewnętrzna wersja Pd używana w Electronic Arts (EA). Został również wbudowany w EA Spore .

Pd został również wykorzystany do wydajności sieciowej w bibliotece zasobów sieciowych do improwizacji współpracy (NRCI).

Przykłady kodu

  1. Pierwsza łatka wyświetla na wyświetlaczu napis „hello world”.
  2. Druga łata stosuje pogłos do przychodzącego sygnału z kanału 1, a następnie emituje go na kanałach 1 i 2.
  3. Ostatnia, bardziej złożona łatka filtruje biały szum o częstotliwości 9000  Hz (przy Q 20), a następnie w ciągu pół sekundy zanika go w każdej sekundzie. W Pd czas jest mierzony w milisekundach, więc „1000” to jedna sekunda, a „500” to pół sekundy.

Zobacz też

Uwagi

Bibliografia

  • Danks, M. (1996). Środowisko graficzne dla max. W: Proceedings of the International Computer Music Conference, s. 67–70. Międzynarodowe Stowarzyszenie Muzyki Komputerowej.
  • Danks, M. (1997). Przetwarzanie obrazu i wideo w czasie rzeczywistym w Gem. W: Proceedings of the International Computer Music Conference, s. 220–223. Międzynarodowe Stowarzyszenie Muzyki Komputerowej.
  • Puckette, MS (1996) Pure Data . Materiały, Międzynarodowa Konferencja Muzyki Komputerowej. San Francisco: Międzynarodowe Stowarzyszenie Muzyki Komputerowej, s. 269-272.
  • Puckette, MS (1997). Czyste dane. W: Proceedings of the International Computer Music Conference, s. 224–227. Międzynarodowe Stowarzyszenie Muzyki Komputerowej.

Dalsza lektura

Linki zewnętrzne