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.
- The STK opcodes, consisting of Perry Cook's original Synthesis Toolkit in C++ instruments, in C++, adapted as opcodes.
- vst4csVST plugin adapter
opcodes.
- The OpcodeBase.hpp header file for
writing plugin opcodes in C++. This is based on the technique of
static polymorphism via template inheritance.
- 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.*;).
- 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.