CsoundAV History of changes

Here is a list of the features of CsoundAV, listed from the newer versions to the oldest one.



CsoundAV Version 0.0432
(March 2005)
Some bug fixes and integration of new opocodes of the canonical...
CsoundAV Version 0.0431
(March 2003)
This is an experimental version that should allow to use native ASIO with card with a number of channels different for input and output. Only inch opcode is allowed in this case (no in, ins, inq etc.), and the user must set the new flag -+i followed by the number of input channels to activate, besides flags -+P and -+I (portaudio out and in).
CsoundAV Version 0.043
(February 2003)
  1. Now ASIO should work with most professional (i.e. 20, 24 and 32-bit) audio interfaces in native mode (I tested it with MOTU 828 firewire card).
    32-bit float format is allowed for realtime in/out with portaudio (by setting -f flag), besides 16-bit integer format. So, supported realtime formats are 16-bit integers and 32-bit floats (the latter is highly recommended with interfaces capable of more than 16 bit, because of the huge quality improvement). WARNING! True 24 bit is not supported yet by current Portaudio ASIO version, so float samples are converted to 32-bit integer instead. When this happens all goes OK, but the ASIO drivers of some cards could still activate the 24-bit software converter. At present time, due to undefined endianess handling of 24 bit-integers, highly distorted output could damage your speakers and ears. So, low the volume of your amplifer to a minimum when testing  ASIO for the first time, and increase it slowly to hear if all is OK.
  2. In the "Realtime File Output" area of the main window (hard-disk recording of realtime session), now the files written are true .wav files, not headerless raw files with .wav extension as in previous versions (you have to set -R flag, in order to rewrite header) . Also support of 32-bit float is allowed for recording when setting -f flag with portaudio output.
  3. Now portaudio displays correct amplitudes of the events on the console.
  4. vcopy_i copies a table to another table at i-rate
  5. FLslidBnkGetHandle and FLslidBnkSet allow to reset the values of a slider bank (created with FLslidBnk) according to an array of values stored into a table.
  6. Installation distributions, with examples.
CsoundAV Version 0.04
(December 2002)
  1. Portaudio support. This means also ASIO multichannel support, and low latency with all cards that support ASIO.
  2. Mouse opocdes with OpenGL: GLmouseXY, GLmouseButton and GLmouseScroll
  3. Loading/saving tables to disk: ftsave, ftload, ftsave_k and ftload_k
  4. If the string "BROWSE_FILE" is set for a filename (in any opcode that get file names, such as soundin, diskin, ftsave, ftload etc.), a file browser dialog-box will appar, allowing the user to choose corresponding file at performance time.
  5. OpenGL API wrappings: glStencilFunc, glStencilOp and glClearStencil
  6. OpenGL viewport opcodes: GLsetViewport, GLgetScreenInfo_i, GLgetScreenInfo and GLsetMouseCursor
  7. Many bug fixed
CsoundAV Version 0.03
(April 2002)
  1. New type of variables: t-rate that works at frame-rate. This avoid to confuse frame-rate variables with control rate variables. All OpenGL opcodes have been modified to accept arguments having this rate.
  2. Comparison and logical operators at t-rate (>, >=, <, <=, &&, || etc.)
  3. All scalar math operators operating at t-rate now can be used in expressions with traditional infix notation (-,+,*,/,^, sin(texpr), pow(texpr) etc. instead of GLsum, GLmul, GLdiv, GLsin, GLpow etc.). Also assignment operators: = and init
  4. Modification of opcode GLif, GLelse, GLend_if opcodes, that now accept comparison and logical expressions as input.
  5. New modifiers of flow of control of graphical engine: GLwhile, GLend_while, GLdoWhile, GLend_doWhile opcodes
  6. OpenGL Height fields: GLhf and GLtexHF opcodes
  7. Support of the OpenGL-based "GLE Tubing and Extrusion Library": glePolyCylinder, gleSetJoinStyle, gleGetJoinStyle, gleSetNumSides, gleGetNumSides, gleTextureMode, glePolyCone, gleExtrusion, gleSuperExtrusion, gleTwistExtrusion, gleTaper, gleSpiral, gleLathe, gleHelicoid, gleToroid, gleScrew, gleBuildNormals opcodes
  8. 2D bitmap and vectorial text font support: GLUTprints opcode.
  9. Python extensions by M.U.Puxeddu (experimental). See corresponding documentation at Puxeddu's web site for more information.
  10. Some modifications to make FLscroll and FLbox opcodes to allow image display and skins.
  11. Widget labels can contain newlines (thanks to Puxeddu's Python extensions) by using {{multiline string}}
  12. GUI Console addition: volume adjuster, now GUI console can be quitted by typing the ESC key.
  13. A lot bug fixes
  14. Due to syntax changes (t-rate) old orc/sco containing OpenGL-related opcodes could be incompatible with this CsoundAV version
  15. Synchronized with canonical version 4.19
CsoundAV Version 0.01 (January 2002)
  1. Name has changed into CsoundAV (AV standing for Audio-Video; before it was called DirectCsound).This is a major release change. It now supports graphical output, based on OpenGL. It is present a numerous family of opcodes related to OpenGL API. An additional engine (alongside normal audio engine) is provided to support realtime graphics in both 2 dimensions and 3 dimensions. All graphic opcodes are intended to be beta-versions (the realtime camera capture feature is alpha and works only on Win98, not on Win2000 at present time). Graphic engine design could change  to be improved in the future.
  2. Graphic engine setup-related opcodes: GLfps, GLpanel, GLpanel_end, GLinsert, GLinsert_i, GLfullscreen, GLredraw, GLclearWhen, GLwaitInitStage, GLratio 
  3. Low-level OpenGL API-wrapping opcodes: glVertex3, glClearColor, glColor, glColor3, glMatrixMode, glOrtho, glClear, glBegin, glEnd, glLoadIdentity, glPushMatrix, glPopMatrix, glTranslate, glRotate, glScale, glEnable, glDisable, glHint, glLight, glLightv, glLightModel, glLightModelv, glLineWidth, glBlendFunc, glMaterial, GLshininess, glShadeModel, glBindTexture, glTexCoord2, glCullFace, glFrontFace, glPixelTransfer, glPixelMap, glDrawBuffer, glNewList, glEndList, glCallList, glTexEnvi, glTexEnvfv, glTexGeni, glTexGenfv, glEnableClientState, glDisableClientState, glVertexPointer, glNormalPointer, glColorPointer, glIndexPointer, glTexCoordPointer, glEdgeFlagPointer, glArrayElement, glDrawElements, glDrawArrays, glLoadMatrixv, glMultMatrixv, glLoadMatrix, glMultMatrix, glFrustum, glClipPlane, glEvalCoord1, glEvalCoord2, glEvalMesh1, glEvalMesh2, glMap1, glMap2, glMapGrid1, glMapGrid2
  4. middle-level and glu-related opcodes: gluPerspective, gluLookAt, gluNewQuadric, gluSphere, gluCylinder, gluDisk, gluQuadricDrawStyle, gluQuadricNormals, gluQuadricTexture, gluTessBeginPolygon, gluTessEndPolygon, gluTessBeginContour, gluTessEndContour, gluTessVertexv, gluTessVertex, gluNewNurbsRenderer, gluBeginCurve, gluEndCurve, gluBeginSurface, gluEndSurface, gluBeginTrim, gluEndTrim, gluNurbsCurve, gluNurbsSurface, gluNurbsProperty, gluPwlCurve
  5. High-level OpenGL opcodes: glutSphere, glutTorus, glutCube, glutDodecahedron, glutOctahedron, glutTetrahedron,  glutIcosahedron, GLloadTexture, GLwavefrontModel, GLtexCube, GLtexSquare, GLtexCircle, GLtext3d, GLfont3d
  6. Flow of control for graphic engine: GLfor, GLfor_end, GLif, GLelse, GLend_if
  7. Frame-rate math operators: GLsum, GLsub, GLmul, GLdiv, GLmod, GLint, GLfrac, GLrnd, GLbirnd, GLabs, GLexp, GLlog, GLsqr, GLsin, GLcos, GLtan, GLasin, GLacos, GLatan, GLsinh, GLcosh, GLtanh, GLlog10
  8. Frame-rate vector operators: GLvadd, GLvmult, GLvpow, GLvexp, GLvaddv, GLvsubv, GLvmultv, GLvdivv, GLvpowv, GLvexpv, GLvcopy, GLvmap, GLvlimit, GLvwrap, GLvmirror
  9. Frame-rate signal generators: GLtab, GLtabw, GLvtab, GLvtabw, GLphasor, GLoscil, GLoscili, GLmetro, GLvphaseseg
  10. Video-related: GLopenVideoFile, GLvideo2tex, GLvideoCapture
  11. Bitmap (pixmap) Image processing: img2GLtex, imgGain, imgConvolve
  12. New widget (a bank of sliders): FLslidBnk (cool for creating a GUI with hundreds of controls in short time).
  13. Widget Panels now support bitmap images as background, that can be tiled, to enhance look of your favourite csd.
  14. New fashion of buttons, enhanches look of your csd.
  15. New widget-related opcodes: FLcolor2, FLsetImage, FLsetOverlay,  FLtextSize
  16. lposcinta added (see lposcint)
  17. It is possible to exit the CsoundAV program directly by calling the opcode exitnow
  18. It is possible to turn off a score note at any moment with turnoffk
  19. It is possible to access zak space for read, directly inside expressions, by using functions zr(isig), zr(ksig) and zr(asig)
  20. It is possible to access tables for read, directly inside expressions, by using opcodes tbXX_init, and functions tbXX(isig), tbXX(ksig)
  21. Rate converters in function fashion: k(isig), a(ksig), g(ksig), tabk2g, set_g_del
  22. Data output of spectral opcodes (i.e. spectrum etc.) can actually be accessed and used by k-rate opcodes spec2tab, and you can get information about w-signal with specinfo
  23. Send a single trigger signal to different outputs, according to a user-defined scheme with splitrig opcode
  24. Record k-rate signals into tables and playback them with tabrec and tabplay opcodes
  25. vphaseseg opcode is similar to vlinseg, but allows to traverse each point (each point value is actually a vector of values) with a non-linear timing path (one-dimensional Hyper-Vectorial Synthesis), by providing a phase as input.
  26. timedseq opcode allows to traverse a sequence of multi-parametrized events (that can be similar to score notes) with a non-linear timing path, by providing a phase as input.
  27. changed opcode return a trig signal that informs when a k-rate signal has changed.
  28. system opcode allows to forward commands to shell from within Csound.
  29. Environment variables (SFDIR, SADIR etc.) can be set direcly from the GUI window by means of a new special button
  30. Synchronized with Public Csound version 4.17
  31. A lot of bugs fixed (but probably new ones will rise).

Known bugs: Double version of both GUI and Console executable crash with sfload opcode. I don't know the actual cause of the bug at present time. It seems to be due to csound parser and/or inserter. However soundfonts run ok with 32-bit GUI and Console versions.

Version 5.10

(March 2001)
  1. CsoundAV implements GUI-widget opcodes to control synthesis parameters in realtime. Such opcodes have been written using the ultra-fast and multi-platform FLTK library. Both console and windows version support such opcodes. The introduction of FLTK (and, in the near future, of OpenGL) opens a new era for Csound, that will support both graphic and sound.
  2. GUI containers: FLpanel, FLpanel_end, FLscroll, FLscroll_end, FLtabs, FLtabs_end, FLgroup, FLgroup_end, FLpack, FLpack_end
  3. GUI valuators: FLslider, FLknob, FLroller, FLtext, FLjoy, FLcount
  4. GUI widgets: FLbutton, FLbutBank, FLbox, FLvalue, FLprintk, FLprintk2
  5. Opcodes that modify widget apparence: FLcolor, FLlabel, FLsetVal_i, FLsetVal, FLsetColor, FLsetColor2, FLsetTextSize, FLsetTextColor, FLsetFont, FLsetTextType, FLsetText, FLsetSize, FLsetPosition, FLhide, FLshow, FLsetBox, FLsetAlign
  6. General widget-related opcodes and snaphsot support: FLrun, FLsetsnap, FLgetsnap, FLsavesnap, FLloadsnap
  7. Synchronized with canonical Csound version 4.12
  8. Some bugs fixed
Version 5.00

(January 2001)
  1. BITMAP IMAGES can be used to generate scalar and vectorial control signals: opcodes bmopen, bmtable, bmtablei, bmoscil, bmoscili, rgb2hsvl, rgb2hsvl_i, bmscan and bmscani
  2. FRACTALS: Mandelbrot set can be used to generate control signal, opocde mandel
  3. VECTORIAL OPERATORS: now it is possible to apply mathematical operations to vectorial signals: opcodes vadd, vmult, vpow, vexp, vaddv, vsubv, vmultv, vdivv, vpowv, vexpv, vcopy, vmap, vlimit, vwrap, vmirror
  4. VECTORIAL SIGNAL GENERATORS: opcodes vlinseg, vexpseg, vrandh, vrandi
  5. VECTORIAL MODIFIERS: opcodes vport, vecdelay
  6. Control rate variable delay: opcode vdelayk
  7. CELLULAR AUTOMATA: vcella opcode generates a vectorial signal based on CA algorithms.
  8. Additive synthesis oscillator bank: adsynt2 opcode is designed to receive vectorial  control signals.
  9. GLISSANDO GENERATORS: opcodes lineto and tlineto
  10. TRIGGER METRONOME: opcode metro
  11. MICRO TUNING: opcodes cpstun and cpstuni
  12. Synchronized with canonical Csound version 4.10
  13. 32 bit and 64 bit floating-point versions provided, both in console and GUI fashion.
  14. Many bugs fixed (other ones could arise, however, due to the radical changes of last canonical versions)
Version 4.65

(June 2000)
  1. Sequence-related opcodes: seqtime and trigseq
  2. Random curve opcodes: jspline and rspline
  3. Tables of vectors read/write access: vtable, vtab, vtablew, vtabw
  4. Common musical converters: octave( ), semitone( ), cent( ), db( ).
  5. new version of SoundFont2 support, hugely fixed now it should operate OK with most sf2 files. Cubic interpolation now available.
  6. Synchronized to canonical version 4.05
  7. Many bugs fixed
  8. Both GUI and console versions now available
Version 4.5

(March 2000)
  1. SoundFont2 support: sfload, sfplist, sfilist, sfpassign, sfpreset, sfplay, sfplaym, sfinstr and sfinstrm opcodes
  2. Random generators: random, randomi and randomh opcodes
  3. User-defined random distributions: GEN40, GEN41, GEN42 subroutines, Dusrnd, urd, Cusrnd opcodes
  4. "Natural" and "analog" vibrato generators: vibrato, vibr
  5. "Analogizing" opcodes: jitter, jitter2
  6. "edit orchestra" and "edit score" buttons on the GUI interface
  7. many bug fixes
Version 4.00

(January 2000)
  1. CsoundAV 4.0 is a pure Win32 program, while previous versions were console-based programs
  2. It now provides a GUI interface
  3. Display and hard-disk recording can be suppressed/activated during the performances
  4. Command line arguments can be typed directly in the corresponding dialog box when the executable is run without arguments
  5. Performance sessions can be terminated without exiting from the main program.
  6. It is possible to drag/drop a .csd file to the main window of CsoundAV  to run it directly.
Version 3.04

(December 99)
  1. Sinchronized to standard version 4.01
  2. Several bug fixes mainly regarding DirectX, DirectSound3D and EAX 2.0
  3. Available a version compiled with the ultra-fast INTEL compiler for Pentium II and faster processors
  4. New opcodes: loopseg and lpshold
Version 3.01

(October 99)
  1. Support for orchestra without score (for realtime sessions). When no score file name is given as command line argument CsoundAV automatically creates a dummy score containing "f0 86400" that allows 24 hours of realtime performance.
  2. Rasmus Ekman's schedkwhen and new  Jens Groh and Peter Neubäcker opocodes nalp and phasorbank. (All these opcodes are not tested).
  3. .csd file bug fixed
  4. other minor bugs fixed.
Version 3.0

(October 99)
  1. Windows DirectSoundCapture support (-+C flag). Low latency audio input (for those audio cards that support it in native mode).
  2. Windows DirectSound support of secondary buffers (-+S flag. This makes DirectCsound compatible with more Windows platforms).
  3. Support realtime three-dimensional audio (surround audio with some audio cards): Microsoft's DirectSound3D and Creative's EAX 2.0
  4. Windows DirectSound3D support.   New opcodes: Init3dAudio, Out3d, DsListenerPosition, DsListenerOrientation, DsListenerRolloffFactor, DsListenerDistanceFactor, DsListenerSetAll, DsMode, DsPosition, DsMinDistance, DsMaxDistance, DsConeAngles, DsConeOrientation, DsConeOutsideVolume, DsSetAll, DsEaxSetDeferredFlag, DsCommitDeferredSettings.
  5. Creative's EAX 2.0 support: New opocodes: EaxListenerEnvironment, EaxListenerEnvSize, EaxListenerEnvDiffusion, EaxListenerRoom, EaxListenerRoomHF, EaxListenerDecayTime, EaxListenerDecayTimeHfRatio, EaxListenerReflections, EaxListenerReflectionsDelay, EaxListenerReverb, EaxListenerReverbDelay, EaxListenerRoomRolloff, EaxListenerAirAbsorption, EaxListenerFlags, EaxListenerAll, EaxSourceDirect, EaxSourceDirectHF, EaxSourceRoom, EaxSourceRoomHF, EaxSourceObstruction, EaxSourceObstructionRatio, EaxSourceOcclusion, EaxSourceOcclusionRatio, EaxSourceOcclusionRoomRatio, EaxSourceRoomRolloff, EaxSourceAirAbsorption, EaxSourceOutsideVolumeHF, EaxSourceFlags, EaxsourceAll
  6. Termination action in response of a MIDI 0xF5 message (which at present time is not used for any other purpose). So to terminate a realtime session of DirectCsound is sufficient to send a 0xF5 byte via MIDI. This help with shells, and makes useless to focus Csound console and to press Ctrl-C. VMCI Plus 2.01 supports this feature.

Version 2.90

(September 99)
  1. Synchronized with standard version 3.58
  2. Gen functions now can generate tables having non-power-of-two length, by giving a negative length value.
  3. poscil now can accept negative frequency values, and a-rate values both for amplitude and frequency, so both AM and FM are allowed using poscil. Also, differently by oscil family, they allow non-power-of-two length tables.
  4. tab and tabw opcodes, faster than table and tablew, accept non-power-of-two length tables.
  5. phasor now supports a much more precise phase generation, as phase is stored into a double internal variable instad than float (like poscil family). This removes some imprecision  and distorsion when writing and reading long tables.
  6. Added latest opcodes of Peter Neubaecker and Jens Groh (though must be tested).
  7. wguide1 and wguide2 now accept both k and a-rate arguments for frequency, in order to eliminate distorsion in vibratos and glissandos.
Version 2.80

(July 99)
  1. New opcodes: foutk, fouti, foutir, fiopen, fin, fink, fini to handle binary and text files in/out.
Version 2.70

(March 99)
  1. syncronized with canonical Csound ver. 3.52
  2. String p-field allowed in score with reference to the following opcodes:
    adsyn, pvoc, soundin, diskin, lpread, convolve etc. can now receive string argument by a note in score
  3. no more noises or repeats of last chunk of samples at the end of a realtime session.
  4. some bug fixed
Version 2.6

(February 99)
  1. new score opcodes: { } (nested loops), F (score table creation)
  2. new score macro arithmetic operators: T (score table access), R (random numbers), ^ (power), % (modulus)
  3. Nested macros. The syntax of macros with arguments has changed a bit : now comma character must be used in order to separate arguments instead of '#' character .
  4. During each csound session a file named orc.srt containing orchestra macro expansions is created, in order to find bugs when using macros.
  5. New orc opcodes: resony
  6. some bugs fixed
Version 2.5

(January 99)

  1. This version is synchronized with canonical Csound 3.494 (all opcodes, macros, score math, etc.)
  2. unified orc/sco files are now enabled (with a little modification with respect of that of canonical version). These files can contain the execution flags too. To run an unified file simply drag it to the csound.exe file icon (the file msut have .csd extension). These files use the M.Gogins syntax: see test.csd as an example.
  3. New opcodes: "fout", "vincr", "clear" and "fold"
  4. Midi Program Change messages and Pitch Bend are now implemented in realtime.
  5. Operator "^" allows power raising in score macro arithmetic.
  6. Many bugs fixed.
  7. Opcodes renamed to stay synchronized with canonical version:
    kon -> midion
    kon2 -> midion2
    physc1 -> wguide1
    physic2 -> wguide2
    iwrap -> wrap
    imirror -> mirror
    trig -> trigger
DirectCsound Version 2.1 (September 98)
  1. Now Csound language allows subroutine calls! (opcodes "icall" "dicall" "micall" "dmicall" "kargc" "kargt" "argc" "argt" "artrnc" "artrnt" "krtrnc" "krtrnt"
  2. better DirectX realtime audio with flag -+* 
  3. new opcodes: "foscili2" "cpstmid" 
  4. some bugs fixed 
DirectCsound Version 2.0
(June 98)
  1. Implements Win32 DirectSound routines in audio output. This drastically reduces latency delay!! At last it is possible to play Csound with a piano-like style as it would be a hardware synthesizer. Fast Pentium II processors are recommended. 
  2. All opcodes and features of standard 3.482 version now implemented 
  3. Covers all opcodes and features of RTsound 1.9xx 
  4. "flanger" opcode 
  5. "intrpol", "kntrpol" and "antrpol"  opcodes interpolate two input signals 
  6. "logbtwo(x)"  the inverse function of powoftwo 
  7. "slider32", "slider64", "slider32f", "slider64f", "slider16b14", "slider32b14" opcodes 
  8. "GEN23" gen-function reads numeric values from an external ascii file 
  9. "GEN24" gen-function reads numeric values from another allocated unction-table and rescales them according to the max and min values given by the user 
RTsound 1.902 (feb.98)
  1. "intrpol" "kntrpol" "antrpol" opcodes 
  2. "GEN 23" function table generator 
  3. midifile timing bug fixed 
RTsound 1.903 (mar.98)
  1. "Xslider32X" and "Xslider64X" opcodes 
  2. removed all standard MIDI control handling except than sustain pedal (contr.N.64) so up to 127 controllers for each MIDI channel are avalaible for custom realtime control. 
RTsound 1.901 (feb.98)
  1. '-L' flag now operates with realtime console keyboard input (only). 
  2. "powoftwo( )" function now allows negative values (see op_manual.txt) 
  3. "logbtwo()" function (see op_manual.txt) added. 
RTsound 1.9 
(jan. 98)
  1. RTsound now allows realtime WAVE IN operations on Win95 (of course in parallel with WAVE OUT). Plug your sound card to an external mono or stereo sound source (for example a couple of microphones), and use the huge Csound power to transform it! 
  2. All opcodes of standard 3.47 version now implemented. 
  3. Now you can use uppercase letters and "_"  (underscore character) for variable names, hugely improving orchestra readability. 
  4. Character "\" can be used to split an orchestra line, and can be followed by a comment ";" 
  5. New MIDI OUT opcodes: "midiin", "midiout", "kon2", "nrpn", "mdelay" 
  6. New filter opcodes: variant resonant lowpass filter "vlpres" 
  7. New oscillator algorithms allow more precise frequency control ("posc" ), and can vary table read margins at k-rate ("lposc","lposcint"
  8. short exponential segments now work well at a-rate with opcode "aexpseg" 
  9. New MIDI IN opcodes ("midiin") and fast bank-of-sliders management with "slider8", "slider16", "slider8f", "slider16f", "islider8", "islider16" opcodes 
  10. fast power of two function "powoftwo( )" 
release 1.8 
(sept. 97)
  1. MME WAVE OUT in parallel with FILE OUT. You can now record directly to hard disk in digital domain your realtime performance! (You must have a fast hard disk driver to use this feature). 
  2. Now, when flag '*' (yielding control to system for better multitasking) is set, Csound Win32 process is set to Realtime priority class. This make Csound to have precedence over most other concurrent processes, enhaching realtime performance. 
  3. Resonant lowpass filter (lpres) and layering filters opcodes (tonex, atonex, lpresx) which can serialize more filters, giving a more sharp cutoff and increasing performance speed and code readability. 
  4. fof3 opcode now lineary interpolates audio samples to produce a very better sound quality. 
  5. sample table related functions (GEN1 and GEN22): ftlen2(), nsamp() and ftsr(). 
  6. printk2 (for printing realtime sliders changes) 
  7. general purpose physical modeling algorythms are now implemented as opcodes ("physic1" and "physic2"
  8. Plug-in DLL library of Perry Cook toolkit with several physical model algorythms, plus support for external opcode libraries (coded by Michael Gogins). 
  9. several bug fixes remarkably in midi IN and OUT (for example midi channels now are 1-16 instead of 0-15; now MIDI OUT timing should be OK) 
release 1.731
  1. New MIDI IN controller UGs. The same as midicXX opcodes but now they can be activated by a score i statement without Csound crashes. These UGs are : ictrl7, ctrl7, ictrl14, ctrl14, ictrl21, ctrl21. A new argument allow the user to define the MIDI channel apart from the instrument number. 
  2. Initialization of controllers now can be set to any value (it can different from the minimum value set in midicXX and ctrlXX. Opcodes initc7, initc14, initc21). 
  3. loscil2 opcode uses 16-bit integer function table (see GEN 22) for storing samples. Very useful for LONG samples. 
  4. fof3 opcode, the same as fof2, but reads 16-bit integer samples from tables generated by GEN22. 
  5. GEN22 is identical to GEN01 except that stores 16-bit samples in RAM keeping 16-bit integer format. This halves RAM need. Very useful for LONG samples. 
release 1.72
  1. Command line can now be included in a file ('-/' flag). Very useful using Win95 long names, when command line is more long than 138 characters allowed by DOS. 
  2. ftlen2() function now can return non-power-of-two length of deferred tables created with GEN1. 
release 1.71
  1. Realtime MIDI OUT UGs: "ion" "ioff" "iondur" "iondur2" "moscil" "kon" "ioutc" "koutc" "ioutc14" "koutc14" "ioutpb" "koutpb" "ioutat" "koutat" "ioutpc" "koutpc" "ioutpat" "koutpat" "mclock" "mrtmsg"

  2. All these UGs can run in parallel with MIDI IN and WAVE OUT 
  3. MIDI-activated note-duration extension capabilities by means of new "xtratim" opcode. New "release" opcode allows the user to make complex ADSR envelopes if uses "release" in pair with "xtratim" 
  4. Optional replacing of WAVE OUT operations with a timing function during realtime performances. This enhances timing precision when using MIDI OUT UGs, but suppresses AUDIO out. This also hugely reduces program overhead, freeing the most part of CPU's resources when Csound is running, and enhances multitasking (flag '-Y'). 
  5. Optional yielding control to Windows during realtime DAC performance. This reduces program overhead, freeing a big part of CPU's resources when Csound is running, and enhances multitasking (flag '-*'). 
  6. some bug fixing and code enhancement 
  7. now dialog boxes appear when a WAVE or MIDI device error incurr. 
  8. In realtime operation '-o' and '-M' are now redundant when using '-q' and '-K' flags. 
  9. '-q' (WAVE OUT) '-K' (MIDI IN) and new '-Q' (MIDI OUT) flags can handle optional numeric arguments. If these numeric arguments are not present, console messages appear. These messages ask the user to type in the corresponding device id. 
  10. Now, when using -O flag, console text output suppression is active after orchestra and score compilation, allowing to view syntax errors. 
  11. New UGs included in  John Fitch version 3.46 (PVOC fixed, HRTF fixed, FOG, DISKIN and MIDI pitch-bend related). 
release 1.5
  1. More than 50% improved processing speed (more poliphony!). 
  2. arbitrary sr allowed from 5000 hz to 44100 hz for soundcards that support it (such as SB16 and AWE32 family). 
  3. drastically reduced realtime latency delay by reducing buffer length and consequently more interactive realtime operations when using rounded sr and kr (such as for example sr=32000 or sr=40000 and kr=100) 
  4. executable file length considerably reduced. 
  5. New UGs: midi realtime control with up to 21 bit precision ("midic7", "midic14" and "midic21" UGs). These new UGs also support optional table indexing 
  6. New UGs: "mirror" and "wrap" for clipping and modeling krate or audio signal in several ways. 
  7. new flag for suppressing all console text output for better realtime performance. 
  8. new flag for not waiting a keypress on exit 
  9. flag "-B" is automatically calculated on "-b" value so it is now redundant. 
  10. some bug fixing (such as the read-only attribute in output wave files when processing non-realtime operations). 
  11. new flag for graphic display of tables with Wcshell by Riccardo Bianchini (graphic of tables is saved in binary format). 
release 1.0
  1. Allows realtime midi input from Windows standard MIDI devices 
  2. Allows to define the number of output WAVE buffers 
  3. Allows to define virtual console of up to 2050 lines of text output (obviously through a scrolling window) 
  4. Recognizes all installed Windows MIDI input and WAVE output devices and, if these are more than one, it prompts the user for the device number desired. 
  5. Includes my "soundin2" new UG allowing interpolated and continuous pitch-shift reading of a soundfile. This UG also takes care of in/out sr difference during the processing (see soundin2.txt and soundin2.src files). 
  6. Includes all official John Fitch et al. 3.46 UGs, upgrades and fixes (see UG_ver34.txt and UG_ver35.txt files) 
  7. Includes all Robin Whittle's UGRW1 & UGRW2 UGs (see ugrw1.txt and ugrw2.txt files). 
  8. Allows full 16 bit stereo output up to 44100 Hz in realtime.