Difference between revisions of "DevICT presentation on Pd"

From MakeICT Wiki
Jump to navigationJump to search
Line 1: Line 1:
== General Outline ==
+
 
=== Demo(s) ===
+
= Demo(s) =
 
* color tracker?
 
* color tracker?
 
* polysynth with Makey?
 
* polysynth with Makey?
Line 7: Line 7:
 
* Marco's stuff?
 
* Marco's stuff?
  
=== What is Pd? ===
+
= What is Pd? =
 
* Dataflow
 
* Dataflow
 
* Created by mathematician/violinist: Miller Puckette
 
* Created by mathematician/violinist: Miller Puckette
Line 21: Line 21:
 
** Actively developed
 
** Actively developed
 
** Linux only
 
** Linux only
=== Overview of Pd-extended: ===
+
= Overview of Pd-extended: =
 
''I will sloppily use the terms 'Pd' and 'Pd-extended' interchangeably unless I don't''
 
''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 is a dataflow language and uses the metaphor of connecting objects to each other.
Line 30: Line 30:
 
*** Switching between the two modes (ctrl-e)
 
*** Switching between the two modes (ctrl-e)
 
*** Know at any time which mode you are in by looking at the cursor.
 
*** Know at any time which mode you are in by looking at the cursor.
=== Example1: audio ===
+
= Example1: audio =
 
* Build 'A' with [osc~] and [dac~]
 
* Build 'A' with [osc~] and [dac~]
 
** Show canvas help, then interactive object help
 
** Show canvas help, then interactive object help
Line 42: Line 42:
 
* add freq slider with line~
 
* add freq slider with line~
 
* make a note
 
* make a note
=== Example2: audio ===
+
= Example2: audio =
 
* audio scratcher
 
* audio scratcher
 
** arrays
 
** arrays
 
*** use [tabread] and [tabwrite] to show that it really is an array
 
*** use [tabread] and [tabwrite] to show that it really is an array
 
*** substitute [table]
 
*** substitute [table]
=== Example: video ===
+
= Example: video =
 
  vblank_mode=0 glxgears
 
  vblank_mode=0 glxgears
 
  * Hello World video
 
  * Hello World video
Line 54: Line 54:
 
  * add [osc~] and [snapshot~]
 
  * add [osc~] and [snapshot~]
  
=== Concepts ===
+
= Concepts =
 
* Hot and cold inlets
 
* Hot and cold inlets
 
** [+ 3]
 
** [+ 3]
Line 63: Line 63:
 
** numbers, sliders, etc. getting messages
 
** numbers, sliders, etc. getting messages
 
* building your own objects in C
 
* building your own objects in C
=== Fun Stuff ===
+
= Fun Stuff =
 
* pmpd (47 scanned synth)
 
* pmpd (47 scanned synth)
 
* interfacing with the arduino and friends
 
* interfacing with the arduino and friends
 
* dynamic patching: Manuals -> pd-msg -> 1.msg_and_patch -> 1.2 create_patch.pd
 
* dynamic patching: Manuals -> pd-msg -> 1.msg_and_patch -> 1.2 create_patch.pd
 
+
= libPd =
 +
* Pd is really 2 separate programs
 +
* libPd is the sound synthesizer separated from the interface
 +
* libPd runs on iOS, Android. There's even [http://shop.oreilly.com/product/0636920022503.do a book] about using it on mobile devices.
 
=== Examples ===
 
=== Examples ===
 
* Steve's stuff
 
* Steve's stuff

Revision as of 11:44, 26 February 2015

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.

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

libPd

  • 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.

Examples

  • Steve's stuff

Going On

  • Wichita Patcher's Circle
  • Local demos
  • audio:
   pmpd
   interfacing with the arduino and friends
   Pitch shifting
   dynamic patching

Where to from here?

  • video tutorials
  • Reference help in Pd
  • Miller's book
  • Pd list and forum
  • local list
  • Wichita Patcher's Circle
  • 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
  • Pure Data:
    • Graphically based
    • Draw a diagram of what you want
    • Data flow
    • Open Source: runs on Linux
    • Originally audio only. Supports video with extended library (Gem)
  • 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
  • Csound
    • The grandaddy audio synthesis language
    • Supports some video with extensions.
    • Not the best starter language?
  • Open Frameworks
    • The fastest, bestest, and hardest
    • Usually overkill
    • Runs on everything including your phone
    • Open Source: runs on Linux