Csound patches and binaries

Source code

The current source distribution is Csound-4.24.1.tar.bz2.
(1116589 bytes, md5sum: 81fc398bc3d9b1fabbdc58b609be4a09)
To compile the sources, first edit the file Makefile.defs to set compiler, compiler flags, etc., then type:

make all
make install-strip

Documentation (including release notes) is available in the doc/ directory.
WARNING: if Csound is compiled with ALSA support, the pthread library (-lpthread or /usr/lib/libpthread.a) should not be linked explicitly, otherwise Csound may hang when FLTK orchestras are compiled.

The previous version is Csound-4.24.0.tar.bz2 (1144893 bytes).

Binaries

[+] Csound-4.24.1-i686.tar.bz2 (NEW)
(1875173 bytes, md5sum: 57e9726931a228f0a767ebf8e43b473b)
[+] Csound-4.24.0-i686.tar.bz2
(1835025 bytes, md5sum: 774485f4c733f3f290c4c5d67202b808)

Version 4.24 with all patches, compiled with gcc 3.2.2 on Linux 2.4.18, glibc version 2.2.4.
[+] Notes:
[+] After installing the package, you should run ldconfig to make sure the system can find the Csound shared library (libcsound32.so, or libcsound64.so), or add the directory that contains the library files to LD_LIBRARY_PATH.
[+] The environment variable OPCDIR should point to the directory containing stdopcod.so, to have plugin opcodes and the real-time audio module (see below) automatically loaded at startup.
[+] Of the files rtalsa.so (ALSA audio plugin) and rtlinux.so (OSS audio plugin), only one should be kept, and the other should be deleted or moved to a different directory.
[+] csound is the same as csound32.

[+] cs4241_win32.zip (NEW)
(1742767 bytes, md5sum: 391698ec7df37817bae5af1a44bbf058)

Win32 version, cross-compiled with gcc-3.2.2 and MinGW 2.4 under Linux.
[+] Notes:
[+] This build was tested under Windows 95, Windows 2000, and recent versions of WINE. Other systems may work, but are not tested.
[+] The binaries are optimized for the Pentium III, however, a Pentium II or higher, or AMD Athlon CPU should also work.
[+] The environment variable OPCDIR should point to the directory containing stdopcod.dll, to have plugin opcodes and the real-time audio module automatically loaded at startup.
[+] If you get error messages like "cannot open /tmp/cs610612ec.0 for writing", creating the directory \TMP, or setting the environment variable TEMP to a valid directory name should fix the problem.
[+] On Win9x systems it may be necessary to increase the environment space by adding a line like

SHELL=C:\COMMAND.COM /e:4096 /p

to CONFIG.SYS.

[+] Csound-4.24.1-i686_SSE.tar.bz2 (NEW)
(964562 bytes, md5sum: 09823a05eaf57ea18cdc0f82bf6a23c4)
[+] cs4241_win32_sse.zip (NEW)
(855917 bytes, md5sum: 43bbb211db6ecbfa1a2f46523992ac53)

Experimental binaries that use the Intel SSE instruction set for improved performance. These require a Pentium III or higher, or an Athlon 4, Athlon XP, or Athlon MP CPU. The packages contain shared libraries (DLLs in the case of the Win32 version) that replace the csound32 and stdopcod library, however, executable files are not included (these can be found in the standard binary distributions above, that you should also download).
Warning: the SSE libraries are experimental, and may possibly break some orchestras.

[+] csndl10n.zip (50712 bytes)

String database files US English and French languages, converted from all_strings and french-strings from canonical Csound. These are unfortunately by no means complete, many messages are not translated.
The language files can be installed by unzipping the package in any directory, and setting the environment variable CSSTRNGS to this directory. The CS_LANG environment variable should be set to the selected language (for example, us or fr).

Documentation

[+] Csound_docs-4.24.1.tar.gz (NEW) (321099 bytes)

VIM syntax files

[+] Csound_vim_syntax-4.24.1.tar.gz (NEW)
(32352 bytes, md5sum: 23a0ed5b4f305bf3e2c12dd87b7a00b5)

[+] New, improved version with the following features:
[+] Opcode help (requires the Alternative Csound Reference Manual by Kevin Conder).
[+] Abbreviations added for CSD tags, etc. to save typing.
[+] New installation script.
[+] For more details, see the README included with the package.

Patches

[+] patch-4.24.0-4.24.1.gz (NEW) (521307 bytes)

[+] Language changes:
[+] Internal indexes to local and global pools of variables have been changed to use 32 bit variables (previously, 16 bit indexes were used). This allows much larger and more complex instruments to be written, and fixes error messages like "Case2: indx=... (...); (short)indx = ... (...)" which have been usually followed by a crash.
[+] New opcodes (documented in NEWS-4.24.1):
[+] soundout, soundouts, and soundoutc.
[+] Simple loop opcodes have been added.
[+] Vector opcodes from CsoundAV.
[+] Bug fixes:
[+] Fixed bugs in reading of score files with very long lines (bug reported by Davis Pyon).
[+] MIDI opcodes should no longer crash when used with a channel that has not been initialized with massign (bug reported by Davis Pyon).
[+] Included score files with multiple sections have been fixed (bug reported by David Gladstein).
[+] Fixed timing problems in long score files with very short time intervals (bug reported by David Gladstein). It is possible to revert to the old timing method by using the "--old-score-timing" command line option.
[+] soundout bug that made the output files shorter than the actual length of the note with soundout was fixed.
[+] turnoff now skips the rest of the instrument if there is no release time (xtratim = 0).
[+] Fixed compile errors reported by Steven Yi.
[+] Minor bug fixes in named instrument name lookup (the bugs did not affect normal functionality, only the recognition of errors in some cases).
[+] Misc. changes:
[+] Csound is now built as a shared library, and the Csound API has been extensively revised and new functions and structures have been added. For more details, and documentation of the new API functions, see the header files in the include/Csound/ directory, and ChangeLog.4.24.1.
[+] Real-time audio modules and some opcodes are now built as dynamically loaded libraries (DLLs). Libraries are automatically loaded from the directory specified by the OPCDIR environment variable (this directory should contain the file stdopcod.so or stdopcod.dll, depending on platform, and exactly one real-time audio module). For developers of opcode or audio I/O plugins, the following files of the source distribution might be of interest: all headers in the include/Csound/ directory, plugin opcodes in plugins/ directory, and the audio modules (rtalsa.c, rtlinux.c, and rtwin32.c) in plugins/rtaudio/. Reading ChangeLog.4.24.1 is also recommended.
[+] The localization system of Csound (which used the file csound.xmg or csound.txt) was replaced. From the usage point of view this means that language is now selected by the environment variable CS_LANG (which can be set to e.g. en, us, fr, it, or others), and string database files (there can be multiple files which allows, for example, distributing translated messages with plugins) for the selected language are automatically loaded from the directory specified by CSSTRNGS environment variable.
Developers of Csound or plugin code should use the char* csoundLocalizeString(const char*) function for translating messages (the Str() macro is provided for use as Str("...") - note the absence of an index number).
The string database file format is documented in n_getstr.c.
[+] Csound for Win32 is now built using the MinGW headers and libraries instead of Cygwin (the Cygwin license is incompatible with that of Csound). This means that cygwin1.dll is no longer needed to run Csound.
[+] Two new rates (d- and s-rate) have been added for destructor routines of opcodes. Both call OENTRY.dopadr(), the difference is that d-rate (thread type 16) is performed at deactivation of an instrument instance, while s-rate (thread type 32) is at the cleanup done on end of score sections. Opcodes that require MIDI are now marked by setting thread type 64 (this used to be 32 or 64).
[+] There are many other changes that can be of interest to developers - it is recommended to read ChangeLog.4.24.1, include files in include/ and include/Csound/, csound.c, n_getstr.c, soundio.c, and plugins in plugins/ and plugins/rtaudio/ (these are all in the source package, Csound-4.24.1.tar.bz2).

[+] patch-4.23.4.2-4.24.0.gz (NEW) (270431 bytes)

[+] Bug fixes:
[+] Fixed 'square knobs' FLknob bug reported by Oeyvind Brandtsegg.
[+] Usage message under Win32 is now really printed to stdout.
[+] Attempts to fix bugs that resulted in an error return after listing opcodes, printing help message, or calling utilities even though there was no error in fact.
[+] rtclock bug that made it impossible to use the opcode has been fixed.
[+] clockon / clockoff / readclock fixed.
[+] -t<tempo> flag fixed so that it now actually has effect.
[+] Fixed bug in beat mode that could result in hangs in case of very short time intervals.
[+] Fixes in sensekey - now seems to work under Win32 and Linux. (note: it reads characters from stdin, so it is not possible to use stdin for other purposes - such as audio input - at the same time. Also, to receive keyboard input, the console window in which Csound is being run must be the active window.)
[+] printk2 now prints the first value if it is zero.
[+] Modified opcodes:
[+] readclock can be used at both init and control rate, depending on output argument type. There is also a new optional input parameter, which requests a CPU time value if set to zero (this is the default), and real time if non-zero. The returned value is always in millisecond units, but the resolution may vary depending on the selected mode, and system.
[+] Misc. changes:
[+] The Winsound GUI and all related code was removed from the sources.
[+] The handling of audio output and MIDI options by cs utility was improved - see updated manual in NEWS-4.24.0.
[+] There is a new command line option (--write-sco=FNAME) that requests writing the sorted score to the specified file instead of score.srt or a temporary file. This file is not deleted on exit.
[+] Improved measurement of real time (higher resolution), particularly under Win32 and Linux (see readclock changes in NEWS-4.24.0 for details) on x86 machines. This affects many opcodes (time related ones and random generators when seeding from current time).
[+] 'ftable <number>:' messages are not printed if message level is set to zero - this is useful when there are many function tables, and the printing of large number of messages is not desired.
[+] 'util UTILNAME:' messages are now printed to stderr instead of stdout.
[+] Maximum number of buffers for Win32 real-time audio has been increased to 64.
[+] a-rate rnd31 with uniform distribution was made faster.
[+] Many stand-alone utilities have been replaced by a simple wrapper utility that calls 'csound -U utilname args ...'. See NEWS-4.24.0 for details.
[+] A major internal reorganization of sources, with many changes that are mostly of interest only to developers (details can be found in ChangeLog.4.24.0).

[+] patch-4.23.4.1-4.23.4.2.gz (21097 bytes)

[+] Bug fixes:
[+] Win32 MIDI in devices can be selected by number, in addition to name, making it easier to use devices with a name that contains spaces. (bug reported by Oeyvind Brandtsegg)
[+] Setting cursor size in FLknob now works. (bug reported by Josep M Comajuncosas)
[+] FLbutBank widget size bug has been fixed. (bug reported by Oeyvind Brandtsegg)
[+] Fixed reading of Base64 encoded files.
[+] Fixed bugs in <CsFileB> and <CsSampleB> CSD tags.
[+] Incorporated bqrez changes from Matt Gerassimoff.
[+] New utilities:
[+] csb64enc: converts a set of files to <CsFileB> tags.
[+] makecsd: creates a CSD file from a set of input files.
[+] cs: Csound launcher utility (saves typing).

[+] patch-4.23.4-4.23.4.1.gz (12136 bytes)

[+] Bug fixes:
[+] i() with expression argument is now a syntax error if --expression-opt is turned on, and a warning is printed otherwise.
[+] Bug in --expression-opt with multiple expressions on the same line is fixed.
[+] delayr / delayw and Win32 real-time audio input are reset correctly in case of re-entrant operation (does not affect current binary distributions).
[+] Bug in delayr with 64 bit floats has been fixed.
[+] Fixed bug that caused any label name that begins with "else" or "endif" to be rejected.
[+] Misc. changes:
[+] delayr has a new optional i-time output, and all deltap opcodes have a new optional i-time input argument that defaults to zero. These optional parameters can be used to select a particular delay line to be used by deltap / deltapx / etc. in case of nested delays.
[+] deltapx / deltapxw with sinc interpolation revised for speed.

[+] patch-4.23.3-4.23.4.gz (50542 bytes)

[+] Language changes:
[+] 32767 k-periods limit on release time (xtratim) removed; now it can be more than two billion k-periods (i.e. more than 3 hours even with kr = 192000).
[+] New command line option (--expression-opt) that turns on some optimizations in expressions: redundant assignment operations are eliminated whenever possible, and the number of a- and k-rate temporary variables is significantly reduced (see NEWS-4.23.4 for more details).
[+] Beat mode (-t n command line option) is closer to fully working, but still not perfect.
[+] Turnoff / release / MIDI note off code extensively revised (partly due to removed xtratim limit).
[+] Bug fixes:
[+] max_k in average mode has been fixed (output was multiplied by ksmps).
[+] Syntax errors in lines that have a ';' comment are now printed correctly.
[+] Minor bug in setksmps has been fixed.
[+] --hardwarebufsamps=N option now sets the hardware buffer size correctly.
[+] Audio device selection under Win32 should be fixed (bug reported by Josep M Comajuncosas).
[+] Fixes in various opcodes related to use with local ksmps.
[+] Compile errors in widgets.cpp reported by Steven Yi have been fixed.
[+] Misc. changes:
[+] New Win32 real-time audio code, with some new options: --sched, --sched=N, --rt-sleep=N, --rt-hdr, and --no-rt-hdr, as well as variable number of buffers. More details in NEWS-4.23.4.
[+] Usage message under Win32 is now printed to stdout instead of stderr, so it can be redirected, or read with 'more'.
[+] New opcodes:
[+] FLsetVal implemented (ported from CsoundAV 0.04).
[+] Some opcode aliases added for CsoundAV compatibility: ftlen2(), tab_i, and tabw_i.

[+] patch-4.23.2-4.23.3.gz (60821 bytes)

[+] Bug fixes:
[+] FLTK widgets may now compile with FLTK 1.0.x.
[+] <sstream> or <strstream> interface can be selected at compile time to fix compile errors.
[+] Typo in usage message (score,srt) corrected.
[+] Temporary files in Win32 version may now work. Directories are searched in the following order: %SFDIR%, %TEMP%, %WINDIR%\TEMP.
[+] Fixes in reading Unix/MS-DOS/Mac format orchestra, score, and CSD files (the disadvantage is that the new version does not check for comments continuing in another file or macro).
[+] Maximum line length in CSD files extended to more than 500 characters (was 200).
[+] corrected "Invalid ftable no. %f" error message in MIDI controller opcodes.
[+] Amplitude bug in adsyn has been fixed (reported by Kevin Conder).
[+] if / else / endif internal labels use less trivial names to avoid conflicts with user labels (e.g. "__else_2317" instead of "else1").
[+] Other minor fixes, compiler warnings, etc. (see ChangeLog.4.23.3).
[+] Misc. changes:
[+] Use of string database (csound.xmg) was made optional at compile time, and is disabled by default.
[+] distort1 optimized for speed.
[+] Minor optimizations in orchestra parser; also in bqrez opcode.
[+] Preprocessed orchestra (with include files and macros expanded) can be written to a file with --write-orc=FNAME option; useful for debugging large orchestras with many macros and include files.
Unfortunately strips ';' comments (leaves only the ';' character).
[+] MacOS X real-time audio synchronized with canonical version (not tested).
[+] New or modified opcodes:
[+] vdelayk was renamed to vdel_k to avoid conflict with similar opcode from CsoundAV.
[+] schedwhen supports named instruments.
[+] New opcodes: rbjeq, schedwhenname, schedkwhenname, eventname, tab, tabw, metro, and many more; see documentation package for details.
[+] FLpack has three new optional arguments (see CsoundAV manual).
[+] distort1 has a new optional argument that defaults to zero, and selects amplitude scaling mode.

[+] patch-4.23.1-4.23.2.gz (112692 bytes)

[+] Bugs in vco PWM and triangle mode are fixed. Also, amplitude of PWM wave was corrected, and triangle amplitude depends much less on pulse width.
[+] massign can "mute" MIDI channels by assigning to zero or negative instrument number. Useful when midiin opcode is used to parse MIDI events.
[+] bqrez opcode updated to new version from Matt Gerassimoff, also fixed some bugs.
[+] Named instruments can be invoked as opcodes, as requested by Matt J. Ingalls, using subinstr-like syntax:

a1[, a2[, ... ]] Name p4[, p5[, p6[, ... ]]]

Note however, that if both a named instrument and an user defined opcode are defined with the same name, the opcode will have precedence over the instrument (of course, the latter is still callable with subinstr).
[+] Incorporated new printf opcodes from Matt Ingalls. The new version of printks is currently named sprintks in order to avoid breaking the original printks, until the new code is fully tested.
[+] schedule now supports named instruments.
[+] sfont opcodes synchronized with jpff 4.23 version.
[+] Crashes in (some) utilities have been fixed - still needs to be fully cleaned up.
[+] New opcodes:
[+] denorm a1[, a2[, a3[, ... ]]]
[+] kr delayk ksig, idel[, imode]
[+] kr vdelayk ksig, kdel, imdel[, imode]
[+] Several new opcodes for arithmetics (can be more efficient than expressions).
For more details about the new opcodes, see doc/NEWS-4.23.2 in the source distribution.
[+] Internal opcode names like oscil_kk, peak_k, oscilikt_aa, etc. have been all renamed to use a dot instead (thus oscil_kk is now oscil.kk, for example). This avoids conflicts with normal opcode names like FLpanel_end.
[+] Many internal code changes - see ChangeLog.4.23.2 for details.

Back to home page