DevICT presentation on Pd
From MakeICT Wiki
Revision as of 13:01, 26 February 2015 by John Harrison (talk | contribs)
Contents
Demo(s)
- color tracker?
- polysynth with Makey?
- video scratcher?
- Cyrille's stuff?
- Marco's stuff?
What is Pd?
- Dataflow
- Created by mathematician/violinist: Miller Puckette
- While the idea of dataflow was new, the language itself follows models of other languages intended for sound synth
- Max/MSP is the big corporate cousin
- Open Source/cross platform
- Pd-vanilla vs. Pd-extended
- Audio only vs. openGL (Gem) and friends
- Matrix manipulation (iemmatrix)
- Physical Modeling library (pmpd)
- Careful: not everything in Pd follows the Pd-vanilla model. :-/
- Another alternative: Pd-L2Ork
- Actively developed
- Linux only
Overview of Pd-extended:
I will sloppily use the terms 'Pd' and 'Pd-extended' interchangeably unless I don't
- Pd is a dataflow language and uses the metaphor of connecting objects to each other.
- Pd also uses the metaphor of an instrument
- Edit and performance mode
- Switching between the two modes (ctrl-e)
- Know at any time which mode you are in by looking at the cursor.
- Edit and performance mode
Example1: audio
- Build 'A' with [osc~] and [dac~]
- Show canvas help, then interactive object help
- talk about tilde
- keyboard shortcuts
- inlets, outlets, creation arguments
- Add volume control *~, number box
- line~, snapshot~
- audio streams (sig~) vs. control
- bang~
- add freq slider with line~
- make a note
Example2: audio
- audio scratcher
- arrays
- use [tabread] and [tabwrite] to show that it really is an array
- substitute [table]
- arrays
Example: video
vblank_mode=0 glxgears * Hello World video * 60 fps (and prove it with toggle, then a counter) * [fullscreen 1( * add [osc~] and [snapshot~]
Concepts
- Hot and cold inlets
- [+ 3]
- feed one number to 2 [+] objects
- subpatches
- abstractions
- [s] and [r] (and [s~] and [r~])
- numbers, sliders, etc. getting messages
- building your own objects in C
Fun Stuff
- pmpd (47 scanned synth)
- interfacing with the arduino and friends
- dynamic patching: Manuals -> pd-msg -> 1.msg_and_patch -> 1.2 create_patch.pd
Pd in the wild
- Pd is really 2 separate programs
- libPd is the sound synthesizer separated from the interface
- libPd runs on iOS, Android. There's even a book about using it on mobile devices.
- Pd vanilla is popular on rPi as an open-ended all-inclusive DIY effect box. One example
Examples
- Steve's stuff
Resources for Going On
The World
- Reference help in Pd
- http://msp.ucsd.edu/ Miller's resources] (especially the book)
- Pd email list and forum
Local
- very basic video tutorials by...wellll....modest forbids.
- Wichita Patcher's Circle and our email list
- Local demos and resources from WPC
- me me me (me)
Alternatives to Pd
not listed in any particular order
- Processing:
- A text-based language based on Java.
- This is great for visuals but its core does not support sound.
- The tutorials and examples are wonderful, with tons of interactive help
- Open Source: runs on Linux
- My own informal experience suggests this runs slower than Pd but I haven't verified this
- Max/MSP
- commercial cousin of Pure Data
- Larger user base than Pure Data
- Probably the documentation is better than with Pd
- This is getting some attention at WSU School of Music (Aleks Sternfeld-Dunn)
- will not run on Linux
- SuperCollider
- Text based, powerful for sound
- Not sure if it supports video
- Written originally for OSX and popular with the Mac
- Csound
- The grandaddy audio synthesis language
- Supports some video with extensions.
- If you miss the days of assembly language, this is your baby
- Open Frameworks
- Probably the fastest execution?
- Good developer community
- Runs on everything including your phone
- Open Source: runs on Linux