What's new in Csound 6.09

Release Notes for Csound 6.09 (2017 May)

A mixed bag of new opcodes and many fixes and improvements.

Also as usual there are a number of internal changes, including many memory leaks fixed and more robust code.

Release Notes for Csound 6.08 (2016 November)

As usual there are a number of opcode fixes and improvements, but the major changes are in the language structures. First the score language has all-new treatment of macros and preprocessing, bringing it in line with those of the orchestra. The parsing of the orchestra has had a number of fixes as outlined below.

A major, and not totally compatible change as been made in reading and writing array elements. The rate of the index now often determines the time of processing; check the entry below under Orchestra. This simplifies much code and seems to capture expectations; the earlier ad hoc code had many anomalies.

Also as usual there are a number of new opcodes and internal fixes to memory leaks and more robust code.

Release Notes for Csound 6.07 (2016 March)

A large number of bug fixes, some quite major, some internal are included, as well as some new facilities and extensions. As ever there are coding improvements as well.

Release Notes for Csound 6.06 (2015 September)

A number of bug fixes, some quite major, are included, as well as some new facilities and extensions.

Release Notes for Csound 6.05 (2015 April)

As ever there are new facilities and numerous bug-fixes. A major part of this release is the removal of a number of memory leaks and over use of memory. Naturally these changes are all but invisible, just a smaller memory foot-print. Note that we track bugs and requests for enhancements via the github issues system, and these had a significant affect on this release.

Release Notes for Csound 6.04 (2014 November)

This new version has many extensions and fixes; many new opcodes and significant numbers of internal reworking. There is a new frontend and iOS and Android version have seen many improvements.

As ever we track bugs and requests for enhancements via the github issues system. Already proposals for the next release are being made but the volume of changes require a release now.

Release Notes for Csound 6.03 (2014 May)

This new version has a large number of bug fixes (including clearing many tickets on SourceForge and GitHub) as well internal changes to improve performance.

Release Notes for Csound 6.02

This new version has a large number of bug fixes (including clearing all general tickets on SourceForge). It also introduces some major new facilities such as use as a server, code to run Csound in a browser and a large generalisation of filter opcodes to have parameters changeable at audio rate.

Release Notes for Csound6

Csound6 is a significant rewrite of much of the code. In particular the API is not compatible, although all orc/sco/csd works should still run.

There are new facilities, like sample accuracy and realtime mode, described below.

IMPORTANT: The environment variable to find plugins are called OPCODE6DIR64 or OPCODE6DIR (note the 6) so it can co-exist with Csound5.

Similarly .csoundrc is renamed .csound6rc.

Arrays are now mainstream, with syntax and opcode support. They also exist in multidimensional format. They are created (usually) with init opcode or fillarray.

  k1[]  init 4

generates a k-rate 1-D array of length 4. Similarly

  a2[][] init 4, 4

creates a square 4x4 a-rate array.

  k2[]  fillarray 1, 2, 3, 4

creates a 4-element vector filled with 1,..4, which also defines the length.

Elements are used via indexing in [] such as k1[2] or a2[2][3]. One dimensional arrays replace tvars, and can be used in opcodes like maxtab, mintab and sumtab (see below). Array setting can be done in left-hand side of opcodes, i.e.:

  aSigs[0] vco2 .1, 440
  aSigs[1] vco2 .1, 880

The new realtime priority mode can be switched on with by passing the --realtime or setting the CSOUND_PARAMS field realtime_mode to 1. This has the following effects:

  1. all opcode audio file reading/writing is handled asynchronously by a separate thread.
  2. all init-pass operations are also performed asynchronously.

Multicore support is totally rewritten using a different algorithm for task-dispatch, which should use less memory and fewer locks.

New in Version 5.19 (2013 January 7)

This is mainly a bug-fixing release but with a number of new opcodes and enhanced features.

New in Version 5.18 (2012 August 29)

This is mainly a bug-fixing release but with a number of new opcodes and enhanced features.

New in Version 5.17 (March 2012)

This is mainly a bug-fixing release with no major changes, but the number of fixes warrants a release.

New in Version 5.16 (February 2012)

The major change is that the new parser is now the default. The old parser is still available in case of difficulty but the new has been given extensive testing since the start of the year, including complete restructuring of macro expansion. A side effect is that the runtime of most orchestras is faster, although parsing is slower. There are a few optimisations implemented like constant folding in simple cases. Line numbers and file names are traced better than before.

Some memory leaks also fixed.

New in Version 5.15 (December 2011)

New in Version 5.14 (October 2011)

New in Version 5.13 (January 2011)

New in Version 5.12 (January 2010)

New in Version 5.11 (June 2009)

New in Version 5.10 (December 2008)

New in Version 5.09 (October 2008)

New in Version 5.08 (February 2008)

New in Version 5.07 (October 2007)

New in Version 5.06 (June 2007)