Why Use Scripting?

For some, the use of scripting or programming may never be a factor in how they go about creating their music, as the tools they have already are enough. But for some, it may be easier to go about expressing their needs musically by use of script. and for others, there just might not be anything available to do what one wants to do.

Within blue, there are many ways to go about expressing and designing your musical work. Included with blue are the built in SoundObjects which can take in standard csound scores. Together with the use of the noteProcessors in blue, already there are the tools to write standard csound scores, move them in time, and manipulate those scores by adding or multiplying pfields by user given values(to achieve things like scaling amplitudes or transposing notes) or retrograde notes.

However, lets say you might find scripting in your prefered language to be easier to achieve your goals, or you want to use a scoring language other than csound's standard score format, or someone has advertised a new set of scripts or libraries to use. you could do all of this within blue.

In my case, I was recently modeling an object system that represented a musical model that hasn't been used much in current electronic music programs. I enjoy using the blue environment, but this was a case where I needed to do some work by programming, and the existing tools didn't exist in blue. The process was pretty experimental and the use of compiled languages like Java would have been slower than using a scripting language, as the prototypes for the object model I was building were changing rapidly. What ended up happening is that I worked in Python within blue using the Python SoundObject, developing my core objects, and was then able to rapidly experiment with composing with these objects by using other Python SoundObjects which used my core class definitions, moving them around visually and listening to how the musical output. I could have done all of this outside of blue, strictly using script, but the visual element and the ease of quickly copying blocks of Python script and moving them around, made experimentation much quicker and more apparent to me. A great benefit out of all of this is now I have a prototype which I can then perhaps use to program SoundObjects for blue in Java, maybe adding a GUI to the object to control parameters, making the process of using the SoundObjects that much easier.

The total process of prototyping and experimenting was a great experience, as I felt that each part of the process functioned to help me best express what I was going after. I used script to quickly create the objects I wanted to use to model the musical model I had in mind, and then used blue to experiment with those scripts to hear the sounds they could produce.

Finally, it lead to strong candidates for objects which I could go on to build in a more generic fashion for everyone to else to use in blue, adding to the compositional possibilities.

In the past, I've also built simple functions to do a very specific task, like "add a value to all p4's of all notes". Something like this could be the case where you have a simple task that might be monotonous and you could probably achieve your goal much more quickly by a little script. (For example, I want to generate a test file for my orchestra and all it has are notes lasting two seconds duration, whose start times are every three seconds; something like this could be done in maybe 6-10 lines of script, regardless of the size of the orchestra.)

Those are some of my reasons for the use of script for musical work, and I'm sure others have their own reasons. In the end, it's up to you to evaluate your situation and see if it will aid in your work or not.