Difference between revisions of "DevICT presentation on Pd"

From MakeICT Wiki
Jump to navigationJump to search
Line 57: Line 57:
 
= Example: video =
 
= Example: video =
 
  vblank_mode=0 glxgears
 
  vblank_mode=0 glxgears
* Hello World video
+
* Hello World video
* 60 fps (and prove it with toggle, then a counter)
+
* 60 fps (and prove it with toggle, then a counter)
* [fullscreen 1(
+
* [fullscreen 1(
* add [osc~] and [snapshot~]
+
* add [osc~] and [snapshot~]
  
 
= Concepts =
 
= Concepts =

Revision as of 14:06, 26 February 2015

Still need to prepare

  • keyboard demo?
  • banana demo?
  • color tracker demo?

Bring

  • Amplified speakers
  • Dongle for VGA
  • Laptop and power supply
  • Makey clone
  • PS3eye
  • power strip?

Kick it off

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.

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]

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

Local

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