What's new in Csound 5.13
Prev | Preface | Next

## What's new in Csound 5.13

### New in Version 5.13 (January 2011)

- New opcodes:

  - median opcode.
  - filevalid opcode.
  - pvstanal, pvswarp, temposcal, pvslock spectral processing opcodes.
  - mincer opcode
  - fareylen sequence opcodes.

- New functionality

  - Real random number generators using /dev/random (Linux only).
  - INF macro added to orchestras; z read as infinity in scores
  - init changed to allow multiple inits in on statement
  - GEN for support of farey sequences
  - maxalloc,cpuprc, active now accept named instruments.
  - If normalisation in pow opcodes is zero treat as 1
  - inch can take upto 20 inputs and outputs.
  - pvscale, pvsvoc and pvsmix now have very good spectral envelope preservation modes (1 = filtered cepstrum, 2 = true envelope).
  - oscil1 could be static if the duration was long; now there is a positive minimum increment.
  - GEN49 now uses search paths.

- Bug fixes and improvements:

  - Count of lines fixed in orchestras, and \ inside strings
  - Fast tab opcodes made safe from crashes
  - % in formated printing could crash
  - Double free in fgen fixed
  - sndwarp quietened (gave too many messages)
  - gen41 deals with positive probabilities
  - adsynt reworked removing many bugs
  - adsynt2 phase error fixed
  - Bug in max number of gens fixed
  - Better checking in grain4
  - Better checking in adsyn
  - modulus was wrong in new parser
  - atonex/tonex did wrong operation
  - mp3in could repeat sound at end of file
  - changed opcode initialised to zero
  - Serious bug in tabmorpha fixed
  - GEN49 has serious bug removed, so no longer incorrect silences.
  - partikkel opcode: fixed bug in sub-sample grain placement when using grain rate FM

- Internal Changes:

  - In the new parser only there are operator @ and @@ to round up the next integer to a power of 2 or powerof2+1
  - Score sorting made much faster
  - lineto improved
  - Named gens allowed
  - Various printing include instrument name if available
  - Command option to omit loading a library
  - Number of out channels no longer constrained to be number of in
  - Many fixes to new parser
  - More use of Warnings than Messages (allows for them to be switched off)
  - csoundSetMessageCallback reset if callback set to null

### New in Version 5.12 (January 2010)

- New opcodes:

  - transegr is a version of the transeg opcode which has a release section which is triggered by midi, a turnoff2 opcode or a negative instrument number i score event.
  - ftgenonce generates a function table from within an instrument definition, without duplication of data.
  - passign allows quick initialization of i-rate variables from p-fields
  - crossfm implements crossed fm synthesis.
  - loopxseg is like loopseg but with exponential envelope.
  - looptseg is like loopseg but with a flexible envelope like transeg

- Bug fixes and improvements:

  - pvshift would overwrite in double mode.
  - pan2 case 3 fixed.
  - clockon and clockoff now work again.
  - cross2 and interp could have divided by zero
  - linecount for error messages no longer includes text from .csoundrc
  - p5gconnect changed to use a separate thread to avoid timeout problem.
  - transeg checks argument count.
  - sfload used to be limited to 10 sound fonts and was not policed. Now open-ended.

- Internal Changes:

  - \" allowed as an escape in orchestral strings
  - New parser fixed on optional arguments
  - Better checking of f statement with negative number
  - Soundfonts only initialise pitches array once, in the soundfont opcodes.
  - Usual collection of gratuitous minor changes, layout and comments

### New in Version 5.11 (June 2009)

- New opcodes:

  - mp3in allows reading of mp3 files directly in the orchestra.
  - wiiconnect, wiidata, wiisend, wiirange opcodes by john ffitch to recieve and send data to a wiimote controller.
  - New opcodes to receive data directly from a p5glove by john ffitch p5gdata
  - tabsum sums sections of ftables
  - MixerSetLevel_i an init-time only version of MixerSetLevel
  - doppler implements a simulation of the doppler effect.
  - filebit reports the file depth of a file.
  - The new Signal Flow opcodes enable the usage of signal flow graphs in Csound.

- New functionality

  - New panning type for pan2 opcode
  - New csd score tag <CsExScore>.
  - New -Ma option for ALSA RT MIDI module which listens to all devices.
  - There is a gen49 to read mp3 files
  - Added rounding bin code to pvscale
  - Added non-power-of-2 table support for ftload and ftsave
  - GEN23 totally rewritten to be more consistent in what constitutes a separator and comments. (Still no /* */ comments)

- Bug fixes and improvements:

  - New examples for pvs opcodes by Joachim Heintz: pvsarp, pvscent, pvsbandp, pvsbandr, pvsbufread, pvsadsyn, pvsynth, pvsblur, pvscale, pvscross, pvsfilter, pvsfreeze, pvshift, pvsmaska, pvsmorph
  - Use of automatic numbering of ftables reuses table numbers
  - seed with positive argument was wrong
  - sprintf with an empty string printed wrong data
  - mute now works with both numeric and named instruments
  - Small fixes in diskin, and in tablexkt

- Internal Changes:

  - SConstruct now builds completely independent shared libraries for Python, Lua, and Java wrappers.
  - New Parser almost usable
  - Redrawing of graphs fixed so that only selected ones get redrawn.
  - RT-alsa more forgiving on near sample rates
  - It is possible to have the score generated by an external program rather than using standard score format using <CScore bin="translater"> to call the program translater on the score data
  - lpc_export fixed
  - Removed limit on macro names length
  - PMAX, the number of arguments to a score event has been reduced by 2, and an overflow system introduced so GENs can have arbitrary numbers of arguments.
  - Increased API version to 2.1.
  - New API function pointer ldmemfile2withCB() which is a version of ldmemfile() allowing a callback to be set and called exactly once to process the MEMFIL buffer after it is loaded.
  - csound->floatsize set; zero in earlier versions
  - GetChannelLock added

### New in Version 5.10 (December 2008)

- New functionality

  - New option to listen to all MIDI devices using the portmidi realtime module. To enable listening to all devices use "-+rtmidi=portmidi -Ma".
  - Dither on output implemented; rectangular and triangular dither available in some cases
  - GEN20 type 6 now has option to set variance

- Bug fixes and improvements:

  - Locale set to C numeric to avoid , versus . problems.
  - diskin fixed
  - outo was broken regarding channel 6
  - pitchamdf fixed
  - zfilter2 intialization fixed
  - s32b14 fixed
  - Fixed other bugs fixed that have not been reported publicly.

- Internal Changes:

  - The major version of the Csound API is increased to 2; affected csound.so as well. This means that Csound 5.10 is incompatible with applications ("front ends", "clients", or "hosts") that were built for Csound 5.08 and earlier and that use API version 1.x. These applications will need to be rebuilt to work with the current and future versions of Csound. Csound front ends written in interpreted languages such as Python or Java may continue to work without modification. It may also be possible to keep both an earlier version of the Csound library and an API 2.0 version on the same machine together so that new and old Csound-based applications can run side-by-side. These changes do not in any way affect the compatibility of Csound orchestras and scores: all old documents should continue to work as before.
  - Time now counted internally in samples, overcoming a longstanding bug with rounding of time to k-rate.
  - Many internal changes related to branch prediction. Some opcodes are substantially quicker.

### New in Version 5.09 (October 2008)

- New opcodes:

  - New vosim opcode by Rasmus Ekman which recreates the historic VOSIM (VOcal SIMulator) technique.
  - New dcblock2 opcode by Victor Lazzarini.
  - New Chua's oscillator model: chuap by Michael Gogins.
  - New Linear Algebra opcodes by Michael Gogins. Standard Linear algebra over real and complex vectors and matrices: elementwise arithmetic, norms, transpose and conjugate, inner products, matrix inverse, LU decomposition, QR decomposition, and QR-based eigenvalue decomposition. Includes copying vectors to and from a-rate signals, function tables, and f-signals.
  - New ambisonic opcodes: bformdec1 and bformenc1. These opcodes deprecate the older bformdec and bformenc.
  - New Score control opcodes by Victor Lazzarini: rewindscore and setscorepos.

- New functionality:

  - The vbap family of opcodes (vbap4, vbap8, vbap16 and vbapz) now accept k-rate variables for all their input arguments.
  - New pulseaudio I/O module on Linux.
  - New optional ienv parameter to generate envelopes for the soundfont opcodes: sfplay, sfplay3, sfplaym and sfplay3m.
  - Added 'skip normalisation argument' to "tanh" named GEN routine. (See Named GEN Routines)
  - Added scheduler priority option on alsa.

- Bug fixes and improvements:

  - Allow scientific notation (as was in csound4!) in GEN23.
  - Fixed bug in FLTK initialization. Should make FLTK usage more stable.
  - Error on /* */ comments in orchestra fixed.
  - poscil no longer overwrites frequency if variable is shared.
  - printk and printks check that opcode is initialised.
  - Deprecate soundout and soundouts in favour of fout.
  - Fixed space opcode to accept non-pow-2 (deferred) tables.
  - Fixed pvsmorph bug.

- Internal Changes:

  - New parser has #include and argumentless macros.
  - Less casting between floats and doubles in float version.
  - Includes experimental multicore support.
  - buzz opcode rewritten.
  - Many other internal changes and small bug fixes.

### New in Version 5.08 (February 2008)

- New opcodes:

  - imagecreate, imagesize, imagegetpixel, imagesetpixel, imagesave, imageload and imagefree: New image file processing opcodes by Cesare Marilungo to read/write png images from Csound.
  - pvsbandp and pvsbandr by John ffitch, which perform band-pass and band-reject filtering in the spectral domain on a pvs signal.
  - New HRTF opcodes by Brian Carty:hrtfmove, hrtfmove2 and hrtfstat.
  - New waveshaping opcodes: powershape, polynomial, chebyshevpoly, pdclip, pdhalf, pdhalfy, and syncphasor
  - New jack transport control opcode: jacktransport

- New functionality

  - Added --csd-line-nums= command line option to select mode for error line reporting.
  - New "no-carry" operator (! ) for score language that prevents implicit carrying of p-fields in i-statements.
  - Added --syntax-check-only commandline flag (exclusive with --i-only)
  - <CsLicence> tag for CSDs. <CsLicense> is accepted as an alternative to <CsLicence>.

- Bug fixes and improvements:

  - Changed order of outputs for hilbert. This change breaks compatibility with previous versions, but fixes the opcode and now works as documented.
  - Messages about loading opcode plugins modified so can be suppressed with message level flag.
  - Major changes to score error reporting; now accurately reports the line numbers for the chain of inputs for most errors.
  - Corrected pan2 so it agrees with documentation.
  - <CsVersion> tag works again according to the manual.
  - Fixed the { and } score looping statements. Added missing documentation for them and ~, &, |, and # operators in score expressions.
  - hilbert had its outputs reversed, now correct. Manual example updated.

- Internal Changes:

  - Change to gettext localisation; French and Columbian-Spanish translations available.
  - Internal changes to partikkel, interpolation of waveform read and windowing, allowing more precise pitch synchronous granular synthesis. Updated examples for partikkel.
  - pvscale: Improved algorithm for SDFT case so no ampltitude variation.

### New in Version 5.07 (October 2007)

- New opcodes:

  - pan2: a stereo panning opcode
  - cpsmidinn, pchmidinn, octmidinn: converters for MIDI note numbers
  - fluidSetInterpMethod: interpolation in fluid sound fonts
  - sflooper: a soundfont version of flooper2
  - pvsbuffer and pvsbufread: buffering/reading of fsigs for delays/timescale changes.

- New functionality

  - SDFT - the Sliding Discrete Fourier Transform -- added seamlessly to pvsanal, etc opcodes if the overlap is less than the ksmps or less than 10. Some pvsXXX opcodes extended to take a-rate parameters when sliding.

  - New feature (-O null / --logfile=null) that disables all messages and printing to the console.

- Bug fixes and improvements:

  - partikkel -- particle synthesis had an inadvertent bug, now fixed.
  - Closing of MIDI input on Windows(MM) failed; now fixed
  - fluidEngine opcode now takes optional number of channels (range 16-256, default to 256) and polyphony (range 16-4096, default to 4096) to use.
  - atsa utility safer when given silence.
  - ATSaddnz: improved checking.
  - Ambisonics (bformdec, bformenc) has more options for controlled opposites.
  - Bug in turnoff2 fixed.
  - het_export: invalid check caused export to fail.

- Internal Changes:

  - Improved Windows installer.
  - CsoundVST replaced by CsoundAC, that does not depend on the VST SDK headers.
  - Less messages in Windows(MM) startup.
  - P argument type added (k-rate defaults to 1) for opcode in and out types.

### New in Version 5.06 (June 2007)

- New granular opcodes: partikkel, partikkelsync and diskgrain.

- New opcode for event dispatch: scoreline.

- Many new opcodes from Gabriel Maldonado's CsoundAV: hvs1, hvs2, hvs3, vphaseseg, inrg, outrg, lposcila, lposcilsa, lposcilsa2, tabmorph, tabmorpha, tabmorphi, tabmorphak, trandom, vtable1k, slider8table, slider16table, slider32table, slider64table, slider8tablef, slider16tablef, slider32tablef, slider64tablef, sliderKawai and the a-rate version of ctrl7.

- Also from CsoundAV, many new FLTK widget opcodes: FLkeyIn, FLslidBnk2, FLvslidBnk, FLvslidBnk2, FLmouse, FLxyin, FLhvsBox, FLslidBnkSet, FLslidBnkSetk, FLslidBnk2Set, FLslidBnk2Setk, FLslidBnkGetHandle,

- New pvs opcodes: pvsdiskin, pvsmorph,

- eqfil

- New command line options (--m-warnings)to control messages

- csladspa: a CSD to LADSPA plugin kit.

- And many bug fixes including (but not limited to): fixed k-rate version of system; fixed scaling problems of vrandh and vrandi; fixed ocasional failure of turnoff; fixed OS X bug; fixed ATScross and fixed mod.

  Csound5GUI now works properly on all platforms and csoundapi~ (pd object) has been updated.

Prev | Up | Next
Getting Started with Csound | Home | Part I. Overview