CSound and Houdini
- Overview of the project
- What is CSound?
- Why CSound and Houdini?
- Project phases
- CHOP DSO/DLL CSound score generator (current)
- Full HDK integration of CSound libraries/opcodes and utilities (current)
- CSound instrument editor (VOPs) (under consideration ...)
- Interface tour
- Tutorials and examples
- The “floating sphere”: Basic examples of generating CSound scores from Houdini channels
- “Flying logo”: A bit more complicated example using filtered noise, FM, and voice morphing.
- “Particles”: An example of generating CSound scores from particle data
- “Waves”: Wave terrain synthesis (coming soon)
- “Singing Sea Shells”: Formant (FOF and FOG operators) (coming soon)
- “Disintegrating Head”: Grain synthesis (coming soon)
- “Orchestra & Choir”: Phase vocoder examples (coming soon)
- Download
software and Installation notes
- Source code documentation
- CSound resources
- www.csounds.com
- CSound newsgroups
- The CSound Book
Overview of the project
This project emerged from a need to export
data from Houdini into CSound score files, without the need for external
parsers. The initial idea was to simply write the channels to disk mapping
the channel data to the CSound score p-fields. This was sufficient for
simple compositions but when there's a requirement for more complicated
sound design and instrumental arrangements and scores, there was a need
for a more elaborate scheme. With the introduction of VEX operators
in Houdini, VOPs, afforded an easy method to "prototype" the
individual CSound operators and the modeling of the "plugins"
which will be developed with the HDK (Houdini Development Kit), much
as one would use a formal software modeling language like UML (the Unified
Modeling Language-www.uml.org) to design
and test a application.
VOP operators have also provided a method to build a visual CSound instrument
editor. Ultimately, there will be a few hundred new operators available
in Houdini for sound designers to build complex synthesizers within
Houdini and use any channel data available to control the synthesis.
There's also the potential benefit of using CSound operators for channel
data operations.
- NOTE: The CHOP CSound score generator extension creates CSound score files which then are used by csound to create the actual audio file. The next phase of the project will have the CSound operators built-in to Houdini in such a fashion to allow audio generation without using CSound "externally" from Houdini.
What is CSound?
From
the CSound book edited by Richard Boulanger:
“CSound is an incredibly powerful
and versatile software synthesis program. Drawing from a toolkit of
over 450 signal processing modules, one can use CSound to model virtually
any commercial synthesizer or multi-effects processor. CSound literally
transforms a personal computer into a high-end digital audio workstation
— an environment in which the worlds of sound-design, acoustic research,
digital audio production and computer music composition all join together
in the ultimate expressive instrument. However, as with every musical
instrument, true virtuosity is literally the product of both talent
and dedication. You will soon discover that CSound is the ultimate musical
instrument. But you must practice! In return, it will reward your commitment
by producing some of the richest textures and uniquely beautiful timbres
you have ever heard. In the audio world of CSound, knowledge and experience
are the key... and your imagination the only limitation.”
While Houdini is one of the most versatile and powerful 3D applications available, it lacks the ability to design complex audio and signal processing networks that are common to contemporary musical synthesizers and composition systems. CSound is much like Houdini in that it is composed of a number of operators (functions) that are connected together in networks, passing data between them to create and/or modify an audio signal. So it seemed a natural "synthesis" to incorporate the CSound operators into the Houdini procedural environment and using the Houdini interface to design CSound instruments and integrate these instruments into Houdini animation.
