43:
739:
1199:
116:
1355:
677:
705:
34:
502:
613:
1350:
602:
graphical data structure, somewhat like a data structure out of the C programming language, but with a facility for attaching shapes and colors to the data, so that the user can visualize and/or edit it. The data itself can be edited from scratch or can be imported from files, generated algorithmically, or derived from analyses of incoming sounds or other data streams.
693:
430:
of the data flowing between operations. In Pure Data and Max, functions or "objects" are linked or "patched" together in a graphical environment which models the flow of the control and audio. Unlike the original version of Max, however, Pd was always designed to do control-rate and audio processing
493:, and many others. However, Pd is also a programming language. Modular, reusable units of code written natively in Pd, called "patches" or "abstractions", are used as standalone programs and freely shared among the Pd user community, and no other programming skill is required to use Pd effectively.
601:
Pd is designed to offer an extremely unstructured environment for describing data structures and their graphical appearance. The underlying idea is to allow the user to display any kind of data he or she wants to, associating it in any way with the display. To accomplish this Pd introduces a
631:
Though a powerful language, Pd has certain limitations in its implementation of object-oriented concepts. For example, it is very difficult to create massively parallel processes because instantiating and manipulating large lists of objects (spawning, etc.) is impossible due to a lack of a
597:, Pd's structs are composed of any combination of floats, symbols, and array data that can be used as parameters to describe the visual appearance of the data structure or, conversely, to control messages and audio signals in a Pd patch. In Puckette's words:
527:, a symbol, or a pointer to a data structure (in Pd, all numbers are stored as 32-bit floats). Messages are composed of one or more atoms and provide instructions to objects. A special type of message with null content called a
520:, usually at 44,100 samples per second, and control rate, at 1 block per 64 samples. Control messages and audio signals generally flow from the top of the screen to the bottom between "objects" connected via inlets and outlets.
405:
Pd is natively designed to enable live collaboration across networks or the
Internet, allowing musicians connected via LAN or even in disparate parts of the globe to create music together in real time. Pd uses
632:
constructor function. Further, Pd arrays and other entities are susceptible to namespace collisions because passing the patch instance ID is an extra step and is sometimes difficult to accomplish.
726:(with a Q of 20), then fades it in and out each second over the course of a half second. In Pd, time is measured in milliseconds, thus the '1000' is one second and the '500' is a half second.
1482:
1354:
949:
Danks, M. (1997). Real-time image and video processing in Gem. In: Proceedings of the
International Computer Music Conference, pp. 220–223. International Computer Music Association.
367:, and is to some degree interoperable with Max/MSP, the commercial predecessor to the Max language. They may be collectively discussed as members of the Patcher family of languages.
593:
Living up to Pd's name, data structures enable Pd users to create arbitrarily complex static as well as dynamic or animated graphical representations of musical data. Much like
946:
Danks, M. (1996). The graphics environment for max. In: Proceedings of the
International Computer Music Conference, pp. 67–70. International Computer Music Association.
586:. These can be used in a large variety of ways, from composing musical scores, sequencing events, to creating visuals to accompany Pd patches or even extending Pd's
523:
Pd supports four basic types of text entities: messages, objects, atoms, and comments. Atoms are the most basic unit of data in Pd, and they consist of either a
959:
Puckette, M. S. (1997). Pure data. In: Proceedings of the
International Computer Music Conference, pp. 224–227. International Computer Music Association.
1502:
651:
Pd has been used for prototyping audio for video games by a number of audio designers. For example, EAPd is the internal version of Pd that is used at
375:
448:
469:
or objects which are used as building blocks for programs written in the software. This makes the program arbitrarily extensible through a public
574:, or network connection, or generated on the fly, and stored in tables, which can then be read back and used as audio signals or control data.
546:
operators found in every programming language to general and specialized audio-rate DSP functions (designated by a tilde (~) symbol), such as
640:
Pure Data has been used as the basis of a number of projects, as a prototyping language and a sound engine. The table interface called the
387:
1532:
1517:
772:
391:
1646:
1396:
1174:
1507:
1226:
956:. Proceedings, International Computer Music Conference. San Francisco: International Computer Music Association, pp. 269–272.
1636:
379:
1641:
1631:
1163:
1144:
1122:
1078:
1055:
1032:
1009:
986:
662:
Pd has also been used for networked performance, in the
Networked Resources for Collaborative Improvisation (NRCI) Library.
1611:
744:
752:
371:
1616:
402:
graphics, images, etc., in realtime with extensive possibilities for interactivity with audio, external sensors, etc.
1553:
1100:
126:
866:
719:
The second patch applies reverberation to the incoming signal from channel 1, then emits it on channels 1 and 2.
1626:
704:
482:
478:
676:
1621:
1401:
1391:
1219:
95:
42:
305:
207:
131:
69:
1589:
1497:
1176:
Pd
Elementary Method (in Farsi) - PDF and patches (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست)
486:
341:
1381:
692:
510:
1279:
1274:
474:
462:
444:
1548:
1212:
656:
432:
777:
551:
582:
One of the key innovations in Pd over its predecessors has been the introduction of graphical
1492:
535:
824:
Puckette, M. (1988). The patcher. In
Proceedings of International Computer Music Conference.
889:
423:
321:
171:
8:
1563:
1522:
683:
547:
115:
1198:
1309:
1269:
854:
563:
517:
594:
1254:
1159:
1140:
1118:
1096:
1074:
1070:
1051:
1028:
1005:
982:
440:
324:
project with a large developer base working on new extensions. It is released under
1406:
978:
953:
543:
539:
258:
233:
138:
1416:
1299:
970:
652:
455:
436:
309:
188:
183:
58:
531:
is used to initiate events and push data into flow, much like pushing a button.
1411:
1376:
1339:
1324:
1319:
1304:
1235:
1024:
1001:
907:
583:
524:
473:, and encourages developers to add their own control and audio routines in the
427:
419:
360:
313:
238:
1294:
1605:
1451:
1264:
1132:
1110:
1088:
1047:
555:
834:
1582:
1334:
1314:
1249:
925:
888:
Jorda, Sergi; Kaltenbrunner, Martin; Geiger, Gunter; Bencina, Ross (2005).
505:
Pure Data objects. The text strings to the right of the boxes are comments.
325:
263:
143:
20:
1558:
1456:
1421:
1289:
1284:
104:
1259:
458:'s MSP extensions to the Max language to do software audio processing.
317:
53:
1477:
1441:
1436:
762:
641:
800:
19:
This article is about programming language. For storage server, see
1446:
1137:
Pure Data as a Meta-Compositional
Instrument: Compositions Volume 2
1115:
Pure Data as a Meta-Compositional
Instrument: Compositions Volume 1
767:
567:
513:
176:
1067:
Making
Musical Apps – Real-time audio synthesis on Android and iOS
320:
works. While Puckette is the main author of the program, Pd is an
1431:
1329:
1204:
757:
349:
345:
289:
246:
33:
618:
1527:
1386:
1349:
887:
509:
Like Max, Pd is a dataflow programming language. As with most
399:
722:
The last, more complex patch filters white noise at 9000
558:. Data can be loaded from file, read in from an audio board,
477:
programming language, or with the help of other externals, in
359:
Pd is very similar in scope and design to Puckette's original
1512:
1487:
1371:
723:
374:(GEM) external, and externals designed to work with it (like
364:
333:
329:
250:
242:
926:"Networked Resources for Collaborative Improvisation (NRCI)"
501:
1461:
645:
612:
559:
451:
407:
398:, Windows), it is possible to create and manipulate video,
353:
1093:
Composition: Pure Data as a Meta-Compositional Instrument
587:
571:
490:
470:
337:
454:
which was used for Max/FTS). Pd code forms the basis of
1192:
895:. Music Technology Group/IUA, Universitat Pompeu Fabra.
516:, there are two primary rates at which data is passed:
274:
154:
734:
716:
The first patch prints "hello world" to the display.
998:
Loadbang: Programming Electronic Music in Pure Data
930:
Center for Computer Research in Music and Acoustics
908:"Gamespy: The Beat Goes on: Dynamic Music in Spore"
426:languages. Dataflow languages model a program as a
855:Pd Documentation Chapter 2 — 2.9. Data structures
1603:
394:(as n-dimensional matrix processing, for Linux,
47:Pure Data with many patches open (netpd project)
795:
793:
1220:
975:The Theory and Technique of Electronic Music
790:
1518:Center for New Music and Audio Technologies
932:. Department of Music, Stanford University.
635:
1227:
1213:
1197:
1172:
773:Comparison of audio synthesis environments
114:
41:
32:
1156:Pd Recipe Book ―Pure Dataではじめるサウンドプログラミング
1153:
1064:
655:(EA). It has also been embedded into EA
534:Pd's native objects range from the basic
995:
969:
611:
500:
1041:
1018:
626:
1604:
413:
312:in the 1990s for creating interactive
1208:
1131:
1109:
1087:
905:
710:Patch 3: Filters and data flow in Pd.
622:, created using Pd's data structures.
745:Free and open-source software portal
671:Pure Data visual code sample patches
496:
753:Graphics Environment for Multimedia
616:Score for Hans-Christoph Steiner's
372:Graphics Environment for Multimedia
363:program, developed while he was at
13:
1234:
963:
577:
435:(CPU), rather than offloading the
213:0.53-2 / March 15, 2022
75:0.53-2 / March 15, 2023
14:
1658:
1493:Computer Music Center at Columbia
1184:
648:both embed Pd as a sound engine.
1647:Software that uses Tk (software)
1353:
1348:
906:Kosak, Dave (20 February 2008).
737:
703:
691:
675:
665:
554:(fft~), and a range of standard
1637:Software using the BSD license
918:
899:
881:
867:"Possibilities#2: Audio Layer"
859:
848:
827:
818:
1:
1642:Free software programmed in C
940:
801:"Software by Miller Puckette"
698:Patch 2: Reverberation in Pd.
644:and the abandoned iPhone app
1632:Visual programming languages
1173:Habibdoost, Mansoor (2013).
835:"FAQ: Max 4 - Cycling '74"
7:
1612:Audio programming languages
996:Kreidler, Johannes (2009).
730:
306:visual programming language
132:Visual programming language
16:Visual programming language
10:
1663:
1590:Mortuos Plango, Vivos Voco
1498:Experimental Music Studios
410:as a networking protocol.
18:
1617:Electronic music software
1574:
1541:
1470:
1382:Composers Desktop Project
1362:
1346:
1242:
1065:Brinkmann, Peter (2012).
914:. IGN Entertainment, Inc.
890:"ICMC2005: The ReacTable"
447:(DSP) board (such as the
370:With the addition of the
288:
283:
269:
257:
232:
228:
206:
202:
194:
182:
170:
149:
137:
125:
94:
90:
68:
64:
52:
40:
31:
1280:Gottfried Michael Koenig
1042:Farnell, Andy J (2010).
783:
636:Projects using Pure Data
445:digital signal processor
1554:Artificial intelligence
1549:Algorithmic composition
1154:Matsumura, Sei (2012).
952:Puckette, M. S. (1996)
433:central processing unit
77:; 17 months ago
971:Puckette, Miller Smith
778:List of music software
623:
610:
552:Fast Fourier transform
506:
1627:Software synthesizers
1019:Pd~graz, ed. (2006).
615:
599:
504:
422:are both examples of
215:; 2 years ago
627:Language limitations
424:dataflow programming
1622:Free audio software
1528:Oberlin TIMARA Labs
1523:Princeton Sound Lab
684:Hello world program
518:sample (audio) rate
461:Like Max, Pd has a
414:Similarities to Max
348:. Ports exist for
195:First appeared
167:
28:
1310:Jean-Claude Risset
1270:Giuseppe di Giugno
624:
564:Open Sound Control
507:
189:Miller S. Puckette
165:
54:Original author(s)
26:
1599:
1598:
1564:Digital synthesis
1255:Richard Boulanger
1165:978-4-86100-780-4
1146:978-3-659-96899-0
1124:978-3-659-88634-8
1080:978-1-4493-1490-3
1057:978-0-262-01441-0
1034:978-3-936000-37-5
1011:978-3-936000-57-3
988:978-981-270-541-9
607:Miller Puckette,
550:oscillators, the
497:Language features
441:signal processing
295:
294:
163:
162:
1654:
1407:Laptop orchestra
1357:
1352:
1229:
1222:
1215:
1206:
1205:
1201:
1196:
1195:
1193:Official website
1180:
1169:
1150:
1128:
1106:
1084:
1061:
1038:
1023:. Wolke Verlag,
1015:
1000:. Wolke Verlag,
992:
979:World Scientific
934:
933:
922:
916:
915:
903:
897:
896:
894:
885:
879:
878:
876:
874:
863:
857:
852:
846:
845:
843:
841:
831:
825:
822:
816:
815:
813:
811:
797:
747:
742:
741:
740:
707:
695:
679:
608:
566:(OSC) through a
397:
385:
376:Pure Data Packet
279:
276:
223:
221:
216:
184:Designed by
168:
164:
159:
156:
118:
113:
110:
108:
106:
85:
83:
78:
45:
36:
29:
25:
1662:
1661:
1657:
1656:
1655:
1653:
1652:
1651:
1602:
1601:
1600:
1595:
1570:
1559:Sound synthesis
1537:
1466:
1417:MIDI controller
1364:
1358:
1344:
1300:Miller Puckette
1238:
1233:
1191:
1190:
1187:
1166:
1147:
1125:
1103:
1081:
1058:
1044:Designing Sound
1035:
1012:
989:
966:
964:Further reading
943:
938:
937:
924:
923:
919:
904:
900:
892:
886:
882:
872:
870:
865:
864:
860:
853:
849:
839:
837:
833:
832:
828:
823:
819:
809:
807:
805:Miller Puckette
799:
798:
791:
786:
743:
738:
736:
733:
711:
708:
699:
696:
687:
680:
668:
653:Electronic Arts
638:
629:
609:
606:
584:data structures
580:
578:Data structures
499:
456:David Zicarelli
437:sound synthesis
416:
395:
383:
310:Miller Puckette
273:
224:
219:
217:
214:
153:
121:
103:
86:
81:
79:
76:
59:Miller Puckette
48:
24:
17:
12:
11:
5:
1660:
1650:
1649:
1644:
1639:
1634:
1629:
1624:
1619:
1614:
1597:
1596:
1594:
1593:
1586:
1578:
1576:
1572:
1571:
1569:
1568:
1567:
1566:
1556:
1551:
1545:
1543:
1539:
1538:
1536:
1535:
1530:
1525:
1520:
1515:
1510:
1505:
1500:
1495:
1490:
1485:
1480:
1474:
1472:
1468:
1467:
1465:
1464:
1459:
1454:
1449:
1444:
1439:
1434:
1429:
1424:
1419:
1414:
1409:
1404:
1399:
1394:
1389:
1384:
1379:
1374:
1368:
1366:
1360:
1359:
1347:
1345:
1343:
1342:
1340:Iannis Xenakis
1337:
1332:
1327:
1322:
1320:Laurie Spiegel
1317:
1312:
1307:
1305:Roger Reynolds
1302:
1297:
1292:
1287:
1282:
1277:
1272:
1267:
1262:
1257:
1252:
1246:
1244:
1240:
1239:
1236:Computer music
1232:
1231:
1224:
1217:
1209:
1203:
1202:
1186:
1185:External links
1183:
1182:
1181:
1170:
1164:
1151:
1145:
1133:Barkl, Michael
1129:
1123:
1111:Barkl, Michael
1107:
1101:
1089:Barkl, Michael
1085:
1079:
1071:O'Reilly Media
1062:
1056:
1039:
1033:
1021:bang Pure Data
1016:
1010:
993:
987:
965:
962:
961:
960:
957:
950:
947:
942:
939:
936:
935:
917:
898:
880:
869:. 2 March 2010
858:
847:
826:
817:
788:
787:
785:
782:
781:
780:
775:
770:
765:
760:
755:
749:
748:
732:
729:
728:
727:
720:
717:
713:
712:
709:
702:
700:
697:
690:
688:
681:
674:
672:
667:
664:
637:
634:
628:
625:
604:
579:
576:
498:
495:
428:directed graph
418:Pure Data and
415:
412:
314:computer music
293:
292:
286:
285:
281:
280:
271:
267:
266:
261:
255:
254:
239:Cross-platform
236:
230:
229:
226:
225:
212:
210:
208:Stable release
204:
203:
200:
199:
196:
192:
191:
186:
180:
179:
174:
161:
160:
151:
147:
146:
141:
135:
134:
129:
123:
122:
120:
119:
100:
98:
92:
91:
88:
87:
74:
72:
70:Stable release
66:
65:
62:
61:
56:
50:
49:
46:
38:
37:
15:
9:
6:
4:
3:
2:
1659:
1648:
1645:
1643:
1640:
1638:
1635:
1633:
1630:
1628:
1625:
1623:
1620:
1618:
1615:
1613:
1610:
1609:
1607:
1592:
1591:
1587:
1585:
1584:
1580:
1579:
1577:
1573:
1565:
1562:
1561:
1560:
1557:
1555:
1552:
1550:
1547:
1546:
1544:
1540:
1534:
1531:
1529:
1526:
1524:
1521:
1519:
1516:
1514:
1511:
1509:
1506:
1504:
1501:
1499:
1496:
1494:
1491:
1489:
1486:
1484:
1481:
1479:
1476:
1475:
1473:
1469:
1463:
1460:
1458:
1455:
1453:
1452:SuperCollider
1450:
1448:
1445:
1443:
1440:
1438:
1435:
1433:
1430:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1403:
1400:
1398:
1395:
1393:
1390:
1388:
1385:
1383:
1380:
1378:
1375:
1373:
1370:
1369:
1367:
1361:
1356:
1351:
1341:
1338:
1336:
1333:
1331:
1328:
1326:
1323:
1321:
1318:
1316:
1313:
1311:
1308:
1306:
1303:
1301:
1298:
1296:
1293:
1291:
1288:
1286:
1283:
1281:
1278:
1276:
1275:Charles Dodge
1273:
1271:
1268:
1266:
1265:John Chowning
1263:
1261:
1258:
1256:
1253:
1251:
1248:
1247:
1245:
1241:
1237:
1230:
1225:
1223:
1218:
1216:
1211:
1210:
1207:
1200:
1194:
1189:
1188:
1178:
1177:
1171:
1167:
1161:
1157:
1152:
1148:
1142:
1138:
1134:
1130:
1126:
1120:
1116:
1112:
1108:
1104:
1102:3-8383-1647-9
1098:
1094:
1090:
1086:
1082:
1076:
1072:
1068:
1063:
1059:
1053:
1049:
1048:The MIT Press
1045:
1040:
1036:
1030:
1026:
1022:
1017:
1013:
1007:
1003:
999:
994:
990:
984:
981:, Singapore.
980:
976:
972:
968:
967:
958:
955:
951:
948:
945:
944:
931:
927:
921:
913:
909:
902:
891:
884:
868:
862:
856:
851:
836:
830:
821:
806:
802:
796:
794:
789:
779:
776:
774:
771:
769:
766:
764:
761:
759:
756:
754:
751:
750:
746:
735:
725:
721:
718:
715:
714:
706:
701:
694:
689:
685:
678:
673:
670:
669:
666:Code examples
663:
660:
658:
654:
649:
647:
643:
633:
621:
620:
614:
603:
598:
596:
591:
589:
585:
575:
573:
569:
565:
561:
557:
553:
549:
545:
541:
537:
532:
530:
526:
521:
519:
515:
512:
503:
494:
492:
488:
484:
480:
476:
472:
468:
465:code base of
464:
459:
457:
453:
450:
446:
442:
438:
434:
429:
425:
421:
411:
409:
403:
401:
393:
390:for Windows,
389:
381:
377:
373:
368:
366:
362:
357:
355:
351:
347:
343:
339:
335:
331:
328:. It runs on
327:
323:
319:
315:
311:
308:developed by
307:
303:
299:
291:
287:
284:Influenced by
282:
278:
272:
268:
265:
262:
260:
256:
252:
248:
244:
240:
237:
235:
231:
227:
211:
209:
205:
201:
197:
193:
190:
187:
185:
181:
178:
175:
173:
169:
158:
152:
148:
145:
142:
140:
136:
133:
130:
128:
124:
117:
112:
102:
101:
99:
97:
93:
89:
73:
71:
67:
63:
60:
57:
55:
51:
44:
39:
35:
30:
22:
1588:
1583:Illiac Suite
1581:
1575:Compositions
1426:
1363:Programs and
1335:Barry Vercoe
1315:Curtis Roads
1250:Marc Battier
1175:
1155:
1136:
1114:
1092:
1066:
1043:
1020:
997:
974:
929:
920:
911:
901:
883:
871:. Retrieved
861:
850:
838:. Retrieved
829:
820:
808:. Retrieved
804:
661:
650:
639:
630:
617:
600:
592:
581:
536:mathematical
533:
528:
522:
508:
466:
460:
431:on the host
417:
404:
369:
358:
326:BSD-3-Clause
301:
297:
296:
264:BSD-3-Clause
144:BSD-3-Clause
21:IBM PureData
1457:TidalCycles
1422:Music Mouse
1365:instruments
1295:Gérard Pape
1290:Max Mathews
1285:Paul Lansky
382:for Linux,
322:open-source
1606:Categories
1542:Techniques
1260:David Cope
941:References
810:14 January
388:framestein
318:multimedia
220:2022-03-15
111:/pure-data
109:/pure-data
96:Repository
82:2023-03-15
1478:Bell Labs
1442:Riffusion
1437:Radiodrum
1427:Pure Data
954:Pure Data
873:5 January
840:5 January
763:reacTable
682:Patch 1:
642:Reactable
595:C structs
548:wavetable
467:externals
298:Pure Data
166:Pure Data
27:Pure Data
1447:Sonic Pi
1135:(2018).
1113:(2018).
1091:(2012).
973:(2007).
768:Puredyne
731:See also
619:Solitude
605:—
568:FireWire
514:software
396:Mac OS X
392:GridFlow
384:Mac OS X
275:puredata
177:Dataflow
172:Paradigm
155:puredata
1432:MUSIC-N
1412:Max/MSP
1330:Trimpin
1325:The Hub
1025:Hofheim
1002:Hofheim
912:GameSpy
758:Max/MSP
556:filters
544:bitwise
540:logical
463:modular
350:FreeBSD
346:Windows
342:Android
304:) is a
290:Patcher
270:Website
259:License
247:Windows
218: (
150:Website
139:License
80: (
1488:CEMAMu
1471:Places
1387:Csound
1243:People
1162:
1143:
1121:
1099:
1077:
1054:
1031:
1008:
985:
686:in Pd.
562:, via
542:, and
483:Scheme
479:Python
400:OpenGL
105:github
1513:IRCAM
1483:CCRMA
1392:FAUST
1372:ChucK
893:(PDF)
784:Notes
657:Spore
525:float
449:Ariel
443:to a
380:PiDiP
365:IRCAM
334:MacOS
330:Linux
277:.info
251:Linux
243:macOS
157:.info
1508:ICMA
1503:ICEM
1462:UPIC
1402:Kyma
1397:HMSL
1377:Cmix
1160:ISBN
1141:ISBN
1119:ISBN
1097:ISBN
1075:ISBN
1052:ISBN
1029:ISBN
1006:ISBN
983:ISBN
875:2017
842:2017
812:2022
646:RjDj
560:MIDI
529:bang
452:ISPW
439:and
408:FUDI
354:IRIX
352:and
344:and
316:and
198:1996
127:Type
107:.com
1533:IEM
588:GUI
572:USB
511:DSP
491:Tcl
487:Lua
471:API
420:Max
386:),
361:Max
338:iOS
1608::
1158:.
1139:.
1117:.
1095:.
1073:.
1069:.
1050:.
1046:.
1027:.
1004:.
977:.
928:.
910:.
803:.
792:^
724:Hz
659:.
590:.
570:,
538:,
489:,
485:,
481:,
378:/
356:.
340:,
336:,
332:,
302:Pd
249:,
245:,
234:OS
1228:e
1221:t
1214:v
1179:.
1168:.
1149:.
1127:.
1105:.
1083:.
1060:.
1037:.
1014:.
991:.
877:.
844:.
814:.
475:C
300:(
253:)
241:(
222:)
84:)
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.