Final Report

BREAD BAND – Xiao Zhou – Rudi

CONCEPTION AND DESIGN

        For my final project, I want to achieve a combination of different senses, like transferring the touch to the listening or from the listening to the version. What’s more, I am also willing to make use of daily stuff with technology so that I can make things we use everyday become more interesting and interactive. And in the former research for the project, I had searched many devices that are similar to my idea, for example, the project called “Awakening of Insects”, which is a light in shape of the cloud and when people turn up their voice when they are talking, the brightness and flicker frequency will also change that accords with my two ideas. So, take the example of this project , I decided to make a project to turn the touch to the listening and as for the listening I also want to change the sound into the music sounds. In my opinion, I think the interaction means that the project can communicate with users, when users use the device, it just seems like they are talking to each other. So, in my project, I also like to achieve this idea. In this way, me and Chaoyue, made the project, called Bread Band. In this project, we simulated a scene of cutting the bread in our daily life and while users cut the bread, they can also make their own beat, which is like the bread is commuting with users. For the user test, as we did not finish the project, we let users press buttons on the box directly and then make their own beat. The whole process was good and they told us the idea was good and it was really cool to make their own beats by cutting the bread. However, at the same time, they also left some questions and suggestions, such as: 1.How to connect cutting the bread with making the music? What is the relationship between them?  2.How to play it well? It will be better if there are some instructions. 3.Something like the images will also make the project better and it also needs something to show which button do the users press.In the user test, we really learnt a lot from others and have more ideas and power to improve our project.

FABRICATION AND PRODUCTION

        So at first we wanted to make a project about music including piano and drums. We planned to make two balls with 5 buttons for each and the right hand for the piano and the left hand for the drums. So, when users catch the ball and press buttons on the ball you can just play the music with two instruments. However, we found that this idea may be difficult for people that don’t know anything about music, so we just changed the idea. For the second idea, we planned to use one ball that can play the piano on hand. And we also thought about two patterns for the users, first for people that have the knowledge about how to play the piano they can just play the ball by themselves, and for others that don’t know how, we will use the Processing to write an instruction and let users  follow it so that they can play a whole music. To make the project more interesting, we also draw fireworks in the Processing. If they press the button then there will be a firework on the screen. What’s more, we also use the distance sensor, if they just raise the ball then the value of the sound will go up, if they put down then go down. However, we had a conversation with professors and they told me that: first, if I want something about music, you need to make it become more unique and interactive; second, don’t use the piano notes because they are single notes and hard to play. Third, why buttons, why the users need to press buttons. I should combine the buttons with the project; fourth, it will be better if users can adjust the sounds after they have made their music. Thinking about these suggestions and Rudi’s idea, we changed the project again and decided to make the bread band.

        To make the bread band, we planned to make a stage first that can cut the bread on it and we also bought a fake bread on the internet to cover the buttons on the box and then we also used laser cutting to cut the knife.And we also use the 3D print to print different characters on the sauce stage. When people use the knife to cut the bread they will press buttons on the box. We searched for some fragments of different drum beats instead of the piano notes. And each fragment for each button so when they cut the first button, the first beat will be played, so do others. These fragments can also add up and if you don’t like this you can cut again to delete. Also, in order to make the project more interesting and interactive we also use the touch sensors to control the value of the sound for each button. So the first step is cutting the bread, which means and then the second step is choosing the sauce, which means you can turn up your favorite sounds. And I cooperated with Chaoyue and I did the coding part while she did the appearance and assemble part of the project. I think we have done really good teamwork.

CONCLUSIONS

        So I want my project to have communication with its users and for this project is that when users cut the bread and the bread can sing to them and they can also decide how and what it will sing. And for the presentation,I think it was good and everything went well. And they thought it was cool and also gave us some suggestions. If I have more time to improve my project, I think first I will add images like when press the button, its own image will display on the screen; the second is that I will also show users which button they have pressed; the third is that it will also have the instructions like if users cut the first and third button s and they’ll get a good beat. And I think the most important thing I have learned from my project is that everything deserves a try, like the process of my project. We really tried a lot and changed a lot. But trying and learning something new is always interesting and fun so I think it is important for us to try new things. Only in this way can we make the best project.

CODES

Arduino

#include “SerialRecord.h”

SerialRecord writer(10);
//bool sensorValue;
int myPins[] = {2,3,4,5,6};
int num[] = {0, 1, 2, 3, 4};

int buttonPin1 = 7;
int buttonPin2 = 9;
int buttonPin3 = 10;
int buttonPin4 = 11;
int buttonPin5 = 12;

int buttState[] = {0, 0, 0, 0, 0};
int drumstate[] = {0, 0, 0, 0, 0};
int prevbuttState[] = {0, 0, 0, 0, 0};

void setup() {
Serial.begin(9600);

pinMode(7,INPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);

for (int i=0;i<=4;i++) {
pinMode(myPins[i], OUTPUT);
}
}

void loop() {
// sensorValue = digitalRead(8);
writer[5]=digitalRead(7);
writer[6]=digitalRead(9);
writer[7]=digitalRead(10);
writer[8]=digitalRead(11);
writer[9]=digitalRead(12);

for (int i=0;i<=4;i++) {
buttCheck(i);
writer[i] = drumstate[i];
}

writer.send();
delay(100);
}

void buttCheck(int i) {
buttState[i]= digitalRead(myPins[i]);

if ( buttState[i] == 1 && drumstate[i] == 0 && prevbuttState[i]== 0) {

drumstate[i] = 1;

}
else if( buttState[i] == 1 && drumstate[i] == 1 && prevbuttState[i] == 0) {
drumstate[i] = 0;
}
prevbuttState[i] = buttState[i];
delay(1);

}

 

Processing

import processing.serial.*;
import osteele.processing.SerialRecord.*;
import processing.sound.*;

Serial serialPort;
SerialRecord serialRecord;
SoundFile sound1;
SoundFile sound2;
SoundFile sound3;
SoundFile sound4;
SoundFile sound5;
boolean playSound1=true;
boolean playSound2=true;
boolean playSound3=true;
boolean playSound4=true;
boolean playSound5=true;

int value1 ;
int value2 ;
int value3 ;
int value4 ;
int value5 ;
int value6 ;
int value7 ;
int value8 ;
int value9 ;
int value10 ;

 

void setup(){
size(500, 500);
String serialPortName = SerialUtils.findArduinoPort();
serialPort = new Serial(this, serialPortName, 9600);
serialRecord = new SerialRecord(this, serialPort, 10);
sound1 = new SoundFile(this, “1.aiff”);
sound2 = new SoundFile(this, “2.aiff”);
sound3 = new SoundFile(this, “3.aiff”);
sound4 = new SoundFile(this, “4.aiff”);
sound5 = new SoundFile(this, “5.aiff”);

value1 = serialRecord.values[0];
value2 = serialRecord.values[1];
value3 = serialRecord.values[2];
value4 = serialRecord.values[3];
value5 = serialRecord.values[4];
value6 = serialRecord.values[5];
value7 = serialRecord.values[6];
value8 = serialRecord.values[7];
value9 = serialRecord.values[8];
value10 = serialRecord.values[9];
}

void draw(){
serialRecord.read();
draw1();
draw2();
draw3();
draw4();
draw5();
}

void draw1() {
value1 = serialRecord.values[0];
value6 = serialRecord.values[5];
if (value1 == 1) {
if (playSound1 == true) {
sound1.play();
sound1.loop();
playSound1 = false;
}
} else {
playSound1 = true;
}
if (value1 == 0){
sound1.stop();
}
if (value6 == 0){
sound1.amp(0.7);
}
if (value6 == 1){
sound1.amp(1);
}
}

void draw2() {
value2 = serialRecord.values[1];
value7 = serialRecord.values[6];
if (value2 == 1) {
if (playSound2 == true) {
sound2.play();
sound2.loop();
playSound2= false;
}
} else {
playSound2= true;
}
if (value2 == 0){
sound2.stop();
}
if (value7 == 0){
sound2.amp(0.3);
}
if (value7 == 1){
sound2.amp(1);
}
}

void draw3() {
value3 = serialRecord.values[2];
value8 = serialRecord.values[7];
if (value3 == 1) {
if (playSound3 == true) {
sound3.play();
sound3.loop();
playSound3 = false;
}
} else {
playSound3= true;
}
if (value3 == 0){
sound3.stop();
}
if (value8 == 0){
sound3.amp(0.3);
}
if (value8 == 1){
sound3.amp(1);
}
}

void draw4() {
value4 = serialRecord.values[3];
value9 = serialRecord.values[8];
if (value4 == 1) {
if (playSound4 == true) {
sound4.play();
sound4.loop();
playSound4 = false;
}
} else {
playSound4= true;
}
if (value4 == 0){
sound4.stop();
}
if (value9 == 0){
sound4.amp(0.3);
}
if (value9 == 1){
sound4.amp(1);
}
}

void draw5() {
value5 = serialRecord.values[4];
value10 = serialRecord.values[9];
if (value5 == 1) {
if (playSound5 == true) {
sound5.play();
sound5.loop();
playSound5 = false;
}
} else {
playSound5= true;
}
if (value5 == 0){
sound5.stop();
}
if (value10 == 0){
sound5.amp(0.3);
}
if (value10 == 1){
sound5.amp(1);
}
}

Leave a Reply

Your email address will not be published. Required fields are marked *