Csound 6.03.0 is now available! Downloads are available at:
This release includes a mix of bug fixes, new features and some experimental code. We also believe that there are some improved efficiencies.
CSOUND VERSION 6.03
This new version has a large number of bug fixes (including clearing many
tickets on SourceForge and GitHub) as well internal changes to improve
- printks2: Prints a new value every time a control variable
changes using a printf() style syntax.
- mp3sr mp3bitrate and mp3nchnls to get information on mp3 files
- EXPERIMENTAL: CUDA opcodes for partitioned convolution direct
convolution and sliding phase vocoding; OpenCL opcode for
- compilecsd to compile instruments from a standard CSD file
New Gen and Macros:
- The argument for i() is supposed to be a variable not an
expression. This is now enforced. (bug #90)
- New score opcode y sets the random seed (for ~) at read time
- This was a bug in CsOptions; the last argument was missed being
read (issue #296)
- As command-line options expression-opt and no-expression-opt do
nothing in Csound6 a warning is printed.
Modified Opcodes and Gens:
- For ogg output it is possible to specify a VBR (variable bit
- dssi4cs code has been extensively reworked to avoid potential
- Many array operations now available for i-arrays as well as
- fillarray will work for string arrays
- Displays of FFT (via dispfft) improved with scaling/zooming
- Signal flow graph opcodes are now working with a-rate array
- In alsa rt code the sample rate is taken from the device
- Faust opcode system updated to latest Faust API.
- OSX - fix for running with 32-bit cpu architecture
- Windows - csound~ now available for Windows
- This is now generally merged in to the code-base
–displays now switches graphs on, as expected
New command-line option –get-system-sr added to obtain the
machine’s sample rate.
New command-line option –devices[=in|out] gives a list of
available audio devices and then exit
- fixed the bug when tables were replaced but the size did not change
- A number of bugs in –sample-accurate have been detected and
fixed. This includes opcodes out, outn, and line.
- A number of bugs in grain3 were fixed
- Bug in str_chanel could cause a crash; fixed
- Small bug in rtjack fixed
- Error in resize opcode corrected
- Fixed an unlikely bug in atsa
- Fixed rtauhal pause issue
- Fixed bug in rtjack
- A number of bugs/untidiness fixed in GEN23
- Array bound checks fixed
- strings channels were not correctly set for dynamic-size
strings, now fixed
- memory allocation for string formatting in printfsk was fixed,
stopping string truncation.
- strcat safe against overflow
- ror in compilation of arrays fixed (issue #293)
- GetPvsChannel fixed against a crash
SYSTEM LEVEL CHANGES
- turnoff opcode now checks that the instrument being affected is
- lenarray can accept any array type
- the way of rounding a table number to an integer was changed
and is now more as expected.
- there is a new possible section in a csd file called
which is like csFileB but with unencoded text.
- UDO compilation now uses the type system. This means that
UDOs now allow any array type to be used.
- Improved orchestra parsing speeds with better algorithms
- The whole system has been checked by the Coverity static checker
which identified a number of (mainly minor) problems. These have
been reviewed and checked. In particular better use of printing
and string copying should prevent overflows.
- The type and variable system has been extensively rewritten; this
allows better array and UDO support.
- Alignment of variables got right in all cases
- array copying is now using the type system to copy values; fixes
issues with copying string arrays, f-sigs, etc.
- Always reset Csound when stopping to ensure state is clean; was
not being reset when there was a compile error, so that next
successful run would start with an invalid Csound engine (issue
- All opcodes etc now use the API memory allocation operations, so it is
possible to replace the whole memory allocator.
- Added csoundCompileCsd to API and associated new compilecsd opcode
- Protected csoundGetStringChannel against null and short strings and
added a check for string size
- A number of API functions have had char* changed to const char* which
reflect the usage
- The performance engine now includes debugging capabilities to allow
interrupting rendering and providing introspection into the engine’s state
and instrument variables. The following new functions are available by
including the csdebug.h header:
void csoundDebuggerInit (CSOUND *csound)
void csoundDebuggerClean (CSOUND *csound)
void csoundSetInstrumentBreakpoint (CSOUND *csound, MYFLT instr, int skip)
void csoundRemoveInstrumentBreakpoint (CSOUND *csound, MYFLT instr)
void csoundClearBreakpoints (CSOUND *csound)
void csoundSetBreakpointCallback (CSOUND *csound, breakpoint_cb_t bkpt_cb, void *userdata)
void csoundDebugContinue (CSOUND *csound)
void csoundDebugStop (CSOUND *csound)
INSDS * csoundDebugGetInstrument (CSOUND *csound)
- Soundfonts in Windows had an internal alignment problem which is fixed.