MUS 220A/256 - Final Project

Sonic Balls (Jing-a-ling)

  • Vision -

Sonic balls is a project being developed in both C++ and Chuck. The main theme of this project is to sonify moving objects (may they be balls or anything else for that matter). I thought it would be interesting to try and generate some meaningful form of music out of moving objects that were interacting with each other (in this case wildly colliding with each other). Another milestone that I have set is to create a useful object/plugin that can be used by other programs as well that can visually allow you to grab samples and pan them on the fly thus creating more room for improvisation.


  • Design -

This project was developed in both C++ and Chuck. The graphical interface was developed using OpenGL (which is a cross platform API used to develop both 2D and 3D graphics). I have tried to model the listening room (its still at a very basic level) and have the objects present in it be panned based on their positions. Through Open Sound Control (OSC), I send messages to ChucK that sonifies the movement of the OpenGL objects. For the purpose of panning, I use a patch that Jorge and I developed in Chuck, that pans a sound in the 16 channel listening room based on the given inputs. All the user has to provide is either cartesian coordinates or an azimuth and elevation and plug the sound source into the mapping patch. Voila! Your sounds will be panned accordingly. For now, I have two patches that sonify the movement of the balls. One of them is just a noise signal that is panned by the movement of the ball that demonstrates the panning. The other patch has a bank of songs that are mapped and panned based on the movement of each ball.


  • Future Improvements -

1) For starters, I would like to abstract every bit of the code so that it is easy to integrate with other patches.
2) The second thing that I would like to do is have sound samples visually load on the screen and then be able to move them around the vector space using a joystick or some other device.


  • Source Files and instructions -

Download the zip file given here. Read the readme for instructions on making the project and have fun!