SandBand started out as a simple project to encourage people to play like they did as a child. I wanted something that would be simple and not take much knowledge for someone to use. Sand seemed like the simple solution as it’s something most people have come in contact with. Although, SandBand ended up working with some tweaks still needed for the sounds, it was not the easiest journey.
During brainstorming, I came up with the concept fast and simply. The project was going to be a simple sandbox with some sensor telling when the user moved the sand.
However, the problems started soon after that. It’s something that a few of us like to call a “dark day” or in my case a “dark week.” It’s where every idea you currently have seems awful and then it can start slipping into any idea you have ever had. It makes you question everything and just feel lousy. During this time, I started to wonder what it was I really wanted to make and why I wanted to do it. I was about to scrap the whole idea but couldn’t get it out of my mind. I was given advice by lots of people but one of the best advice came from a friend who simply said to just do it to get it out of my head. Because SandBand became a mental block and I couldn’t move forward with any other ideas, I had to finish the project to see what it could be.
Another obstacle that happened during this time was combining this project with another project that used pine needles to create an image. At first, this seemed like a great idea since both of these used nature for the material interaction and we did the first play-testing as a combined project. During the testing, I found that most of the comments were about one project or another and not about it as a whole. This combined with my “dark days” made me second guess the collaboration. In the end, I decided it wouldn’t be fair to my other teammates to hold them back in their project as I decided on what to do with mine. While in retrospect I could see how the combining of the projects could have been great, I still think it worked out for both projects individually.
Once the decision to move on with the sandbox as is was made, I had to start to create the concept for how it would be complete. Originally, I wanted to create a box that had sensors the users wouldn’t have been able to see. In my mind, this would encourage the users to explore how the project works without just seeing how it works. By using weight sensors at the bottom of the box, I thought I could do this. The box would be separated into sections so that each section would have a separate sound and could independently be triggered.
I started by researching how to create force sensors. Through my research, I found that the weight sensors aren’t easy to create but I could use fsr sensors. I found many tutorials on how to make fsr sensors. However, I still found myself not wanting to build it and after meeting with T.K., he suggested to use the Kinect. I struggled with this idea at first since it seemed like it would take away from just playing with sand but he pointed out that to use the fsr the user would have to add and take away sand for it to work. If that wasn’t done, the user would never really be able to create all of the potential sound. By using the kinect, the user could just move the sand or build a castle without changing the amount of sand. This solved the obstacle of the sensor issue.
At this time, the second round of play-testing occurred. For it, I had set up a box with regular sand and then a box of kinetic sand. Bringing the kinetic sand seemed like a suitable replacement for wet sand since the idea was for the user to build sand castles but for play-testing it became a problem. Most people were so distracted by the sand, it was hard for them to focus on what it would do. To be fair, this was also due to SandBand not being set up fully. While at first it was frustrating to not hear my classmates opinion on the full project, I used this as a learning opportunity. It taught me that SandBand can be fun no matter if the music part works or doesn’t because in the end, most people just want to play with sand. Even later on when I made actual sandbox and filled it, I had a lot of random requests to just place their hands in it. Most people still wanted me to use kinetic sand, it was far too expensive for the amount I needed.
The other part of the play-testing was how to create the music. Most recommendations were to create a way so that the users could actually make music, which validated my original idea. However, as I started working with the Kinect, I learned it wasn’t as easy as I thought it might be.
The first issue was actually setting up the Kinect. During my research, I found the SARndbox from UC Davis. In this, they used the Kinect to create a projected image based on depth. I assumed I could adjust the coding from this to have music change instead but as I began to download the provided software and code, I kept running into dead ends. The biggest one was that the software only worked on past Mac OS versions. I decided that there might be a better way to do this than using the software I didn’t understand.
As it so happened, Daniel Shiffman had examples on using the Kinect with Processing. I began to use some of these examples as a starting off point and things became much easier. I could finally get the Kinect to give me information. It was at this point that I ran into another problem. My mind could not wrap around how to create grid and get the average depth of each of the cells and then connect those cells to specific sounds.
The first step was creating the grid. I met with Shiffman and he taught me to do this by creating four for loops. In doing this, I split the area into different sections with the first two for loops and then the second for loops analyzed the pixels within those sections. Once that was complete, I could get the average in the depth. I understood how to get the average of the depth as a whole from the example shown but to do it in the different sections didn’t make sense. At this point, I had another office hour with Moon to help me understand what to do. He explained that I could move the sum code into the for loop to get the average in each area. Once that was figured out it was easy to use each average depth’s to connect to the volume. There are some issues with the Processing Sound library. Depending on the songs I picked out, processing ended up crashing. After discussing this with a few of my classmates and Shiffman, I learned that this can just occur sometimes with the sound library.
At this point, I had a code that was somewhat functioning and needed to start focusing on building the sandbox. Through this processes I learned how to cut the wood, use the router, and measure cuts correctly. The box ended up taking a little bit longer than I thought but in the end I was happy with the results.
Once the seal was dried, I had people help bring the sand. While I thought it would take somewhere between 50 to 100 lbs, I ended up having to get 180 lbs of sand. Although sand is cheap, it is not the easiest to transport which can be a huge issue and I wish I thought about prior to starting this project. At least the effort was worth it and many people wanted to play with it or were intrigued right away.
At this point, I was ready to connect the Kinect with the sandbox. Although, it worked, it was exactly the resulted I wanted. Luckily one of my classmates, Aaron Montoya, is an expert in sound and helped me understand how to use it better for SandBand. He first showed me that I could move the loop function above the play function to loop the sounds through. He also showed me how volume is created in a exponential way rather than linear way and to code this as such. The final part was to use Audacity to easily shorten the music. Thanks to Aaron, Moon, Shiffman, T.K., I was able to create a functioning code (linked here) that allowed the depth to affect the volume of the sounds. For the final presentation, I used Aaron Montoya’s and Naoki Ishizuka’s music. In the end, I know I still have some tweaks for the show like changing the actual music but am still happy with the results of SandBand version 1.