Technology may be about the next Big New Thing, but as with music making in general, making music with tech is for many of us a lifetime vocation. So, it’s welcome news to find that time-tested tools, maturing over decades rather than months, are enjoying greater use than ever before. We saw Pure Data (Pd) attracting new interest as the embeddable libpd version allows use in a range of development environments and mobile platforms. Now, it’s about to be Csound’s turn.

Of course, before we get to that, if you’ve got an iPad 2 or “3″ (aka “the new iPad”), you can more or less skip this entire article and start making wild new granular sounds on your tablet. (Sadly, the original iPad is excluded here because it’s a resource-intensive application, though owners of that tablet – and other mobile devices – have plenty more to anticipate in Csound world.)

csGrain is a multi-effects processor that works its sonic-mangling magic live on sound, making use of something called “SyncGrain,” a real-time granular synthesizer. You can record from a mic or import tracks from the iTunes library (including, of course, your own music), or even use an included sample loop. csGrain then processes those sounds via a rich set of sonic tools, either live or to a recording, with sharing via AudioCopy, AudioPaste, email, and Dropbox. You also get setting randomization and a range of live effects, too. If you’re unsatisfied by the “finger against bathroom mirror glass” feeling of the tablet, you can connect an external MIDI input.

And, of course, it sounds amazing:

All of that is nice enough, but the bigger news is how this is all possible – and what is yet in store. Think Csound running everywhere, including learning about the tool and coding with it directly on an iPad.

csGrain uses Csound, the composition and sound design language that traces its roots back to the first-ever digital synthesis languages developed by pioneer Max Mathews. (It’s worth noting that Max’s ideas inspired the work of Miller Puckette on Pd and Max/MSP, too, meaning these are “all in the family,” as it were. Some even argue the model had an indirect influence on modular synths.)

csGrain is the first of a series of apps using Csound, including a massive, promising, everything-you’d-ever-want-with-Csound-on-an-Ipad app, covering documentation and code. This isn’t just an attempt to “cash in” on a geeky sound tool in the midst of the App Gold Rush — far from it. The application is as much a teaching opportunity as product. You’ll be able to use the application and its documentation to learn more about the sound processing technique, and discover the Csound code that makes the app tick. For some, it could be a first introduction to Csound, without having to be enrolled in an academic class. And for developers and sound artists who do want to make their own Csound creations, an upcoming SDK will unlock the power of Csound on other platforms (iOS being just one). That brings the power of “run anywhere” portability to text-based language Csound much as libpd has done for the graphical-patching tool Pd.

This image of a developer build of Csound Touch should be enough to set Csound fans’ hearts racing. (Okay, not a huge segment of the population at large, but I’m fairly certain most of them read this site.)

Developer Dr. Richard Boulanger, who has been a driving force behind almost every element of Csound’s recent development from the stuff under the hood to the documentation and the community, is now taking that sonic energy and applying it here. (And I do mean energy: sonic whiz “Dr. B,” as he’s affectionately called by his students, practically bubbles with enthusiasm and ideas. I’ll have what he’s having.)

He tells us that even in its first day, csGrain has made a big impact – no small task for an App Store inundated with volume and an application most would consider to be pretty niche in appeal.

The launch of csGrain has been pretty exciting. At the App Store, on day one, in the Paid Music Apps Catagory, we reached the rank of #8 (out of 4000+ paid music apps). We had over 957 people view the csGrain video at the Boulanger Labs site, and we were contacted by Richard Devine and Jordan Rudess with praise, congratulations and advice. We got some pretty great reviews at the App Store such as this one…. (I have no idea who this is by the way… which makes it even cooler….

“csGrain is a must-have effects powerhouse for the iPad. The sounds, usability, and musicality of the instrument are at least on par with the Moog apps, but the the potential for extension and customization far surpasses anything else. If you want to blow your mind in two seconds flat with this app, just press and hold any of the parameters (esp the sync grain ones) and a randomization window pops up, change the parameters and get instantly out of this world sounds. I really like the integration with Dropbox and AudioPaste functionality. And while you don’t need it at first, the manual is very well written for when you want to dig deeper. My only complaint is that the app is not yet in Retina-display, but I am sure that will be coming soon. Another nice feature improvement would be to augment the midi capability, which is already awesome, to allow for automatic learning of cc messages based on input like the way Ableton Live works. All in all, this is most powerful effects application on the iPad. Good job!”

I should also direct owners of the first-generation iPad to Richard’s explanation of why you can’t have the app:

It really doesn’t work on iPad1. It’s optimized for iPad2 and the new iPad. In particular, the stereo granular processing is both efficient and amazing, but… it’s also pretty heavy for the iPad1 and we would get some
breakUps in the audio on that platform – so we just made if for the 2 and the new.

But let’s get to what’s coming next. Dr. Boulanger gives us the full scoop. I imagine him sounding like Vince, the Slap Chop guy (and with good reason):

[Last week] was the release of csGrain (one of Boulanger Labs’ focused/targeted “spin-off” apps) and there are others coming over the next few months. But Csound Touch – which is coming in about 1 month – is ALL of Csound on the iPad…

The Csound for iOS API and SDK will be offered in the next day or two with all sorts of working models…
It will blow you away… how “easy” it is to develop audio apps with Csound as the DSP engine.

our .csd files are all offered with the apps.

One will be able to incorporate Csound into their own apps, games, whatever.

csGrain is just ONE huge .csd file – running under the hood… and there is a button there to see the code and it’s in the manual that is included too.

- we are sharing many tricks right there. But there are also tons of tricks shown in all the models that come with the SDK

Csound Touch IS Csound – all of Csound – for the iPad.

It is built upon and synchronized with the latest version of Csound5

It supports the realtime “rendering” of any Csound “.csd” file.

It can render .csd files from within the Csound Touch App or from the Internet.

It includes realTime “Console Output” (for diagnostics and progress monitoring) and supports “OFFline Rendering” for the realization of the most complex and demanding of “orchestras and compositions.” (For instance, if you wanted to create a sound with ten thousand oscillators and five hundred reverbs and two thousands filters it’s not a problem. This is Csound… all of Csound… and with Csound the only limitation is your imagination!)

Csound Touch supports Realtime MIDI control of any Csound-based MIDI instrument.

Csound Touch supports Realtime iPad/GUI Control of Csound Instruments via custom OnScreen Sliders, Knobs, XY controls and a Piano Keyboard.

One can Save to Disk or Render to the speaker or any pro audio interface in RealTime or once can do both Simultaneously! Jam and Capture! Remix and Record.

Csound Touch supports Interapplication File Transfer on the iPad Import/Export via DropBox, Email and AudioCopy.

To get you started with Csound; to inspire your creative spirit; and to support your study and exploration of Computer Music Composition, Software Synthesis, Signal Processing, Algorithmic Composition, Physical Modeling, and so much more…
the Csound Touch App includes:

Chapter 1 of Boulanger’s “foundational text” published by MIT Press – The Csound Book

The “classic” Boulanger Csound “Toots” from the Csound Manual

Boulanger’s “Mastering Csound” Tutorials

and there’s more!

We include the latest Csound FLOSS Manual (and all the Floss Instruments)
We include the Canonical Csound Reference Manual (and all the Manual Instruments)

and even more….

Selections from Boulanger’s Csound Instrument Catalog (30 years of Csound Instruments)
Selected Csound Compositions from the Boulanger Collection and The Csound Mailing List

Selected Algorithmic/Generative Compositions

A diverse and useful assortment of Dr.B’s favorite DSP Instruments
A varied collection of Dr.B’s favorite MIDI Instruments

A collection of OpenSource Audio Samples from the OLPC Sound Sample Archive.

Of course, this isn’t just about iOS: Csound is now in one form another either available or coming soon to Android, Ableton Live (via Max for Live), Max/MSP, standalone desktop applications, and the Mac AudioUnit plug-in format. I agree when Richard calls it “The Csound Renaissance of 2012.”

By the way, I think Richard has given those of us working on Pd, too, a real sense of what we could do with that tool (as well as an excuse to play with Csound anew). He tells us:

PS…. The Pd Rennaissance is also very very wonderful – the new book, the new code, the new possibilities…. all extremely exciting. After reading your blog on bit ago, I ordered the book and am very inspired by this initiative as well. So…. all cool and extremely important.

I couldn’t agree more.

So, once again, the timeline for the Revolution:

Coming soon (in a month)

Csound Touch – all of Csound on the iPad! Run any opcode, run any orchestra, run any composition. Run the entire Csound Book, Csound Catalog, Csound Manual. It all works and it’s all there!

and the a few weeks after that….

More Csound Apps such as:

csSpectral – Realtime vocoding, convolution, and spectral processing.

csFuzz – a rack of guitar effects.

csVoice – a vocal synthesizer, harmonizer, processor.

csGen – algorithmic, probabilistic, and generative composition systems.

csModel – a collection of Physical and Physically Inspired Models.

csClassics – a collection of synths based on the classic techniques – FM/AM/RM/WaveShaping/Granular/Additive/Etc.

The Revolution will not be televised, but it will be at:
http://boulangerlabs.com

You can find csGrain on our exclusive, multi-platform Apps section:
csGrain @ apps.createdigitalmusic.com

An, as always, don’t miss the central repository for all things Csound:
http://www.csounds.com/

We’ll have an interview with Dr. Boulanger later this week, so if you’ve got questions for him, ask away!

  • Tom D

    Damn App Store stealing all my money ;)

  • nstarke

    Any idea what the price point will be on this?
    …not that it matters, I’ll be buying it no matter what I suppose.
    Also could we get a more exact release date?  I’m already hitting the boulanger labs site 3x a day
    …because I am a nerd…

    • http://pkirn.com/ Peter Kirn

      Heh, I don’t think they can give a solid date — too variable both on the development side and waiting on Apple to approve. But do send along any other questions. I’ll see if Dr. Boulanger is yet able to talk price for Csound Touch. 

      csGrain is of course US$9.99.

    • nstarke

      I’m interested to understand how the GUI will interact with CSound Touch.  I see in the images what looks like a custom built UI (will there be some sort of UI designer?), if so what input controls can we expect?  Also, how exactly will those controls hook into the code?  I mean, how can I reference the controls to use their output values in the code? In languages like SuperCollider, when you are interfacing with OSC or MIDI you have to have a ResponderNode that acts in response to a message being sent to it. What will the design paradigm going to be like in CSound Touch? 

    • Steven Yi

      There’s documentation that will come with the Csound iOS SDK that explains getting values to/from Csound (SDK should be released tomorrow).  It boils down to the Csound code using chnget/chnset opcodes to write to a named bus audio, control, or string values.  From the host application, you write values to Csound (or CsoundObj) with the same names as those in the CSD.  With this design, you’ll be able to use the same CSD within an iOS app, an Android App, Java Webstart application, and a Desktop application, and all you’ll have to do is focus on the UI design/code that is native for that platform.

      Writing/reading is done at block boundaries, and the app developer has the freedom to deal with values on another thread if it is a long running process.

      The SDK will include a test iOS application that has a number of examples that show different scenarios for how to do different things with Csound. The examples were made to demonstrate a technique in using the API, so aren’t the prettiest to look at, but on the other hand, should be very easy to copy/paste and get going for whatever applications you are interested to build. Also, it shows how caching is used to deal with updating values from UI elements to minimize overhead.

      As for Csound Touch, I believe it has a built-in UI Editor, and that the “Controls” button shows options for what kind of control to add to the screen.  I haven’t looked at the app since very early betas though so can not confirm anything.

  • digid

    Are people familiar with the pretty unknown Cecilia 4.2 app? It’s absolutely fantastic, and based on Csound. If anything remotely similar is possible on the iPad … my tube rides to work will suddenly become a lot longer.

    http://code.google.com/p/cecilia4/
     

  • JC

    This app is simply amazing!

  • pointexter

    I’m very excited about Csound Touch coming to iOS. In the every early part of this century I spent a great deal of time playing around with Cecilia (a Csound ‘front end’ as mentioned somewhere above), which for me was the most fun I’ve ever had making music on a computer. I’m hoping this will match that experience, while adding touch capabilities!

  • xonox

    I was thinking of requesting more content about Csound.  Well, this is something i wasn’t aware was coming!

    The Csound computer application is something worth learning!

    Thanks Peter Kirn for reading my mind.  Please avoid the sketchier areas, kthxbye.

  • gesslr

    Wow. This is fantastic. And very, very, tempting. Doc B.’s enthusiasm is a boon to all of us!

    I’m trying to learn iOS and MAX/MSP coding/scripting now. Slow going at the moment what with ‘life’ and all in there, but something that would help (especially with MAX): “Think Csound running everywhere, including learning about the tool and coding with it directly on an iPad.” Geez I wish C74 would enable something like that. The fact that CSound does actually makes it a more viable candidate to take on really. Maybe I will…

    • http://pkirn.com/ Peter Kirn

      You know, I took a whole lot of flak for some of the things I said about open source software. But this was the crux of the argument: having an open source, community-supported model means the ability to run everywhere.

      This doesn’t make it superior, but it’s difficult to support a similar “run-absolutely-anywhere” model with proprietary software.
      What the proprietary software model *can* give you is development and support that is equally unfeasible in the open software. So I don’t think I can imagine Csound and Pd doing some of the things Max has done of late, either.Max is a substantially larger application, with a broader range of tools. As such, even proprietary/open aside, it wouldn’t necessarily make sense to port it everywhere. It really is the richest and broadest modular environment on desktop at the moment, in a way nothing else is. But that means it’s also really focused on that desktop environment. I don’t want to say “never” as perhaps Cycling ’74 will find some other opportunities that make sense for them, but I can say with some confidence it won’t look exactly like Pd or Csound, as that wouldn’t probably be a smart solution.Csound, Pd, and Max all share a common lineage, but there are definitely significant differences between these tools to consider. 

  • audiosome

    Don’t forget that Sensomusic Usine also has Csound built in now as well. 

    It is great to see the direction the Csound developers are taking the program in, Csound Touch will make it even easier to use Csound scripts in realtime. By the end of 2012, Csound will be running on pretty much every OS of note. 

    I am looking forward to seeing what I can do with Csound on a Rasberry PI too..

  • Random Chance

    For me the real power of Csound lies in the fact that you can pretty easily generate score and orchestra files because of the simple textual format employed for both instrument and score definition. Very easy to write a quick and dirty program that outputs some stuff. And there are some interesting programs that let you experiment with various methods of algorithmic composition (athenacl as one of the most polished and powerful among the lot comes to mind). Never been interested much in using the different realtime interfaces to Csound because there’s a lot of software (and hardware) out there that already does this but cannot give me the advantages of Csound.

  • mathyou

    Also of note are two other videos showcasing csGrain’s individual effect modules.

    https://vimeo.com/boulangerlabs/effectsdrums

    https://vimeo.com/boulangerlabs/effectssynth

  • Keith

    Can anyone confirm if this works with the apogee jam?

    • Jjwittig

      Yes, it worked for me.

    • Keith

      Excellent, thank you!