Difference between revisions of "DevICT presentation on Pd"

From MakeICT Wiki
Jump to navigationJump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
== General Outline ==
+
= Still need to prepare =
=== Demo(s) ===
+
* keyboard demo?
* color tracker?
+
* banana demo?
 +
* color tracker demo?
 +
 
 +
= Bring =
 +
* Amplified speakers
 +
* Dongle for VGA
 +
* Laptop and power supply
 +
* Makey clone
 +
* PS3eye
 +
* power strip?
 +
= Kick it off =
 +
* [https://vimeo.com/tag:cyrille+henry/page:4 Cyrille video]
 
* polysynth with Makey?
 
* polysynth with Makey?
 
* video scratcher?
 
* video scratcher?
* Cyrille's stuff?
+
= What is Pd? =
* Marco's stuff?
+
* Dataflow or patching language
 
+
* Created by mathematician/violinist: [http://en.wikipedia.org/wiki/Miller_Puckette Miller Puckette]
=== What is Pd? ===
+
* While Miller can be credited for popularizing the idea of dataflow, Pd itself follows models of other languages intended for sound synth
* Dataflow
+
* [https://cycling74.com/products/max/ Max/MSP] is the big corporate cousin, actually the older brother
* 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
 
* Open Source/cross platform
* Pd-vanilla vs. Pd-extended
+
* [http://puredata.info/ Pd-vanilla vs. Pd-extended]
 
** Audio only vs. openGL (Gem) and friends
 
** Audio only vs. openGL (Gem) and friends
 
** Matrix manipulation (iemmatrix)
 
** Matrix manipulation (iemmatrix)
Line 21: Line 29:
 
** 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 27: Line 36:
 
** [http://www.weblogsinc.com/common/images/7291976986464054.JPG?0.6019339706458597 another modular synthesizer]
 
** [http://www.weblogsinc.com/common/images/7291976986464054.JPG?0.6019339706458597 another modular synthesizer]
 
* Pd also uses the metaphor of an instrument
 
* Pd also uses the metaphor of an instrument
 +
** Combining the [http://goodrichviolinshop.com/dave_0744adj.jpg instrument maker] and [http://www.newrepublic.com/sites/default/files/kid-violin.jpg instrument player]
 
** Edit and performance mode
 
** Edit and performance mode
 
*** 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 38: Line 49:
 
* 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~
 
* 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 =
* <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~])
=== Going On ===
+
** numbers, sliders, etc. getting messages
* Wichita Patcher's Circle
+
* building your own objects in C
* Local demos
+
* single threadedness [pd~], and [netsend] [netreceive]
* audio:
+
* cuda
 
 
    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
+
= Fun Stuff =
    motion tracking
+
* pmpd (47 scanned synth)
    color tracking
+
* interfacing with the arduino and friends
    pmpd
+
* dynamic patching: Manuals -> pd-msg -> 1.msg_and_patch -> 1.2 create_patch.pd
    interfacing with the arduino and friends
+
= Pd in the wild =
    Kinec
+
* Pd is really 2 separate programs
    Pitch shifting
+
* libPd is the sound synthesizer separated from the interface
    dynamic patching
+
* libPd runs on iOS, Android. There's even [http://shop.oreilly.com/product/0636920022503.do a book] about using it on mobile devices.
=== Open Source Alternatives to Pd ===
+
* Pd vanilla is popular on rPi as an open-ended all-inclusive DIY effect box. [https://www.youtube.com/watch?v=NwJNeouLqgQ One example]
* Pd's community of developers is small
+
= Examples =
* Pd performs well but there are more performant options if speed is critical
+
* Steve's stuff
* The programming style of Pd is unique. It makes for very fast prototyping. Still, you may hate it.
+
= Resources for Going On =
==== Processing ====
+
== The World ==
==== Open Frameworks ====
+
* Reference help in Pd
==== RTCMix ====
+
* http://msp.ucsd.edu/ Miller's resources] (especially the book)
 +
* Pd [http://puredata.info/community/lists email list] and [http://forum.pdpatchrepo.info/ forum]
 +
* [http://pd.klingt.org/pd_ring/info.html The weird, old Pd ring]
 +
== Local ==
 +
* [http://cratel.wichita.edu/cratel/PdVideoTutorial very basic video tutorials] by...wellll....modest forbids.
 +
* [http://makeict.org/wichita-patchers-circle/ Wichita Patcher's Circle] and our email list
 +
* [http://makeict.org/wiki/index.php/Wichita_Patcher%27s_Circle Local demos and resources from WPC]
 +
* 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
 +
** 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

Latest revision as of 13:37, 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 or patching language
  • Created by mathematician/violinist: Miller Puckette
  • While Miller can be credited for popularizing the idea of dataflow, Pd itself follows models of other languages intended for sound synth
  • Max/MSP is the big corporate cousin, actually the older brother
  • 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

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
  • single threadedness [pd~], and [netsend] [netreceive]
  • cuda

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