Saturday, August 27, 2011

What Am I Looking For In Music Software

I have spent a lot of time in my life playing with different music-making software, getting excited about what can be done, and ultimately getting bogged down or frustrated. I have also spent a reasonable amount of time working on custom tools for making music. So what am I looking for? And why haven't I found it yet?

It seems in the past ten or so years, music software and technology has become much more powerful, usable, and accessible (i.e. cheap). This, combined with the convenience and ease of digital distribution, is why Cartoon Beats came about - we are mucking around making our own music, and if we are going to be hustling around labels and DJs trying to get them to promote our music, we might as well release it ourselves. So that's great, but something's still missing for me.

Producing a track, and DJing it out have become completely separated for me - one of them involves sitting at a desk, endlessly tweaking and fiddling with a timeline UI in software, the other involves standing up, bashing buttons, waggling my arms and/or nodding my head while subtly adjusting various aspects of a fixed and unchanging recording. I crave the ability to combine all this into one activity - the power and flexibility of composition and production with the immediacy of DJing.

Alongside this I feel a huge disconnect between how I used to make music, when I was in metal/rock band - jamming, noodling on riffs with other players for hours on end. The music was definitely not locked to any timeline, and often evolved in front of you, even if many of the elements were pre-planned or rehearsed. I miss that! And I thought that by now (ten years later, surrounded by supercomputers and extremely affordable USB MIDI gear) it would be much easier to achieve!

So I have tried out lots of software with these kinds of goals in mind. And always found myself wanting more..

So what is it that I want?

Power & Flexibility or Expandability

I don't want a system to present arbitrary limitations or obscure or prevent cutting edge algorithms/processing from being used. A simple example - I want completely flexible routing, which most software provides these days (GarageBand doesn't; Reaper does). A more complex example - should I read about some clever DSP technique, I don't want to have to wait for someone to write a plugin, or attempt to write one myself; ideally the technique can be implemented/prototyped directly in the software (e.g. Pd contains many units which can be used as building blocks to build up arbitrary processing; the same technique in Reaper might require a custom plugin, or a complex mess of routing connecting many plugins). Another way of looking at this: if I happen upon some interesting technique in a tutorial or academic paper, it should be possible to apply/adapt the technique.

Modularity or Abstraction

This is essentially the flip side of flexibility - a complex graph of processing units, or a sequence of audio samples, or notes, should be able to be treated as a single unit, with useful parameters exposed. I have found that this is a limitation with timeline-based software (e.g. Reaper or GarageBand) - a channel is a single level. You cannot for example sequence some audio and then treat the sequence as a unit; you have to paste it, warts-and-all, around the timeline to reuse it, and of course, you can't easily adjust something in all these pasted copies. MIDI clips are one way around this. Also I find myself wanting to package up snippets of automation data.

Visibility

By this I mean not obscuring things. VST plugins for example, are really great units with lots of expressive power packed into them; but more often than not the actual core of what the plugin does is obscured from the user. This is especially frustrating when you have lots of plugins that do subtle variations on the same thing. I don't want these things to be a black box - I want to be able to find out or understand. Note that this is distinct from abstraction above, which allows the user to package things up and (temporarily) obscure the details. Also important here is that the techniques, musical information and processing used in a track should be as easy to get out of the system as they are to put in (so you aren't locked in to the system).

Casualness or Immediacy

Traditional musical instruments and musical gear have presented a very casual kind of interface - you pick the thing up and start playing it, or connect it to a sound system and turn knobs. I want this kind of expressive power to be possible or available to me. What I don't want is for production to be something that I have to lock myself in a room for hours to do - I want it to be more like a toy, and something that I can attempt to involve my kids in (or expose them to). You know, like picking up a guitar.

Conciseness or Efficiency (or Scalability)

I have only recently realised how important this is to me. As my projects got more complex, I found that I was more constrained by previous decisions. With modular software such as Jive (or Pd), while it might technically be possible to play a complete live set of a few original tracks, to do so would not really be feasible. This really ties in with modularity mentioned above, being paranoid about backing up/losing work, and the fact that my day job is writing software. A text-based file format (as in Pd), or even text-based user interface (SuperCollider, or any one of many audio programming languages) is a huge advantage from the point of view of organising the content in a project. On the other end of the scale for example, a binary file format that folds in midi information and audio samples etc is not ideal.

So I'm delighted to announce, I have found a system that appears to do well in all these respects - SuperCollider. In future blogs I will go into why I am so happy with SuperCollider, and what I have been doing with it - but rest assured, I have been jamming with it, playing with it as a musical/audio toy, experimenting with the low-level nuts and bolts of audio processing, and even working towards playing live with it.

Of course this is my own idiosyncratic view, and I don't have much experience with non-free/cheap musical software. In particular, Ableton Live, AudioMulch and energyXT all seem potentially very useful. So feel free to chime in with your experiences...
  • What do you love about the software/system you use to make music?
  • What do you hate?
  • How do you (or how would you like to) perform electronic music live?
  • What do you wish your system could do?

2 comments:

Slag said...

Man, comprehensive post! Wish I could add more than that but I got no idea about this stuff.

Haszari said...

Ha - cheers! I wish I was as expressive and productive in music software as I am in english/blogger, took less than an hour to write! (Although simmering on it for 10 years obviously.)

Perhaps the forthcoming detail/tutorial posts will encourage you to have a go with some audio..