Difference between revisions of "DevICT presentation on Pd"

From MakeICT Wiki
Jump to navigationJump to search
Line 38: Line 38:
 
* Add volume control *~, number box
 
* Add volume control *~, number box
 
* line~, snapshot~
 
* line~, snapshot~
 +
** audio streams (sig~) vs. control
 
* bang~
 
* bang~
 
* add freq slider with line~
 
* add freq slider with line~
Line 44: Line 45:
 
* 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 ===
* <code>vblank_mode=0 glxgears</code>
+
vblank_mode=0 glxgears
 +
* Hello World video
 +
* 60 fps (and prove it with toggle, then a counter)
 +
* [fullscreen 1(
 +
* add [osc~] and [snapshot~]
  
 
=== Concepts ===
 
=== Concepts ===
 
* Hot and cold inlets
 
* Hot and cold inlets
 +
** [+ 3]
 +
** feed one number to 2 [+] objects
 
* subpatches
 
* subpatches
 
* abstractions
 
* abstractions
* building your own objects
+
** [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
 +
 
 +
=== Examples ===
 +
* Steve's stuff
 
=== Going On ===
 
=== Going On ===
 
* Wichita Patcher's Circle
 
* Wichita Patcher's Circle
Line 59: Line 75:
 
* audio:
 
* audio:
  
    osc~, array, volume, metro, bang
 
    video:
 
        camera
 
        projector
 
        screen
 
        power
 
        [pix_film], [pix_video], pix_buffer read/write
 
    control stuff: a counter
 
 
 
    Pd examples at Wichita Patcher's Circle
 
    motion tracking
 
    color tracking
 
 
     pmpd
 
     pmpd
 
     interfacing with the arduino and friends
 
     interfacing with the arduino and friends
    Kinec
 
 
     Pitch shifting
 
     Pitch shifting
 
     dynamic patching
 
     dynamic patching
=== Open Source Alternatives to Pd ===
+
 
* Pd's community of developers is small
+
=== Where to from here? ===
* Pd performs well but there are more performant options if speed is critical
+
* video tutorials
* The programming style of Pd is unique. It makes for very fast prototyping. Still, you may hate it.
+
* Reference help in Pd
==== Processing ====
+
* Miller's book
==== Open Frameworks ====
+
* Pd list and forum
==== RTCMix ====
+
* local list
 +
* Wichita Patcher's Circle
 +
* me me me (me)
 +
=== Alternatives to Pd ===
 +
''not listed in any particular order''
 +
* [http://www.processing.org/ Processing]:
 +
** A text-based language based on Java.
 +
** This is great for visuals but its core does not support sound.
 +
** The tutorials and [http://www.processing.org/examples/ 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

Revision as of 11:37, 26 February 2015

General Outline

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

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