In the time since Barry Vercoe wrote the original Preface to
this manual, printed above, many further contributions have been made
to Csound. The current stable version of Csound is 5.03. CsoundVST is an
extended version of Csound 5.
Csound 5 begins a new major version of Csound that includes the
following new features:
- Now licensed under the GNU Lesser General Public License, an
open source license.
- A new, easier to manage build system using
SCons.
-
The use of widely--accepted open source libraries:
- libsndfile for soundfile input and output.
- PortAudio with ASIO drivers for low-latency, real-time audio input and output.
- FLTK for graphical widgets that can be programmed in orchestra code.
- PortMidi for real-time MIDI input and output.
In addition, Istvan Varga has contributed native MIDI and audio drivers for Windows and Linux.
- Simplified audio buffering system.
- Status returns from all internal functions, including opcode functions.
- MIDI interop opcodes, that enable the same instrument
definitions to be used interchangeably for either live MIDI
performance or off-line, score-driven performance.
-
Plugin opcodes are working and becoming more widely
accepted. Many opcodes have been moved to plugins. Most new opcodes
are plugins, including:
- The FluidSynth-based SoundFont opcodes.
- Python opcodes allowing Python code to execute in the
orchestra header or in instrument code, at i-rate or k-rate.
- Loris opcodes for time/frequency analysis and resynthesis.
- Control bus opcodes.
- Audio mixer opcodes.
- String conversion opcodes.
- Improved Open Sound Control (OSC) opcodes.
- Vectorial opcodes.
- The pvs opcodes for real-time spectral processing, a port of Mark Dolson's phase vocoder code.
- The ATS opcodes for spectral Analysis, Transformation, and Synthesis of sound based on a sinusoidal plus critical-band noise model. A sound in ATS is a symbolic object representing a spectral model that can be sculpted using a variety of transformation functions. These opcodes can read, transform and resynthesize ATS analysis files. Please note that you need the ATS application to produce analysis files.
- The STK opcodes, consisting of Perry Cook's original Synthesis Toolkit in C++ instruments, in C++, adapted as opcodes.
- DSSI and LADSPA adapter opcodes for hosting DSSI and LADSPA plugins in Csound.
- vst4csVST adapter
opcodes for hosting VST plugins in Csound.
- The OpcodeBase.hpp header file for
writing plugin opcodes in C++. This is based on the technique of
static polymorphism via template inheritance.
- Istvan Varga's csound5gui frontend for Csound, simplifying
the editing of Csound, the use of Csound especially for live performance,
and the monitoring of performances.
- Victor Lazzarini's Tcl/Tk frontends for Csound, cstclsh and cswish.
-
The Csound API is becoming more standardized and more widely used. There are interfaces or wrappers
to the API in the following languages:
- C (include csound.h).
- C++ (include csound.hpp)). This API includes Csound score and orchestra file container functions.
- Python (import csnd).
- Java (import csnd.*;).
- Lua (require "csnd";).
- Lisp (use the CFFI file csound5.lisp).
- Csound is now truly re-entrant, meaning that multiple instances of Csound can run at the same time, in the same process.
John ffitch plans to replace the handwritten parser with one
written using a parser generator, which should make it more bug-free
and perhaps more efficient.