The last two weeks have been tough for me on many levels. I decided to pivot my final project from sandwiches. I got some great feedback on that project, but just not enough time to flesh it out the way I want.
Here’s the working prototype (which is sure to keep changing!)
I was at first avoiding merging ICM + pcomp for a long time, because I don’t feel like this project, as a browser game, totally stands on its own as a satisfying interaction. Still, this was actually one of the most challenging things I’ve coded so far in ICM. I feel pretty proud, and I learned so much from the experience.
I was up for at least 8 hours in Bobst, where it’s climate-controlled to keep you AWAKE. M2M chocolate and tea kept me going through the wee hours…
The process really pushed me to be very deliberate, detailed, and creative with my debugging. I was working with several layers of storing information…
- built-in 1D pixel color array ([r,g,b,a])
- analyzing a 2D brickArray (based on x,y coordinates, incremented out per brick width and height)
- asking the 2D brickArray if each index item was more red, green, yellow, or blue based on a ratio of [r] vs [g] vs [b]
- based on color, storing values “R” “Y” “B” “G” as strings into a 2D “songArray”
- interpreting strings and playing corresponding sounds
- stepping through a column of sound at a time, based on frameCount% intervals
Some stills from that late night:
Setting up an array of brick colors… why is it not working?? Ah, because I used “push()” incorrectly.
Finally, console is telling me where each brick is on the grid. Took a while to make sure “x,” “y,” columns and rows were aligned and not reflecting on the wrong axis.
If the sound was successfully stored, it would tell me in the console. (see: “BLUE, beatbox @ x2, y6”)
When experimenting with p5 pixels, I wrote a function to draw a rectangle for each unit to make sure the computer was seeing the image.
Here I was experimenting with pixels, to see if p5 could read the blue lego image as “on top of” the white grid image.”
When we tested it in class, my tester got the premise of it pretty easily. People liked the idea. Here were the questions I posed:
- What do you think a physical experience offers that this one doesn’t? and vice versa?
- Imagine you can record your own sounds. How long do you think you would play with this before getting bored?
- What kind of sounds would you like to hear?
The “found sounds” aspect really appealed to people. Mimi asked me to consider if “playing with legos” is the main interaction, or “building music.” Someone suggested screaming lego people…
sandwich side note:
Here’s some of the feedback I got from user-testing my sandwich prototype. I would love to continue this sometime, maybe during J-term? I have too many ideas!
- “professionalism” section really made people think about their personal definitions
- people chuckled when they were defining “sandwiches”
- introduction felt a little long/text-heavy (for some, not all)
- because it’s modeled after a work test, you want to just get it over with (for some)
- the ending was confusing. needed resolution. more frustrating than communicating a lack of agency (“I would think your code was broken”)
- user-testing prototype worked really well!