//Yoshi Torralva
//yrt@andrew.cmu.edu
//Section E
//Project-10-Sonic-Sketch
var gOpen;
var eOpen;
var dOpen;
var aOpen;
function preload() {
// call loadImage() and loadSound() for all media files here
gOpen = loadSound("https://courses.ideate.cmu.edu/15-104/f2019/wp-content/uploads/2019/11/gstring.wav");
eOpen = loadSound("https://courses.ideate.cmu.edu/15-104/f2019/wp-content/uploads/2019/11/estring.wav");
dOpen = loadSound("https://courses.ideate.cmu.edu/15-104/f2019/wp-content/uploads/2019/11/dstring.wav");
aOpen = loadSound("https://courses.ideate.cmu.edu/15-104/f2019/wp-content/uploads/2019/11/astring.wav");
}
function setup() {
createCanvas(480, 480);
useSound();
}
function soundSetup() {
//adjusting the volume
//lowering a and e as they are higher notes
gOpen.setVolume(1);
eOpen.setVolume(0.1);
dOpen.setVolume(1);
aOpen.setVolume(0.2);
}
function draw() {
// you can replace any of this with your own code:
background(245, 229, 215);
noStroke();
//violin body
fill(150, 74, 12);
ellipse(width/2, 400, 400, 400);
fill(245, 229, 215);
ellipse(50, 525, 120, 200);
fill(245, 229, 215);
ellipse(430, 525, 120, 200);
//violin finger board
fill(0);
rectMode(CENTER);
rect(240, 0, 100, 800);
//strings
fill(61, 51, 42);
rectMode(CORNER);
rect(210, 0, 4, 480);
rect(230, 0, 4, 480);
rect(250, 0, 4, 480);
rect(270, 0, 4, 480);
//violin bow
//visual indicator to show over the strings
rectMode(CENTER);
fill(51, 28, 9);
rect(mouseX, mouseY, 480, 20);
//creating constraints for start and stop of each string
//slight overlap between some to have better transitions
//using start and stop commands to the strings
if(mouseX > 200 & mouseX < 225) {
gOpen.play();
}else{ gOpen.stop();
}
if(mouseX > 220 & mouseX < 240) {
dOpen.play();
}else{ dOpen.stop();
}
if(mouseX > 240 & mouseX < 265) {
aOpen.play();
}else{ aOpen.stop();
}
if(mouseX > 265 & mouseX < 280) {
eOpen.play();
}else{ eOpen.stop();
}
}
With this project using sound, I wanted to create an instrument. So, I decided to choose a violin. In this project, I represent the violin in a simple manner and have it close up. I initiate the sound of open G, D, A, and E strings by the mouseX position. When the mouseX position is not in bounds of the parameters, the sound stops. Slight overlaps in the parameters are used to create better sounding transitions between open strings.