New Features in Csound 5
Prev | Part I. Csound 5 User's Guide | Next

## New Features in 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.
  - 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.

Prev | Up | Next
Recent Developments | Home | Features of CsoundVST