Final

Kate Reed and 3 OthersZack Steinberg
Max Ingersoll
Sam Ingersoll
1 / 9

Variations is an interactive installation that we created for the MIT Museum. The purpose of the installation is to demonstrate how different music performers interpret a classical musical score by showing the stylistic changes they choose to include in their performance. By sliding musical notes back and forth along a table, the user creates their own performance of  Anton Webern’s Opus 27 Piano Variations, showing how the same piece of music can be played many different ways.

The table has several slidable buttons on it, each representing a note from a phrase of the musical selection. When a play button is pressed, the exhibit will generate a composition from the spacing and position of the sliders and play it out loud. Three example performances from real performers are also featured to provide a visual aid, among other things. Each time the passage is played, it will sound completely different, highlighting the micro-differences that each performance unique.

Table Design

Saeed Arida

We originally wanted to make the table 25 feet long, and have sliders for each note in the piece of music. The museum restricted us to only eight feet long, so we decided to make the table eight feet long. Because of this, we decided that instead of doing the entire piece of music and having 177 sliders, that we would just do two phrases. We did phrases seven, and seventeen as both phrases had eight events each, equaling sixteen sliders total. Once we had all of this information, we started to design the table. We had decided earlier that we were going to have the sliders ride in a C channel with the gradient on the inside of the C channel. That was the only thing that we needed to add into our design.

The table we designed has 16 legs. Each leg represents a musical note in the piece. The legs are all made out of data, which determines the look of the leg. Each leg has four points, which vary based on the loudness of that note, the pitch, and the spacing of the note. We chose to do 16 notes because that is the number of sliders we have, and we wanted to keep it consistent.

Once we had come up with the concept on what we wanted the table to look like, we started to model it. When we were still thinking through the concept of the table we made a 3D model just with random data and random points for the legs. We all decided we liked the design we had come up with, so then we modeled it for real.

We got the data for the legs from some code we wrote, and that code turned the data into graphs. Once we had the graphs we went into illustrator and traced over them, so we had them in a .dxf file so that we could use them in the model. Each leg of the table has a corresponding graph of the musical note.

Once we had the lines for the legs from the graphs, we started to place them where the legs would be, to see if we still liked the overall shape of the table.

We decided the table design was still a go, so then we modeled it once again with all the right dimensions. We decided that the table would be two inches shorter than we had originally planned, just to make it simpler to cut.

Modeling the table with the right dimensions was much harder than modeling it for looks. We had to take into consideration the thickness of the materials, and how each piece would fit together. We are using a CNC Cutter to cut out the pieces. Unlike a laser cutter, which we are used to using, the CNC Cutter cannot make sharp corners and only makes rounded corners. This is because it uses a drill bit to cut. Usually we would design something like the table as puzzle pieces that fit together. Instead we designed the table as if we were building it with screws. We were essentially designing a piece of furniture that would fit together as if it came from Ikea.

This part of the design was very difficult. As we worked on the computer we kept messing up every single unit of the table. It took a few tries before we had designed it correctly. The next step was to make the pieces all 2D, so they would be in a format that the CNC Cutter could read.

Once we had the table and the pieces cut out, we had to take table and put it together. We had to go through and sand each piece down. We had to sand the edges so no one would get splinters and also the fronts to smooth them and clean them.

Once we had them all cleaned we laid each piece out so that the pretty side was facing up. When we had arranged the pieces, we started to stain them. We went over each piece with a cloth, to get all the dust out and then paint the stain on each piece. We did the big pieces first, so that they would dry first so we could start putting the top together when they dried.  It took a long time to stain them. The big pieces took about an hour to stain. After we finished the big pieces, we started on the legs of the table. We spent two hours staining the legs. We used an entire can of stain on the table.

Once we had all the pieces stained, we started to put it together. We made a template so we could get the screws in the same place every time, and then started to put the table top together first. Once we had the tabletop put together, we started to put the legs onto the table. We had numbered each of the legs before we stained them, so it was easier to put them back in their place.  We put all the legs in, and thought we were done. We were feeling very accomplished. But, we had assembled the table upside down, and when we went to flip the table over right side up, every single leg fell out. It was slightly discouraging. We persevered, and then put entire table back together again, this time wood gluing the back of each leg so they wouldn’t fall out. 

After the table was together, we had to add some support for the tabletop. The table is eight feet long and because of its length, we had to add supports all through out the tabletop so it wouldn’t droop. We cut eight 2x4s and screwed them into the sides, so they would act as a table for the tabletop to sit on. Oh, the irony.

After we had the tabletop essentially put together, we had to figure out the inside of the table, and how everything would fit together. We decided that the C channels for the sliders to go in would sit on some 2x4s and be drilled into place to keep them steady. Once we had the design done we felt pretty accomplished, but we were nowhere near done.

Process

Kate Reed
1 / 23

We started off the studio by learning about music, theory, and acoustics, and what exactly we were trying to communicate with the listener.  Our one requirement for the project was to “show the micro differences in musical performances.” We each came up with different ideas on how to visualize the differences in the performances.

We wanted to make an interactive piece because interaction is fun. We wanted to make something where you personally could manipulate the piece of music, and experience the differences in the same piece of music. We decided to create a table that has sliders, and each slider represents a note in the piece. As the user slides the sliders around, they can then hear the differences they made by moving the notes.

Once we had come up with the concept, we had to figure out how we would fabricate our ideas. The hard part is that we had to come up with a way to sense the sliders positions, so that we could change the music based on them. To do this, we tried two methods. We first tried to use computer vision to find the sliders position. The idea was that we would have an all black background, and the sliders would have white tabs sticking out of them from the bottom. The computer would be able to pick up the brightest spot in its field of view (such as the white tabs on the sliders).  We first tried to use LEDs as the brightest point for the computer to see. But they let off too much light, and we couldn’t get a specific enough rating. We used processing for the code that would read the lights.

Knowing that the computer vision code was a little iffy, we started working on a backup. We started making a prototype with reflectivity sensors. A reflectivity sensor works by seeing how much light is reflected off the surface it’s looking at. For instance the color white reflects a lot of light back, and black reflects a little. Using this knowledge, we put the reflectivity sensor on a black and white checkered track, and it can tell as it moves from a black checker to a white checker.

We are using two reflectivity sensors to be able to track where it is on the track. If we used one sensor it would be able to tell when it went from black to white, but not in which direction. With two reflectivity sensors, we can tell which direction it’s moving by what color the sensors see and the order in which they see it. We have the reflectivity sensor working.

We found a problem with the reflectivity sensors. If a person were to move the sliders too fast, the reflectivity sensors wouldn’t be able to act fast enough to get the readings, and they would have to be recalibrated. We decided to switch to a gradient. Using the gradient, we could tell the exact position of the sliders at all times. This way if a person moves the sliders too fast it won’t matter and the sliders will recalibrate themselves.

We got to a point where we had two prototypes- a prototype for the computer vision and one for the reflectivity sensors. The computer vision prototype worked great but to create our table at full scale, it would be much too complicated. We decided that the reflectivity sensors were more reliable.

We originally wanted to make the table 25 feet long, and have sliders for each note in the piece of music. The museum restricted us to only eight feet long, so we decided to make the table eight feet long. Because of this, we decided that instead of doing the entire piece of music and having 177 sliders, that we would just do two phrases. We did phrases seven, and seventeen as both phrases had eight events each, equaling sixteen sliders total. Once we had all of this information, we started to design the table. We had decided earlier that we were going to have the sliders ride in a C channel with the gradient on the inside of the C channel. That was the only thing that we needed to add into our design.

The table we designed has 16 legs. Each leg represents a musical note in the piece. The legs are all made out of data, which determines the look of the leg. Each leg has four points, which vary based on the loudness of that note, the pitch, and the spacing of the note. We chose to do 16 notes because that is the number of sliders we have, and we wanted to keep it consistent.

Once we had come up with the concept on what we wanted the table to look like, we started to model it. When we were still thinking through the concept of the table we made a 3D model just with random data and random points for the legs. We all decided we liked the design we had come up with, so then we modeled it for real.

We got the data for the legs from some code we wrote, and that code turned the data into graphs. Once we had the graphs we went into illustrator and traced over them, so we had them in a .dxf file so that we could use them in the model. Each leg of the table has a corresponding graph of the musical note.

Once we had the lines for the legs from the graphs, we started to place them where the legs would be, to see if we still liked the overall shape of the table.

We decided the table design was still a go, so then we modeled it once again with all the right dimensions. We decided that the table would be two inches shorter than we had originally planned, just to make it simpler to cut.

Modeling the table with the right dimensions was much harder than modeling it for looks. We had to take into consideration the thickness of the materials, and how each piece would fit together. We are using a CNC Cutter to cut out the pieces. Unlike a laser cutter, which we are used to using, the CNC Cutter cannot make sharp corners and only makes rounded corners. This is because it uses a drill bit to cut. Usually we would design something like the table as puzzle pieces that fit together. Instead we designed the table as if we were building it with screws. We were essentially designing a piece of furniture that would fit together as if it came from Ikea.

This part of the design was very difficult. As we worked on the computer we kept messing up every single unit of the table. It took a few tries before we had designed it correctly. The next step was to make the pieces all 2D, so they would be in a format that the CNC Cutter could read.

Once we had the table and the pieces cut out, we had to take table and put it together. We had to go through and sand each piece down. We had to sand the edges so no one would get splinters and also the fronts to smooth them and clean them.

Once we had them all cleaned we laid each piece out so that the pretty side was facing up. When we had arranged the pieces, we started to stain them. We went over each piece with a cloth, to get all the dust out and then paint the stain on each piece. We did the big pieces first, so that they would dry first so we could start putting the top together when they dried.  It took a long time to stain them. The big pieces took about an hour to stain. After we finished the big pieces, we started on the legs of the table. We spent two hours staining the legs. We used an entire can of stain on the table.

Once we had all the pieces stained, we started to put it together. We made a template so we could get the screws in the same place every time, and then started to put the table top together first. Once we had the tabletop put together, we started to put the legs onto the table. We had numbered each of the legs before we stained them, so it was easier to put them back in their place.  We put all the legs in, and thought we were done. We were feeling very accomplished. But, we had assembled the table upside down, and when we went to flip the table over right side up, every single leg fell out. It was slightly discouraging. We persevered, and then put entire table back together again, this time wood gluing the back of each leg so they wouldn’t fall out. 

After the table was together, we had to add some support for the tabletop. The table is eight feet long and because of its length, we had to add supports all through out the tabletop so it wouldn’t droop. We cut eight 2x4s and screwed them into the sides, so they would act as a table for the tabletop to sit on. Oh, the irony.

After we had the tabletop essentially put together, we had to figure out the inside of the table, and how everything would fit together. We decided that the C channels for the sliders to go in would sit on some 2x4s and be drilled into place to keep them steady. Once we had the design done we felt pretty accomplished, but we were nowhere near done.

Each knob in the table has two reflectivity sensors in it. We had to solder every single one of those sensors together. It was in total 32 sensors to solder together. It was a lot of work. Each set of two sensors had four wires coming from it, ground, five volts, and two input wires. It was very hard to solder the sensors. We probably soldered 40 sensors together, but some of them didn’t work, and it was easier to solder new sensors together than try and fix them. Each set of sensors is soldered to a seven-foot long ribbon wire.  The sensors were not fun to put together.

We also had to work on the design of the knobs and sliders in which the sensors would sit in. We had a tone of different designs. Our very first knob design looked like a roll of Laughing Cow cheese. There was a lot of controversy through out the group over weather we wanted the sliders to look like this. We then continued to design the knobs in different ways. We had one design that we all really liked that had concave edges and really fit well in your hands. Unfortunately when we tested this slider out, the knobs had too much torque. We had to change our design concept from knobs to sliders. Our new concept was to have little sliders that you could rest your finger in to move. The sliders are low to the table top and easy to move.

Each slider sits on top of another slider that is inside the C channel. The sliders in the C channel are designed to give minimum friction, and keep the sensors at a fixed distance between the gradient. Our first slider designs were big chunky blocks that fit perfectly in the C channel. Although those sliders worked, they weren’t nearly the best or the most efficient design. The next design we came up with was similar to our block design, but hollow. This design has even less friction, and saves plastic when we print them. Each slider is made of one blocky slider on the bottom, where the sensors and electronics are kept, and one pretty slider that screws onto the blocky slider piece. The pretty slider is the one that the people who interact with the table will actually use

We put together the table at Nuvu and made the sensors and sliders. Once we had everything together, it was time for us to take everything down to the MIT Museum and put it all together. The table is 94 inches long, 24 inches wide and 30 inches tall. We had to walk it over to the MIT Museum. Luckily the museum is only a few blocks from Nuvu. The tricky part was getting the table out of Nuvu and down the stairs. Once we were out on the street, we put it on a dolly, and rolled it down the road. When we got the MIT Museum we used the freight elevator to get it to the exhibit where it would be displayed.

Once we had the table physically in the museum, it was time to install the electronics into the table. We had all the electronics done, but just hadn’t physically installed them within the table yet.

The first thing that we had to do was put the gradient on the C channel. We printed the gradients on a poster printer and then cut them out with scissors. Once we had them all cut out, we used spray adhesive, and put the gradients in the C channels. This was very difficult and stressful because it had to be done precisely, and we essentially had only one shot to do it. We put the first gradient in no problem, but we screwed up putting the second one in, luckily the adhesive hadn’t set yet so we could try again. We got the gradient in perfectly the second time.

Once the gradients were in, we had to unscrew the C channels from the table so we could slide the sliders in. The annoying part was that we could only put one slider in at a time, because we couldn’t get the wires tangled.  Each slider had to have the wires threaded through the bottom of the C channel and the wires were seven feet long. It was annoying work to do.

Once we had all the sliders in, we realized we would have to calibrate each individual slider, which we knew was a possibility, but we were really hoping we wouldn’t have to do it. Well, we had to do it, and it was long tedious work. Once this was done, we thought we were done, but we were still having some problems. We then realized that one of our arduino’s had broken, which explained the funky numbers we were receiving from the sensors. Unfortunately we realized this too late, and our deadline for the exhibit was only a few hours away. We did not end up having it finished for the exhibit opening party, which was a little disappointing, but people were still very excited about it. We finished it the next day. It will be on exhibit at the MIT Museum for three months. It is really cool that our team, four high school students, made a museum exhibit! We are all really proud of our work.

 

Slider Design

Saeed Arida

The table allows for the manipulation of two phrases of the piece, each phrase with eight events. Each event is a 3D printed slider which sits in a modified c-channel which corresponds to either a note or chord. On the wall of the c-channel is a strip of paper with a gradient from grey to black. Each slider contains a sensor which measures the reflectiveness of a surface; by this method, each slider can return its exact position along the track. The sensors in each track are wired to an Arduino Mega, and both Megas are plugged into a Mac Mini. The Arduinos execute code which records the position of the sliders along the track and then sends them via serial communication to a Processing sketch on the Mac Mini. The Processing sketch uses the position data to create note on and note off commands at different times for the events in the phrase. The Processing sketch utilizes a MIDI library in order to create the piano sounds.