Difference between revisions of "PID 2009"

From CCRMA Wiki
Jump to: navigation, search
(REFERENCES)
(SOFTWARE)
 
(48 intermediate revisions by 2 users not shown)
Line 4: Line 4:
  
 
<font size=4>Instructors: Edgar Berdahl [mailto:eberdahl@ccrma.stanford.edu eberdahl@ccrma.stanford.edu], Wendy Ju [mailto:wendyju@ccrma.stanford.edu wendyju@ccrma.stanford.edu]<br></font>
 
<font size=4>Instructors: Edgar Berdahl [mailto:eberdahl@ccrma.stanford.edu eberdahl@ccrma.stanford.edu], Wendy Ju [mailto:wendyju@ccrma.stanford.edu wendyju@ccrma.stanford.edu]<br></font>
 
+
[[Image:pic2small.jpg]]
 
+
  
 
==COURSE HISTORY AND DESCRIPTION==
 
==COURSE HISTORY AND DESCRIPTION==
  
This course was originated in 1996 to offer a hands-on approach to interaction design for musical applications. It was originally helmed by Max Mathews and Bill Verplank, and early on was jointly taught over teleconference with instructors at San Jose State and Princeton. In 2002, CCRMA began offering an intensive two-week workshop version of this course during the summer.  Other past instructors include Matt Wright and Michael Gurevich.
+
This course was originated in 1996 to offer a hands-on approach to interaction design for musical applications. It was originally helmed by Max Mathews and Bill Verplank, and early on was jointly taught over teleconference with instructors at San Jose State and Princeton. In 2002, CCRMA began offering an intensive workshop version of this course during the summer.  Other past instructors include Matt Wright and Michael Gurevich.
  
 
This workshop integrates programming, electronics, interaction design, audio, and interactive music. Focus will be on hands-on applications using sensors and microprocessors in conjunction with real-time DSP to make music. Specific technologies will include Arduino microcontrollers, PD and/or Max/MSP for music synthesis, and sensors including force-sensitive resistors, bend sensors, accelerometers, IR range finders, etc. Participants will design and build working prototypes using a kit that can be taken home at the end of the workshop. Further issues to be explored will include modes and mappings in computer music, exercises in invention, and applications of sensors and electronics to real-time music. The course will be augmented by a survey of existing controllers and pieces of interactive music.
 
This workshop integrates programming, electronics, interaction design, audio, and interactive music. Focus will be on hands-on applications using sensors and microprocessors in conjunction with real-time DSP to make music. Specific technologies will include Arduino microcontrollers, PD and/or Max/MSP for music synthesis, and sensors including force-sensitive resistors, bend sensors, accelerometers, IR range finders, etc. Participants will design and build working prototypes using a kit that can be taken home at the end of the workshop. Further issues to be explored will include modes and mappings in computer music, exercises in invention, and applications of sensors and electronics to real-time music. The course will be augmented by a survey of existing controllers and pieces of interactive music.
  
==COURSE SCHEDULE (will change as needed)==
+
==COURSE SCHEDULE ==
  
We will meet from 9am-5:00pm daily, with a break for lunch from 12-1.
+
We will meet from 9am-5:00pm daily, with mini-breaks at 10:30 and 3:00, and a lunch break from 12-1.
  
 
{| border="1"
 
{| border="1"
|+ '''Week 1'''
+
|+ '''The Week'''
 
|-
 
|-
 
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''
 
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''
 
|-
 
|-
|6/22 Monday || [[PID2008 Introduction]], [[Survey of Physical Interfaces for Music]], [[Architecture Overview]], Intro To Kit, [[PID2009 HW 1]] || [[Max/Pd Lab Lecture]], [[Max/Pd Lab]]
+
|6/22 Monday || [[PID Introduction]], [[Survey of Physical Interfaces for Music]], [[Architecture Overview]], [[http://cm-wiki.stanford.edu/wiki/PID_Workshop_Kit Intro To Kit]], [[PID2009 HW 1]] || [http://cm-wiki.stanford.edu/wiki/Sound_Synthesis_With_Max_Or_Pd Max/Pd Lecture], [[Software Lab]]
 
|-
 
|-
|6/23 Tuesday || Max/Pd Lab & [[PID2009 HW 1]] Review, [[Interaction Design Framework]], [[Introduction to Electronics]] || [[Sensors]], [[Hardware Lab]], [[PID2009 HW 2]]
+
|6/23 Tuesday || Max/Pd Lab & [[PID2009 HW 1]] Review, [[Interaction Design Framework]], [[Introduction to Electronics (condensed) | Introduction to Electronics]] || [[Sensors|Sensors1]], [[Hardware Lab 2| Hardware Lab]], [[PID2009 HW 2]]
 
|-
 
|-
|6/24 Wednesday || Hardware Lab & [[PID2009 HW 2]] Review, Interfacing With The Rest Of The World, Making sensors, Controllers, Project Ideas || Mini-Instrument Lab
+
|6/24 Wednesday || Hardware Lab & [[PID2009 HW 2]] Review, [[Interfacing With The Rest Of The World]], Making sensors, Controllers, Project Ideas || [[Mini-Instrument Lab]]
 
|-
 
|-
|6/25 Thursday || Demo Mini-Instrumnt, Special Topics (e.g. [[Microcontroller Architecture]]), Work on project || Work on project, Dress rehearsal
+
|6/25 Thursday || Demo Mini-Instrument, Special Topics (e.g. [[Fun with Wiimotes]] [[Microcontroller Architecture]]), Work on project || Work on project, Dress rehearsal
 
|-
 
|-
|6/26 Friday || Work on project  || Project presentations 3:30-5PM, BBQ starting at 5PM
+
|6/26 Friday || Work on project  || [[Project presentations]] 3:30-5PM, BBQ starting at 5PM
 
|}
 
|}
  
Line 60: Line 59:
 
   
 
   
 
Worskhop structure: The workshop is an accelerated variant of the
 
Worskhop structure: The workshop is an accelerated variant of the
[Music 250A course http://ccrma.stanford.edu/courses/250a/]. The workshop will consist of half-day supervised lab sessions,  
+
[http://ccrma.stanford.edu/courses/250a/ Music 250A course]. The workshop will consist of half-day supervised lab sessions,  
 
and half-day lectures, classroom exercises and discussions. Participants are encouraged (but by no means  
 
and half-day lectures, classroom exercises and discussions. Participants are encouraged (but by no means  
 
required) to bring their own laptop computers with any music software/hardware they already use.
 
required) to bring their own laptop computers with any music software/hardware they already use.
Line 66: Line 65:
 
==WORKSHOP PROJECT==
 
==WORKSHOP PROJECT==
  
One of the goals of this workshop is to help you get hands-on experience building a musical physical interaction project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first week's lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.
+
One of the goals of this workshop is to help you get hands-on experience building a musical physical interaction project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.
  
 
==LECTURES==  
 
==LECTURES==  
*[[PID2008 Introduction]]
+
*[[PID Introduction]]
 +
*[[Survey of Physical Interfaces for Music]]
 
*[[Introduction to Electronics]]
 
*[[Introduction to Electronics]]
*[[AVR Programming]]
+
*[[Sensors]]
 
*[[Microcontroller Architecture]]
 
*[[Microcontroller Architecture]]
 
*[[Interaction Design Framework]]
 
*[[Interaction Design Framework]]
*[[PID2008 Intro to Pd]]
 
*[[Survey of Physical Interfaces for Music]]
 
  
 
==HOMEWORKS==
 
==HOMEWORKS==
Line 84: Line 82:
 
==LABS==
 
==LABS==
  
*[[PID2007 Lab 1]]
+
*[[Software Lab]]
*[[PID2007 Lab 2]]
+
*[[Hardware Lab 2]]
*[[PID2007 Lab 3]]
+
*[[PID2007 Lab 4]]
+
  
 
==SOFTWARE==
 
==SOFTWARE==
[Max 5 http://www.cycling74.com/downloads/max5]
+
[http://www.cycling74.com/downloads/max5 Max 5]
This is the graphical programming environment that we recommend using for synthesizing sound using OS X or Windows. You can download a 30 day demo for free, but the regular version is rather expensive.
+
is the graphical programming environment that we recommend using for synthesizing sound using OS X or Windows. You can download a 30 day demo for free, but the regular version is rather expensive.
  
[Pure Data (Pd) Extended http://puredata.info/downloads]
+
[http://puredata.info/downloads Pure Data (Pd) Extended] is the open source alternative to Max, which you may opt to install instead. It is absolutely free and open source, and it runs under OS X, Windows, and Linux. We will lecture in either Pd or Max, depending on what the majority of participants will be using.
Pd is the open source alternative to Max, which you may opt to install instead. It is absolutely free and open source, and it runs under OS X, Windows, and Linux. However, its functionality is more limited, and this is why we will lecture using Max.
+
 
Note: Install the extended version, not vanilla.
 
Note: Install the extended version, not vanilla.
  
[Arduino Software http://arduino.cc/en/Main/Software]
+
The [http://arduino.cc/en/Main/Software Arduino software] can be used to program the Arduino Nano board. You do need to download and install it, although you will probably not use it extensively as we will use [http://firmata.org Firmata] to get data from the Arduino Nano board into your sound synthesis software.
This is the software that we use to program the Arduino Nano board. You will probably not use it extensively as we're planning to use Firmata to get data from the Arduino Nano board into your sound synthesis software. Don't worry too much yet if you don't know what this means!
+
 
Note: Install the most recent version (probably 0016).
 
Note: Install the most recent version (probably 0016).
 +
 +
[http://firmata.org Firmata] for Arduino is included in Arduino 0012 or later. In the Arduino IDE, use File -> Open -> Examples > Library-Firmata > StandardFirmata to load the standard firmware. Connect your Arduino Nano to your computer using a USB cable. Use Tools->Board and Tools->Serial Port to select the Arduino Nano and USBserial tty port, then hit the Play button to verify and compile the program.  Upload the Firmata firmware  to your Arduino Nano using the fourth square button from the left (the one with the sideways arrow).
  
 
==REFERENCES==
 
==REFERENCES==
 
* [[MaxLab]]
 
* [[MaxLab]]
* [[Electronics]]
 
 
* [[PID Links]]
 
* [[PID Links]]
* [[Sensors]]
 
 
* [[Inter-Device Communication]]
 
* [[Inter-Device Communication]]
* [[AVR]]
 
* [http://ccrma.stanford.edu/courses/250a/docs/avr/ATMega644_Summary.pdf      ATMega644 Summary (pdf)]
 
* [http://ccrma.stanford.edu/courses/250a/docs/avr/ATMega644_Datasheet.pdf    ATMega644 Datasheet (pdf)]
 
* [http://ccrma.stanford.edu/workshops/2006/PID/docs/avrminiv40_schematic.pdf  AVRMini Schematic (pdf)]
 
* [http://www.nongnu.org/avr-libc/user-manual/modules.html  AVR-libc online html documentation]
 
* [http://hubbard.engr.scu.edu/embedded/avr/avrlib/docs/html/index.html  AVRLib online html documentation]
 
  
 
==FAQ==
 
==FAQ==
Line 119: Line 107:
 
*<i>Can I do ____ for my project?</i>
 
*<i>Can I do ____ for my project?</i>
  
You can do whatever you would like for your project. Keep in mind that you really only have a week to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.
+
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.
  
 
*<i>Can I incorporate my own hardware and software into my project?</i>
 
*<i>Can I incorporate my own hardware and software into my project?</i>
Line 127: Line 115:
 
*<i>Can I keep the tools we use during the workshop?</i>
 
*<i>Can I keep the tools we use during the workshop?</i>
  
The software we're using is open-source, and can be downloaded and set up on your own Linux, Windows or Mac OS X computer. The cost of the development kit (including the prototyping board, some sensors and accessories) is included in the workshop fee, so it is yours to keep. Some of the sensors, tools and equipment you will use belong to CCRMA and/or RP, so please ask before taking anything that is not in your lab kit. We will try to point you to sources where you can buy similar parts.
+
The software we're using is open-source, and can be downloaded and set up on your own Linux, Windows or Mac OS X computer. Participants have the option of purchasing a $100 [http://cm-wiki.stanford.edu/wiki/PID_Workshop_Kit lab kit] at the end of the workshop. The kit contains an Arduino, a prototyping board, power supply, data cable, and a variety of sensors. We will try to point you to sources where you can buy similar parts.
  
 +
[[Image:pic1.jpg]]
  
 
[[Category:PID_2009]][[Category:PID]]
 
[[Category:PID_2009]][[Category:PID]]

Latest revision as of 00:43, 6 October 2009

Physical Interaction Design For Music

CCRMA Summer Workshop 2009
June 22-26

Instructors: Edgar Berdahl eberdahl@ccrma.stanford.edu, Wendy Ju wendyju@ccrma.stanford.edu
Pic2small.jpg

COURSE HISTORY AND DESCRIPTION

This course was originated in 1996 to offer a hands-on approach to interaction design for musical applications. It was originally helmed by Max Mathews and Bill Verplank, and early on was jointly taught over teleconference with instructors at San Jose State and Princeton. In 2002, CCRMA began offering an intensive workshop version of this course during the summer. Other past instructors include Matt Wright and Michael Gurevich.

This workshop integrates programming, electronics, interaction design, audio, and interactive music. Focus will be on hands-on applications using sensors and microprocessors in conjunction with real-time DSP to make music. Specific technologies will include Arduino microcontrollers, PD and/or Max/MSP for music synthesis, and sensors including force-sensitive resistors, bend sensors, accelerometers, IR range finders, etc. Participants will design and build working prototypes using a kit that can be taken home at the end of the workshop. Further issues to be explored will include modes and mappings in computer music, exercises in invention, and applications of sensors and electronics to real-time music. The course will be augmented by a survey of existing controllers and pieces of interactive music.

COURSE SCHEDULE

We will meet from 9am-5:00pm daily, with mini-breaks at 10:30 and 3:00, and a lunch break from 12-1.

The Week
Date Morning (9am-12noon) Afternoon (1:00pm-5:00pm)
6/22 Monday PID Introduction, Survey of Physical Interfaces for Music, Architecture Overview, [Intro To Kit], PID2009 HW 1 Max/Pd Lecture, Software Lab
6/23 Tuesday Max/Pd Lab & PID2009 HW 1 Review, Interaction Design Framework, Introduction to Electronics Sensors1, Hardware Lab, PID2009 HW 2
6/24 Wednesday Hardware Lab & PID2009 HW 2 Review, Interfacing With The Rest Of The World, Making sensors, Controllers, Project Ideas Mini-Instrument Lab
6/25 Thursday Demo Mini-Instrument, Special Topics (e.g. Fun with Wiimotes Microcontroller Architecture), Work on project Work on project, Dress rehearsal
6/26 Friday Work on project Project presentations 3:30-5PM, BBQ starting at 5PM

DETAILED DESCRIPTION

Many workshops teach the technical details involved in making music using the Arduino. The PID workshop goes the extra mile by mentoring participants in evaluating and further developing their own ideas with the help of the Verplankian physical interaction design (PID) framework. Participants learn the philosophy and utility underlying the eight interrelated PID perspectives: idea, metaphor, model, display, error, scenario, task, and control.

The workshop also teaches technical skills for designing musical interactions. The workshop integrates programming, electronics, robotics, audio, and interactive music along with PID. Hands-on applications using sensors and microprocessors in conjunction with real-time DSP will be explored for making music. Specific technologies will include Arduino platform, processing, Firmata, and PD and/or Max/MSP for music synthesis. Participants will learn how to use resistive, force-sensitive, capacitative, optical, ultrasound, magnetic, optical, and acceleration sensors. We will also teach students how to make their own sensors with custom geometries constructed out of materials such as conductive fabric, piezoresistive fabric, and copper tape. We will discuss popular controller components such as (multi-)touch screens, TacTex pads, Nintendo Wii, Novint Falcon, and many more. Participants will design and build working prototypes using a kit that can be taken home at the end of the workshop. Many prototypes will be applicable for performance and exhibits. Further issues to be explored will include modes and mappings in computer music, exercises in invention, and applications of sensors and electronics to real-time music. The course will be augmented by a survey of existing controllers and pieces of interactive music.

This workshop is intended for: Musicians or composers interested in exploring new possibilities in interactive music in a hands on and technical way; Anyone looking to gain valuable skills in basic analog and digital electronics, with a focus on invention; Makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with performers and composers.

Worskhop structure: The workshop is an accelerated variant of the Music 250A course. The workshop will consist of half-day supervised lab sessions, and half-day lectures, classroom exercises and discussions. Participants are encouraged (but by no means required) to bring their own laptop computers with any music software/hardware they already use.

WORKSHOP PROJECT

One of the goals of this workshop is to help you get hands-on experience building a musical physical interaction project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.

LECTURES

HOMEWORKS

LABS

SOFTWARE

Max 5 is the graphical programming environment that we recommend using for synthesizing sound using OS X or Windows. You can download a 30 day demo for free, but the regular version is rather expensive.

Pure Data (Pd) Extended is the open source alternative to Max, which you may opt to install instead. It is absolutely free and open source, and it runs under OS X, Windows, and Linux. We will lecture in either Pd or Max, depending on what the majority of participants will be using. Note: Install the extended version, not vanilla.

The Arduino software can be used to program the Arduino Nano board. You do need to download and install it, although you will probably not use it extensively as we will use Firmata to get data from the Arduino Nano board into your sound synthesis software. Note: Install the most recent version (probably 0016).

Firmata for Arduino is included in Arduino 0012 or later. In the Arduino IDE, use File -> Open -> Examples > Library-Firmata > StandardFirmata to load the standard firmware. Connect your Arduino Nano to your computer using a USB cable. Use Tools->Board and Tools->Serial Port to select the Arduino Nano and USBserial tty port, then hit the Play button to verify and compile the program. Upload the Firmata firmware to your Arduino Nano using the fourth square button from the left (the one with the sideways arrow).

REFERENCES

FAQ

Project questions

  • Can I do ____ for my project?

You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.

  • Can I incorporate my own hardware and software into my project?

Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs. Ideally, your hardware and/or software can send OSC messages to interface with the tools we provide.

  • Can I keep the tools we use during the workshop?

The software we're using is open-source, and can be downloaded and set up on your own Linux, Windows or Mac OS X computer. Participants have the option of purchasing a $100 lab kit at the end of the workshop. The kit contains an Arduino, a prototyping board, power supply, data cable, and a variety of sensors. We will try to point you to sources where you can buy similar parts.

Pic1.jpg