Difference between revisions of "Wichita Patcher's Circle"

From MakeICT Wiki
Jump to navigationJump to search
(Undo revision 4225 by James Lancaster (talk) Accidentally clicked the wrong thing.)
 
(35 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<pre style="white-space: pre-wrap;
 
white-space: -moz-pre-wrap;
 
white-space: -pre-wrap;
 
white-space: -o-pre-wrap;
 
word-wrap: break-word;">
 
 
Patching languages are visual programming languages that provide a framework for describing dataflow. They are especially suited for describing audio and video manipulations and interactivity, and they are popular among electronic artists, musicians, and composers. Common patching languages include Pure Data, Max/MSP, VVVV, and Reaktor.
 
Patching languages are visual programming languages that provide a framework for describing dataflow. They are especially suited for describing audio and video manipulations and interactivity, and they are popular among electronic artists, musicians, and composers. Common patching languages include Pure Data, Max/MSP, VVVV, and Reaktor.
  
Line 14: Line 9:
 
=== General ===
 
=== General ===
 
==== 3D models (for manipulation in OpenGL) ====
 
==== 3D models (for manipulation in OpenGL) ====
* [http://www.turbosquid.com/ Turbo Squid] - find 3d models on the web
+
{| class="wikitable"
* [http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm Teddy] - build your own 3D models with this free software
+
|[http://www.turbosquid.com/ Turbo Squid]
 +
|find 3d models on the web
 +
|-
 +
|[http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm Teddy]
 +
|build your own 3D models with this free software
 +
|}
  
 
==== Touch Interfaces ====
 
==== Touch Interfaces ====
* [http://ccv.nuigroup.com/ Community Core Vision] - open source/cross-platform solution for computer vision and machine sensing
+
{| class="wikitable"
 +
|[http://ccv.nuigroup.com/ Community Core Vision]
 +
|open source/cross-platform solution for computer vision and machine sensing
 +
|}
 +
 
 +
==== Video ====
 +
* [[Ripping youtube video/audio for Pd using VLC]]
 +
==== Webcam ====
 +
* [[ps3eye]] - Playstation 3 eye: 125fps available used for $8.99 at your local Gamestop
 +
==== Effects ====
 +
===== Pete's Plugin's =====
 +
Pete's Plugins are free opensource freeframe plugins. These are great for doing various video effects, such as on a live image feed. They can be used with Gem's [pix_freeframe]. Just stick the compiled plugins in the same directory as your patch and look at the [pix_freeframe] help for details.
 +
 
 +
Note that there is a bug in the Windows version of Gem 0.93.3 (as included in Pd-extended 0.43.4) such that Gem reports an "unknown key" error when changing the first parameter of a [pix_freeframe] plugin. This is a known bug with a [http://sourceforge.net/p/pure-data/bugs/878/ workaround]. As of the time of this writing (Feb 12, 2014) Gem 0.93.3 is the latest stable release.
 +
 
 +
In general these plugins seem a bit flakey with Gem for whatever reason. Some work well, others crash Pd, others freeze. YMMV.
 +
 
 +
* [http://petewarden.github.io/petesplugins/PluginHelp.htm Description of Plugins]
 +
* [http://www.neuromixer.com/manuals/freeframe.php PC and Mac binaries] (tested working on Win7/64 bit)
  
 
=== Pure Data ===
 
=== Pure Data ===
  
 
==== Reference ====
 
==== Reference ====
* [http://puredata.info/ Main Page]
+
{| class="wikitable"
* [http://puredata.info/community/lists Email lists]
+
|[http://puredata.info/ Main Page]
* [http://puredata.hurleur.com/ Forum]
+
|
* there is also an IRC chat room in FreeNode called #dataflow where you can ask for help. It's not an especially active room but people there are friendly and helpful
+
|-
 +
|[http://puredata.info/community/lists Email lists]
 +
|The main pd email list is extremely responsive and helpful for beginners all the way to the most advanced programmers.
 +
|-
 +
|[http://puredata.hurleur.com/ Forum]
 +
|
 +
|-
 +
|#dataflow
 +
|IRC chat room in FreeNode where you can ask for help. It's not an especially active room but people there are friendly and helpful
 +
|}
 +
 
 
==== Getting Started ====
 
==== Getting Started ====
* [http://cratel.wichita.edu/cratel/PdVideoTutorial Pd Video Tutorial Series] for absolute beginners
+
{| class="wikitable"
 +
|[http://cratel.wichita.edu/cratel/PdVideoTutorial Pd Video Tutorial Series]
 +
|for absolute beginners
 +
|}
  
 
==== Tools and Extensions ====
 
==== Tools and Extensions ====
* [http://puredata.info/Members/mtl/index_html/ mtl] - a group of abstractions that make Pure Data a lot easier!
+
{| class="wikitable"
* [http://3rdeyeanimation.blogspot.com/p/gem-engine-10.html Gem Engine] - employs 3D navigation like you know it from 3D Programs like 3Ds Max or others in GEM
+
|[http://puredata.info/Members/mtl/index_html/ mtl]
 +
|a group of abstractions that make Pure Data a lot easier!
 +
|-
 +
|[http://3rdeyeanimation.blogspot.com/p/gem-engine-10.html Gem Engine]
 +
|employs 3D navigation like you know it from 3D Programs like 3Ds Max or others in GEM
 +
|}
  
 
==== Example Patches ====
 
==== Example Patches ====
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/01/e8qs9-asciitobin.pd asciitobin.pd] Convert ASCII numbers from a serial port to numbers that Pd understands
+
===== General =====
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/01/6iqwi-draw-tails.pd draw-tails.pd] Continually takes snapshots of the last frame and mixes those with the current frame.
+
{| class="wikitable"
  * By using the mouse as a way to draw a point in the current frame, we create "tails" with mouse presses and gestures.
+
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/01/e8qs9-asciitobin.pd asciitobin.pd]
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/dtme3-color-tracking.pd color-tracking.pd] simple color tracking of one color]
+
|Convert ASCII numbers from a serial port to numbers that Pd understands
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/6umd3-color-tracking-with-multiblob.pd color-tracking-with-multiblob.pd] color tracking with multiple objects
+
|}
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/237uz-03.movement_detection-john-hack.pd 03.movement_detection-john-hack.pd] A hack of 03.movement_detection
+
===== Audio =====
  * A better example, perhaps, than what is provided in the Pd help for movement detection
+
{| class="wikitable"
* [http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/zb5xs-playing-with-sig2pix.pd playing-with-sig2pix.pd] a demo of using pix_sig2pix~ 1) to create a solid color and 2) to show how to mix with a live video feed.
+
|[http://cratel.wichita.edu/cratel/StevePd Steve Wilson's Audio Examples]
 +
|
 +
|-
 +
|[[Media:polyphonicSynth.pd|polyPhonicSynth.pd]]
 +
|Simple 4-voice synthesizer demo. This patch fails with key repeat on Windows
 +
|-
 +
|[[Media:simpleSequencer.pd|simpleSequencer.pd]]
 +
|Simple demo of sequencing 8 notes
 +
|}
 +
 
 +
===== Video =====
 +
{| class="wikitable"
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/01/6iqwi-draw-tails.pd draw-tails.pd]
 +
|Continually takes snapshots of the last frame and mixes those with the current frame. By using the mouse as a way to draw a point in the current frame, we create "tails" with mouse presses and gestures.
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/dtme3-color-tracking.pd color-tracking.pd]
 +
|simple color tracking of one color]
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/6umd3-color-tracking-with-multiblob.pd color-tracking-with-multiblob.pd]
 +
|color tracking with multiple objects
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/237uz-03.movement_detection-john-hack.pd 03.movement_detection-john-hack.pd]
 +
|A hack of 03.movement_detection. A better example, perhaps, than what is provided in the Pd help for movement detection
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/02/zb5xs-playing-with-sig2pix.pd playing-with-sig2pix.pd]
 +
|a demo of using pix_sig2pix~ 1) to create a solid color and 2) to show how to mix with a live video feed.
 +
|-
 +
|[http://cratel.wichita.edu/blogs/engr202spring2014/2014/02/11/space-command-central-video-scratcher/ video scratcher]
 +
|
 +
|-
 +
|[http://cratel.wichita.edu/blogs/engr202spring2014/2014/02/11/space-command-central-video-audio-recorder/ video recorder]
 +
|
 +
|-
 +
|[[Media:vera.zip|vera.zip]]
 +
| compressed vera.ttf needed for [text3d] on Windows machines
 +
|}
 +
 
 +
===== Pitch Shifting/Time stretching & shrinking =====
 +
{| class="wikitable"
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/03/fft-pitchshifter.pd fft-pitchshifter.pd]
 +
|fft pitchshifter engine. Put this in the directory which has the patch where you want to do the pitch shifting. This fft method tends to sound better in general than the tape roller method below, but also introduces more latency so is not always the best choice for live performance
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/03/fft-pitchshifter-example2.pd fft-pitchshifter-example2.pd]
 +
|an example patch which uses the fft pitchshifter engine
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/03/pitchshifter.pd pitchshifter.pd]
 +
|Rotating tape head method engine of pitch shifting. This has minimal latency compared to the fft method, but also introduces more apparent artifacts in general. Put this in the directory which has the patch where you want to do the pitch shifting.
 +
|-
 +
|[[Media:pitchshifter-example2.pd|pitchshifter-example2.pd]]
 +
|an example patch which uses the rotating tape head pitch shifter engine
 +
|-
 +
|[http://cratel.wichita.edu/blogs/ee577aspring2012/files/2012/03/pitch-speed-example2.pd pitch-speed-example2.pd]
 +
|time change instead of pitch shift. Uses the fft-pitchshifter engine
 +
|}
 +
 
 +
===== Interfaces =====
 +
{| class="wikitable"
 +
|[[Media:MonoSynthTouchDemo.pd|MonoSynthTouchDemo.pd]]
 +
|Simple Pd patch demoing use of [http://store.linksprite.com/makey-makey-style-touch-usb-shield-for-arduino-pcduino/ maKey-style touch shield]
 +
|-
 +
|[[Media:PolySynthTouchDemo.pd|PolySynthTouchDemo.pd]]
 +
|Same as above but slightly more complicated to allow performer to play more than one note at a time
 +
|-
 +
|[[Media:Touch2.ino|Touch2.ino]]
 +
|Arduino code used in patches above. [http://www.youtube.com/watch?v=cKrgthuZoRk Video] of the shield with using mono synth demo patch and this arduino code with Banana piano. If you don't have the arduino software installed, you will need [http://cratel.wichita.edu/cratel/temp?action=AttachFile&do=get&target=drivers.zip these drivers] to get this to work.
 +
|-
 +
|[[Media:colorTracker.pd|colorTracker.pd]]
 +
|Track and trigger events based on the movement of primary colors as seen by a webcam.
 +
|-
 +
|[[Media:colorTrackerTest.pd|colorTrackerTest.pd]]
 +
|Test code for the color tracker. The best way to understand how to use the color tracker is to watch the video of the [http://www.youtube.com/watch?v=JbtypGkdRDY color tracker with test code up close and personal.]
 +
|}
  
 
==== Local Pd classes and events ====
 
==== Local Pd classes and events ====
* [http://cratel.wichita.edu/blogs/ee577aspring2012 WSU's Spring 2012 Audio/Video class] - featuring Pd and the Arduino
+
{| class="wikitable"
* [[2014-Feb-1:Audio and video programming with Pure Data]]
+
|[[DevICT_presentation_on_Pd|devICT presentation on Pd]]
  * 3 hour workshop for absolute beginners to Pd
+
|
* [http://cratel.wichita.edu/blogs/engr202spring2014/ WSU ENGR202: Service Learning] a WSU Engr course which supports MakeAXE
+
|-
  * a project with Maize HS students
+
|[http://cratel.wichita.edu/blogs/ee577aspring2012 WSU's Spring 2012 Audio/Video class]
  * teaches them to make and perform with their own electronic audio and video instruments
+
|featuring Pd and the Arduino
 +
|-
 +
|[[2014-Feb-1:Audio and video programming with Pure Data]]
 +
|3 hour workshop for absolute beginners to Pd
 +
|-
 +
|[http://cratel.wichita.edu/blogs/engr202spring2014/ WSU ENGR202: Service Learning]
 +
|a WSU Engr course which supports MakeAXE, a project with Maize HS students that teaches them to make and perform with their own electronic audio and video instruments
 +
|}
  
 
==== Local Projects ====
 
==== Local Projects ====
 
===== John Harrison =====
 
===== John Harrison =====
* [http://www.youtube.com/watch?v=PGqSqzI-L8M Touch #2]
+
{| class="wikitable"
* [http://vimeo.com/37559491 Touch #1]
+
|[http://www.youtube.com/watch?v=PGqSqzI-L8M Touch #2]
* Still Life (artistic contributions from Hack Art Lab)
+
|
* [http://vimeo.com/37706157 Push Me Pull You] (John contributed Pd and Arduino programming to this Hack.Art.Lab project))
+
|-
* Ghost in the Machine (artistic contributions from Hack Art Lab)
+
|[http://vimeo.com/37559491 Touch #1]
 +
|
 +
|-
 +
|[http://www.youtube.com/watch?v=M6nFzBvlHrA Still Life]
 +
|(artistic contributions from Hack Art Lab)
 +
|-
 +
|[http://vimeo.com/37706157 Push Me Pull You]
 +
| (John contributed Pd and Arduino programming to this Hack.Art.Lab project)
 +
|-
 +
|[https://www.youtube.com/watch?v=QzjhI5SDjnI&feature=youtu.be&t=1m38s Ghost in the Machine]
 +
|(artistic contributions from Hack Art Lab)
 +
|}
  
 
=== Max/MSP ===
 
=== Max/MSP ===
Line 65: Line 190:
  
 
''The WPC area on MakeICT's wiki can serve as a general repository for tutorials, helpful examples, demos, etc. of various patching languages.''
 
''The WPC area on MakeICT's wiki can serve as a general repository for tutorials, helpful examples, demos, etc. of various patching languages.''
</pre>
 

Latest revision as of 19:51, 28 September 2016

Patching languages are visual programming languages that provide a framework for describing dataflow. They are especially suited for describing audio and video manipulations and interactivity, and they are popular among electronic artists, musicians, and composers. Common patching languages include Pure Data, Max/MSP, VVVV, and Reaktor.

Wichita Patcher's Circle (WPC) is a Special Interest Group of MakeICT and is supported by MakeICT's wiki as well as its own Googlegroup.

Do you use a patching language or do you want to? Are you looking for help getting started with a patching language? Maybe you are an advanced patcher and want to join our community of patchers who have been working in these languages for years? Join our conversation!


Resources

General

3D models (for manipulation in OpenGL)

Turbo Squid find 3d models on the web
Teddy build your own 3D models with this free software

Touch Interfaces

Community Core Vision open source/cross-platform solution for computer vision and machine sensing

Video

Webcam

  • ps3eye - Playstation 3 eye: 125fps available used for $8.99 at your local Gamestop

Effects

Pete's Plugin's

Pete's Plugins are free opensource freeframe plugins. These are great for doing various video effects, such as on a live image feed. They can be used with Gem's [pix_freeframe]. Just stick the compiled plugins in the same directory as your patch and look at the [pix_freeframe] help for details.

Note that there is a bug in the Windows version of Gem 0.93.3 (as included in Pd-extended 0.43.4) such that Gem reports an "unknown key" error when changing the first parameter of a [pix_freeframe] plugin. This is a known bug with a workaround. As of the time of this writing (Feb 12, 2014) Gem 0.93.3 is the latest stable release.

In general these plugins seem a bit flakey with Gem for whatever reason. Some work well, others crash Pd, others freeze. YMMV.

Pure Data

Reference

Main Page
Email lists The main pd email list is extremely responsive and helpful for beginners all the way to the most advanced programmers.
Forum
#dataflow IRC chat room in FreeNode where you can ask for help. It's not an especially active room but people there are friendly and helpful

Getting Started

Pd Video Tutorial Series for absolute beginners

Tools and Extensions

mtl a group of abstractions that make Pure Data a lot easier!
Gem Engine employs 3D navigation like you know it from 3D Programs like 3Ds Max or others in GEM

Example Patches

General
asciitobin.pd Convert ASCII numbers from a serial port to numbers that Pd understands
Audio
Steve Wilson's Audio Examples
polyPhonicSynth.pd Simple 4-voice synthesizer demo. This patch fails with key repeat on Windows
simpleSequencer.pd Simple demo of sequencing 8 notes
Video
draw-tails.pd Continually takes snapshots of the last frame and mixes those with the current frame. By using the mouse as a way to draw a point in the current frame, we create "tails" with mouse presses and gestures.
color-tracking.pd simple color tracking of one color]
color-tracking-with-multiblob.pd color tracking with multiple objects
03.movement_detection-john-hack.pd A hack of 03.movement_detection. A better example, perhaps, than what is provided in the Pd help for movement detection
playing-with-sig2pix.pd a demo of using pix_sig2pix~ 1) to create a solid color and 2) to show how to mix with a live video feed.
video scratcher
video recorder
vera.zip compressed vera.ttf needed for [text3d] on Windows machines
Pitch Shifting/Time stretching & shrinking
fft-pitchshifter.pd fft pitchshifter engine. Put this in the directory which has the patch where you want to do the pitch shifting. This fft method tends to sound better in general than the tape roller method below, but also introduces more latency so is not always the best choice for live performance
fft-pitchshifter-example2.pd an example patch which uses the fft pitchshifter engine
pitchshifter.pd Rotating tape head method engine of pitch shifting. This has minimal latency compared to the fft method, but also introduces more apparent artifacts in general. Put this in the directory which has the patch where you want to do the pitch shifting.
pitchshifter-example2.pd an example patch which uses the rotating tape head pitch shifter engine
pitch-speed-example2.pd time change instead of pitch shift. Uses the fft-pitchshifter engine
Interfaces
MonoSynthTouchDemo.pd Simple Pd patch demoing use of maKey-style touch shield
PolySynthTouchDemo.pd Same as above but slightly more complicated to allow performer to play more than one note at a time
Touch2.ino Arduino code used in patches above. Video of the shield with using mono synth demo patch and this arduino code with Banana piano. If you don't have the arduino software installed, you will need these drivers to get this to work.
colorTracker.pd Track and trigger events based on the movement of primary colors as seen by a webcam.
colorTrackerTest.pd Test code for the color tracker. The best way to understand how to use the color tracker is to watch the video of the color tracker with test code up close and personal.

Local Pd classes and events

devICT presentation on Pd
WSU's Spring 2012 Audio/Video class featuring Pd and the Arduino
2014-Feb-1:Audio and video programming with Pure Data 3 hour workshop for absolute beginners to Pd
WSU ENGR202: Service Learning a WSU Engr course which supports MakeAXE, a project with Maize HS students that teaches them to make and perform with their own electronic audio and video instruments

Local Projects

John Harrison
Touch #2
Touch #1
Still Life (artistic contributions from Hack Art Lab)
Push Me Pull You (John contributed Pd and Arduino programming to this Hack.Art.Lab project)
Ghost in the Machine (artistic contributions from Hack Art Lab)

Max/MSP

VVVV

The WPC area on MakeICT's wiki can serve as a general repository for tutorials, helpful examples, demos, etc. of various patching languages.