Lab #5 – Due Monday 10/26
Now is the time to sit back and really think about your project. If there is something that does not feel 100% correct about your idea, something that doesn’t feel 100% exciting to you, think about what you could do to rectify that situation.
1) In lab, ask Sasha to create a new WordPress page for you on the 250 webpage. This will be where you post drawings, progress photos, links, all of the material that you use to develop and create your idea. The goal for this page is to have one place where you are storing information. But it also will function as a valuable resource when you want to document your work for your own personal webpage. Work in progress photos tell an amazing story. Once it is created, you should find it here: https://ccrma.stanford.edu/wp/250a/current-projects/
2) Post the following to this page:
- a) Any drawings that you have done so far.
- b) 7 drawings that show different iterations on your idea. While your idea is taking shape, remember that there are still MANY ways that it can go.
- c) Research similar work and post 10 links of similar work for this idea. If you have already done this for your idea (ie. you are doing the exact same project idea that you researched last week in the homework), find 10 more.
- d) Create 3 lists for your project:
- a) Things you need to have done for a minimal viable product
- b) Things that you want to have done by the final deadline
- c) Things that would be nice to have if you had unlimited time.
- e) Create a list of materials needed.
f ) Create a list of steps to achieve your Minimal Viable Product.
- g) What is the hardest part of your project? Is there something that will make or break this project? If so, what are your plans for addressing this problem?
Lab #4 – Due Monday 10/19
Goal: Get 10 bit data from your sensors. Create synthesized audio patches in Max. Make those patches pretty.
1) Connect an accelerometer to your arduino.
2) Implement MSB and LSB in Arduino and Max to get a 10 bit number for your accelerometer data. Example code for this implementation can be found in the zip file that you downloaded for Lab 2.
3) Create a sub patch for the serial and bit addition in the same manner that you created a sub patch in Lab3
4) Use those 10 bit values to create a patch that implements additive synthesis.
- a) Use segmented patch cords by choosing Options->Segment patch cords
b) For a starting point, check out: File Browser -> Cycling 74 -> Tutorials -> MSP Tutorials
c) Use function and line objects to create different envelops for your synthesis.
d) Color code your patch using the object called panel.
5) Use those 10 bit values to create a patch that implements either FM or granular synthesis.
- a) For a starting point, check out: File Browser -> Cycling 74 -> Tutorials -> MSP Tutorials. Search for Synthesis Tutorial 5: Frequency Modulation and Synthesis Tutorial 4: Vibrato and FM if you are using FM synthesis and Polyphony Tutorial 2: Granular Synthesis if you are using granular synthesis.
b) Make a patch that works in Presentation Mode. For a starting point, check out: File Browser -> Cycling 74 -> Tutorials -> Max Tutorials. Search for Tutorial 20: Presentation Mode
Lab #3 – Due Monday 10/12
Goal: Solder an accelerometer. Attach it to your board. Create an arduino patch to read the accelerometer data. Create 3 Max/MSP patches that use that data. Explore a couple of tools for keeping your patches clean and orderly. Explore some basic sound generation and filtering in Max.
- Watch this tutorial even if you think you know how to solder. https://vimeo.com/51538354
- Solder the leads for the accelerometer.
- Connect the accelerometer to your board.
- Connect the x, y and z pins of the accelerometer to to Analog 0, 1, and 2.
b. Connect the V+ pin to the 3.3v on the arduino
c. Connect the ground pin of the accelerometer to a ground pin on the arduino.
- Make an arduino patch that will take in the accelerometer data and send the 3 data points to Max/MSP. Encapsulate the objects that you use to bring the data into max via the serial into a subpatcher entitled “ArduinoData”.
- To do this, create an object called “patcherArduino Data” or “p ArduinoData”.
b. Paste any code necessary for taking in arduino data. Inlets and outlets to this patch can be created using the objects inlet and outlet.
- Create a patch that uses that data in Max/MSP in the following ways:
- Sound generation should be done using some of the oscillators within max. Try using phasor~, tri~, or saw~.
b. Use your accelerometer data to control filters. Filtering is one of the quickest and most effective means of altering your sound.
c. filtergraph~ along with biquad~ is a great all purpose filtering tool that allows you to implement various types of filters – lowpass, high pass, bandpass, etc. To get started, create an object and type in filtergraph~. Open up the help file and copy that code into your patch.
- Create a patch that will play at least 3 different sound files from your computer when a value on one of the axes of the accelerometer passes a threshold.
- If you don’t have any sound files on your computer, download something fun from freesound.org.
b. Use the send and receive objects to send and receive some value in this patch. While this will not necessarily be needed to keep this simple patch clean, these are good tools to know about.
c. Implement a threshold for one of your axes using the past or > objects and use that to trigger the sound files.
- Create a patch that uses the oscillator patch and/or sample patch but also includes one of the effects examples in Extras>Examples Overview MSP>Effects. Use the accelerometer data to implement one of these effects.
Lab #2 – Due Monday 10/5
Goal: Create 2 arduino patches and 3 Max/MSP patches.
Resources: Examples from the lecture on Monday 9/28 can be found here:http://ccrma.stanford.edu/~sleitman/250aExamples092915.zip
Remember: Right click to look at help files for each object
1) Create an Arduino patch that can take in 2 continuous sensors and send those values over serial to Max MSP. Make your serial rate 115200 for this patch.
2) Create a Max/MSP patch that uses the 2 sensors to do something interesting with the makenote, notein and pgmout objects. Use the scale object to scale the range of at least one of your sensors.
3) Make a second patch using the same objects but create a different musical interaction. Ie. change what those sensors are controlling in order to create a substantially different type of soundscape.
4) Add a button to your arduino breadboard and connect it to one of the digital pins on your arduino. Modify the arduino code that you created for item 1 to also take in that button and send it along with the values from the 2 continuous sensors over serial to Max MSP. Make your serial rate 115200 for this patch.
5) Create a Max/MSP patch that uses ~play and ~ezdac objects to explore using your sensors and 1 button to control sample playback. Make sure that you make use of the continuous data from the 2 continuous sensors. Use the line~ object to prevent clipping. If you are feeling adventurous, you can use the ~record object to record something live but make sure you have headphones plugged in or your patch will feed back on itself.
Optional: If you would like to look at the use of MSB (Most significant bit) and LSB (Least Significant Bit), check out the example included in the downloads.
Lab #1 – Due Monday 9/28
1) Get a kit from Sasha or Andrew. Put your name, email address and phone number on the box. Decorate all 6 sides of the box. This can be simply your name or a picture or a colored X or something more elaborate. The point is to make sure we don’t confuse the boxes.
2) Follow the instructions here:
(If you are using a CCRMA Linux machine, the software is already installed)
3) In Arduino, open up Blink.
File > Examples > Basics > Blink
- a) Modify the code so that the included LED blinks for a very short time but stays off for a longer time.
- b) Modify the code to the point that the blink is so fast that it looks like it is continually on. How fast did that actually need to be? What were the values that you had to choose for the delays between High and Low?
4) Do the following examples:
Make sure you understand EVERY line of code in these tutorials. If you have any questions, we are here to help.
- a) https://www.arduino.cc/en/Tutorial/DigitalReadSerial
g) https://www.arduino.cc/en/Tutorial/AnalogInput (There will be a small container of photoresistors sitting on the wooden box near Sasha’s desk in the Max Lab. Please return the photoresistor when you are done)