ShellVerb: Csound Command-Line Effects Processor

About a month ago, peiman posted a question to the Csound Mailing list about the possiblity “to batch process several audio-files with the same csound code.” Prior to this, I had never considered using Csound in this manner.

After some discussion on the list about how to do this, I presented a simple solution using the command-line. This bash call was then refined by sand-6.

I continued to work on this, as there were still a few unresolved issues. For example, designing Csound instruments that would process mono or stereo files automatically, and being able to set parameters from the command-line. I wrote ShellVerb v0.1 to demonstrate a way to build these abilities into command-line instruments. Though I wasn’t completely happy with my approach.

I revisted ShellVerb yesterday, and came up with ShellVerb v0.2. This version, in theory, works identically to v0.1 as far as the user is concerned. However, I made some changes internally that I hope are a bit more clear to those wishing to analyze the file so they can write their own Csound based command-line audio tools.

It turns out that not only can Csound be used as a batch processor, but it also makes for a damn fine one. Csound is chock full of filters, envelopes, digital siginal processors, spectral processors, etc. From these synthesizer/dsp modules, one can design very complex effects units that would be impractical to implement in most other products out in the wild. Since the original post at the mailing list, I’ve heavily incorporated Csound command-line processors into some of the projects I’m currently working on, with stellar results.