SandBand History

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.

Screen Shot 2015-11-24 at 1.24.23 PM

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.

Screen Shot 2015-12-09 at 8.42.30 PM

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.



P-Comp Final Part 2 – SandBand

Recently I went to the Ted Talk Live about Science and Wonder where Tierney Thys discussed how increasing our interaction with nature can improve our lives.  This encouraged me to stick with the sandbox idea.  There is something to be said for getting people to actually feel and move the sands with their hands and I like the tactile experience I hope to create with it.


The measurement of the sandbox would be approximately 3′ x 3′ x 8″.   I am still unsure if I plan to use sensors or the Kinect.  I found this Kinect example from UC Davis.  It uses the depth data to project different colors like a topographical map.  They also provided instructions on how they created their project.



Although, I would like to learn about how to use kinect for depth analysis, I think that the effect might have a more magical feeling if pressure sensors are used underneath the sand.  They would be set up in a grid pattern to create However, I am worried that the movement won’t be able to be captured easily or accurately.

I think with both of these I am still confused on how to make a nice combined sound rather than it being just a bunch of noise.  My idea is either to run it in a loop where it would hit each sensor in a sequence and play sounds in that order or I can do whichever is the tallest/heaviest is what noise is playing.  For the latter, I think it could be the most effective for making a fluid sound but I am not completely sure on the logic of it all.

For now, I have started doing the MIDI lab on the p-comp website but stopped when I talked to one of the residents about using the MIDI device.  I have plans to meet up with a resident to discuss this in further detail.  I also plan to make the box for the sensor this weekend.  If I can’t make a nice box, I plan to buy a sandbox turtle like this:

P-Comp: Final Play-testing 1

Sand Band (working title) is a musical sandbox.  The box will be scaled to different section that has a corresponding musical instrument.  As each user makes a shape or “castle” in the sandbox, the weight of the sand in each section will trigger the note of that the instrument plays.  The sandbox will be big enough so that at least two users can play at a time.  It is undetermined if the users will initially be aware of that they can create sound with their sand castle or if it will come out as they work.

Screen Shot 2015-11-04 at 8.21.55 PM

Screen Shot 2015-11-04 at 8.22.14 PM

An additional part of this is to connect it with Rebecca’s and Kevin’s P-Comp Finals.  Rebecca’s project creates a visualization based on the user painting/moving pine needles on a canvas.  Kevin’s is a water based project that would interact with both of ours.  At the time it isn’t determine what the effects would be.

As I am writing this, I am becoming less and less sure that I actually want to do Sand Band.  I will decide after play testing.

P-Comp: Week 8 – Final Brainstorming

I am still unsure on what the exact details of my final will be but I have found myself gravitating towards adult play.  There are a few parts to this.  The first is giving a lack of instructions.  I like the idea that an adult will use their curiousity to test out things when they aren’t given step by step directions.  Also, I like having an aspect that would make someone do something that would normally considered strange (for example, make a strange noise or move in an odd way.)  The final part is the physical touch of it.  I want to have something that feels good to touch so it makes people want to play with it.

With that being said, this is some of the ideas that I came up with:



One idea is the Music Grass.  This is an idea that was thought of with Paula Ceballos.  We discussed having some form of strings that when you touch them, they create a light and a certain note.  As this idea was discussed, we branched off into a couple other ideas.  One that I liked is a musical instrument made out of “grass.”  For this, it would use EL wire to create light when you touched it. Then using a mapping function we can have different types of sounds come out depending on where you touched it.  Theoretically, you would be able to play it as the user learns where to touch it to get a certain sound.  Another aspect of this idea is that it is scalable with the number of wires and placement.  The sensor to use is still not completely clear but I am toying with idea of capacitive touch.

Another idea is to take old fashioned toys and add a level of technology to them.  An example of this is making an etch-a-sketch that uses volume and frequency to control it.  I previously did this in ICM using just a digital etch-a-sketch but I could add in a motor to move a physical etch-a-sketch and have a microphone attached.


A final idea that is Sand Band.  Sand Band is essentially a sand box that would have sensors on the side and play music/sound based on the height and position of the user’s “sand castle.”  For this, I think the challenges would be figuring out the sensors and how to create a nice noise.  For the sensor, I am currently thinking I could use a proximity sensor to base it on the depth and have multiple ones around the box with different distances so where you “played” would have different notes.  In regards to the nice noise, I could either have a delay in the note or possibly just have a specific sound playing that would repeat.  An inspiration for this is Gilles Azzaro turned a 39-second snippet of President Obama’s 2013 State of the Union address.   However, I don’t think this has a sensor that is actually reading the wave forms.

9 Amazing Pieces of Art Sculpted Entirely by 3D Printer




Update: Another Reference for Sand Band

Week 7: Midterm – TrumpPong with Joysticks

For our Midterm, Lisa and I decided to adapt her Trump Pong project to work using physical parts.  We started by easily adapting potentiometers to each of the paddles (shown in the video below.)

Trump Pong with Potentiometer Test 1 from Lindsey Frances on Vimeo.

While it was easy to adapt at first, we found some troubles with the serial monitor.  At first, we tried to add in a handshake between arduino and p5.  While this helped with getting rid of the delay of the trump ball, we still ran into issues with not being able to play and receive data into p5 once the sketch was closed out.  After meeting with Sam, he was able to install a server fix that now consistently works.  Since the code works, we attached the components to the box Lisa made and now have our own personal trump arcade game with joystick:

IMG_2006 2




Here is a link to our codes.

PComp: Week 6 – Serial and P5

This week we combined our Arduino and P5.  The labs gave me a lot of difficulty at first.  I had multiple issues from P5 freezing or quitting unexpectingly to the graphing lab not working because I didn’t plug in the wires but the most frustrating thing about this lab is that it will work and then suddenly not work.  By that, I mean that I was able to get the graphing lab to work (see video below) then I would simply close the window to rerun the program and it would not work.  Is this due to the delay in the arduino? Does it need to be longer?

Graphing with P5 and Arduino from Lindsey Frances on Vimeo.


I tried to be a little more ambitious and connect my ICM assignment this week with this assignment.  The original P5 looks like the below video.  I tried to change the first slider which changes the x value of the bezier and creates a different type of “wing.”

Butterflies from Lindsey Frances on Vimeo.

Here is my code and my video of the application in use is:

Butterflies with Potentiometer from Lindsey Frances on Vimeo.

I ran out of time to do this but I wanted to add a second potentiometer to control the y-values.  Would I be able to do this by using the same Arduino code and just adding a second variable or would I have to do something in addition?

ICM: Week 7 – DOM

This week we learned about DOM elements.  For inspiration I used Moon’s workshop example.

Moving Triangle from Lindsey Frances on Vimeo.

After manipulating it a little, I created what looks like abstract butterflies.  Then I added some sliders and buttons to change the colors.  I tried to create a slider to change the amount of “butterflies” but found that since that for loop was in the setup, I couldn’t get it to work.  Would I have to make another function in order to do this?

Butterflies from Lindsey Frances on Vimeo.


  • Is there a reason it is more useful to put HTML and CSS elements in the Javascript file than having them in their own individual files?
  • Is there a way to have font from an HTML element put behind an JS element?
  • Can the font style be put together in one style function rather than multiple lines?

Week 5: PComp

With redoing the Servo lab, I changed the code to make it turn 360 degrees.  However, it doesn’t seem to move a full 360.  Is this just due to the micro servo’s ability or is there something wrong?

Servo 360


Untitled from Lindsey Frances on Vimeo.


Here is a simple application (disclaimer: I do not approve of the use of real guns for this application.)

Servo Movement from Lindsey Frances on Vimeo.



In addition,  to this I was wondering where the Duplex Serial Lab is.  Serial Communication I think I understand to some extent but something is not clicking and I am not exactly sure what it is.

ICM: Week 5 – Galaxies and Synthesis

This week was a two-parter.  The first part was the Synthesis Event.  During this, we partnered up to make a one button system.  For our idea, we were going to make a pick-up line machine that was triggered by a proximity sensor.  Unfortunately, we could not get our system to work.  At the end, the farthest we got was the proximity sensor to give one pick-up line but we couldn’t get it to go through random ones.  I think if we had a little more time, we would have been able to finish it.  It was a great lesson.

Synthesis Project


In the second part of this week, we learned about constructor functions.  For this my intention was to create a galaxy.  My first iteration looked more like a tornado.  While, I think it looks beautiful, it wasn’t what I was going for.

Galaxy Tornado from Lindsey Frances on Vimeo.


My second attempt was a little closer once I decided to use the equation for a hyperbolic spiral but it was too structured and circular:

Circular Galaxy from Lindsey Frances on Vimeo.


After being shown that I can have the angle in the hyperbolic equation be my main variable and use that as the parameter in my for loop, I was able to mess around by adding a spiral function to finally get the galaxy that I wanted:

Galaxy from Lindsey Frances on Vimeo.


The step I couldn’t figure out was how to repeat it after a certain point.  I did learn that if I square the angle for the x in the spiral function, I got an interesting vertical line pattern that moved as if it was coming toward the screen: Square Cosine

Vertical Lines from Lindsey Frances on Vimeo.


Question: What is the best method to restart an object’s function?



PComp: Week 4-Review and Revelation

This week was a week of review for the class. As I have not been good at posting my pictures of me doing the labs, I have included them here.  While I have done them, it was easy to follow along with the labs. However, it was harder to come up with applications because I think I got lost on what would be an application and ended up feeling embarrassed.  Last week was probably the tipping point of this as it ended with me just not being able to process information and just having a feeling of defeat.    I just had this fear of being wrong which froze me.

Untitled from Lindsey Frances on Vimeo.

Previous LabsIMG_1876Previous Lab

During this week of review, I realized I had to change my approach in learning.  I decided to review all of the labs I had previously done by first just reading them first before actually doing them.  This allowed me to see if I could visualize it. Then I would redo them trying to recreate them without the text.

I learned that the hardest part for me was programming the Arduino. While I understand the analog versus digital and read versus write, I get confused when setting up a new program or adding a new piece.  For example, for my simple application, I wanted to create a “magical keyboard” with photo sensors that would change sounds based on the amount of light.  When I started to do the lab, I quickly saw that this was what the lab was about.  So I tried to experiment with the lab still and change the pitches to map at different values but it never seemed to change for one of the sensors.   I was confused because in my mind, the part of the function should be  able to be repeated at with different values.  I finally figured out that my numbers weren’t at a large enough range. I ended with this result:

Error Message
Error Message

Untitled from Lindsey Frances on Vimeo.

Instead, I decided to try to combine digital input, analog input, and analog output by trying to create a sound machine that would change between two ranges of pitches when the button was pressed for the potentiometer to be turned to. However, when I tried to combine this, I found the pitch of sound to vary when the potentiometer was turned but when I pressed the button, just one sound was released.  Is this due to my circuit setup or my code or both? Also, why is the volume of sound so quiet? Is this due to the speaker not being of great quality or is it something that was done in the setup?

Untitled from Lindsey Frances on Vimeo.

Potentiometer and Button Sounds
Potentiometer and Button Sounds

In the end, I am still not sure if this is the right approach to this weeks blog and if my simple application is sufficient.  However, I am going to just focus on what I learned this week and what I want to learn in the future. I have already started to come up with ideas for what I want to do for the midterm and final.  As I am now feeling more comfortable with asking for help, I plan to set up office hours to understand how to make my ideas come to life.