Monday, December 01, 2008

Creative Computing Major Project

For my project I endeavoured to make a multiple-sample break-beat cutting program. The idea was that you could use it in a live situation to cut up and mix samples into a real-time composition.

"MultiCutter" ultimately did not reach its final form, however the concepts were all realised in some sense. The program uses GUI controls to change values of BBCut algorithms, which in turn change the playback of samples being cut up by each respective BBCut. I feel that the biggest success of my program was the efficiency of the GUI creation and BBCut instancing. The GUI slider, label and number box are only written once in the code, and are then reproduced for each control parameter for BBCut. This process is then repeated for each BBCut, meaning the slider, label and numbox are again duplicated and assigned a parameter. The BBCut is also only written once, but it is duplicated for each sample. This easily expandable environment would have eventually been used to change GUI elements and number of BBCuts depending on the number of samples chosen by the user.

I had two fatal bugs in my program; the worst involved trying to get each instance of BBCut to read an individual sample source. Each instance was assigned a number (under argument xPos) which I attempted to replace with a letter so that BBCut could use it as a buffer address. Replacing the instace number with a letter was easy (I left that bit of code in comments) however it simply would not work in BBCut as a buffer address. This meant that each instance of BBCut would not load a different sound file. Replacing the buffer address with a constant (“g”) results in each BBCut playing the same sample. This is how I have left the patch, as it proves that each instance of BBCut is individually controllable by its respective GUI.

The other bug involved using a master tempo slider to control every instance of BBCut. Looking back, I would have needed to redesign the code so that the TempoClock was outside of the instace-creating do-loop.

MultiCutter + Sound Samples : 370kB

No comments: