<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Recent Developments</title> <link rel="stylesheet" type="text/css" href="csound.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /> <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" /> <link rel="up" href="PartOverview.html" title="Part I. Overview" /> <link rel="prev" href="Introduction.html" title="Introduction" /> <link rel="next" href="featuresOfCsoundAC.html" title="Features of CsoundAC" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Recent Developments</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="Introduction.html">Prev</a> </td> <th width="60%" align="center">Part I. Overview</th> <td width="20%" align="right"> <a accesskey="n" href="featuresOfCsoundAC.html">Next</a></td> </tr> </table> <hr /> </div> <div class="chapter" title="Recent Developments"> <div class="titlepage"> <div> <div> <h2 class="title"><a id="RecentDevelopments"></a>Recent Developments</h2> </div> </div> </div> <p>In the time since Barry Vercoe wrote the original Preface to this manual, printed above, many further contributions have been made to Csound. CsoundAC is an extended version of Csound 5.</p> <div class="section" title="Features of Csound 5"> <div class="titlepage"> <div> <div> <h2 class="title" style="clear: both"><a id="newFeaturesInCsound5"></a>Features of Csound 5</h2> </div> </div> </div> <p>Csound 5 begins a new major version of Csound that includes the following new features:</p> <div class="itemizedlist"> <ul class="itemizedlist" type="disc"> <li class="listitem">Now licensed under the GNU Lesser General Public License, an open source license.</li> <li class="listitem">A new, easier to manage build system using <span class="application">SCons</span>.</li> <li class="listitem"> <p class="simpara">The use of widely--accepted open source libraries:</p> <div class="itemizedlist"> <ul class="itemizedlist" type="circle"> <li class="listitem">libsndfile for soundfile input and output.</li> <li class="listitem">PortAudio with ASIO drivers for low-latency, real-time audio input and output.</li> <li class="listitem">FLTK for graphical widgets that can be programmed in orchestra code.</li> <li class="listitem">PortMidi for real-time MIDI input and output.</li> </ul> </div> <p class="simpara">In addition, Istvan Varga has contributed native MIDI and audio drivers for Windows and Linux.</p> </li> <li class="listitem">Simplified audio buffering system.</li> <li class="listitem">Status returns from all internal functions, including opcode functions.</li> <li class="listitem">MIDI interop opcodes, that enable the same instrument definitions to be used interchangeably for either live MIDI performance or off-line, score-driven performance.</li> <li class="listitem"> <p class="simpara">Plugin opcodes are working and becoming more widely accepted. Many opcodes have been moved to plugins. Most new opcodes are plugins, including:</p> <div class="itemizedlist"> <ul class="itemizedlist" type="circle"> <li class="listitem">The FluidSynth-based SoundFont opcodes.</li> <li class="listitem">Python opcodes allowing Python code to execute in the orchestra header or in instrument code, at <code class="literal">i</code>-rate or <code class="literal">k</code>-rate.</li> <li class="listitem">Loris opcodes for time/frequency analysis and resynthesis.</li> <li class="listitem">Control bus opcodes.</li> <li class="listitem">Audio mixer opcodes.</li> <li class="listitem">String conversion opcodes.</li> <li class="listitem">Improved Open Sound Control (OSC) opcodes.</li> <li class="listitem">Vectorial opcodes.</li> <li class="listitem">The <span class="application">pvs</span> opcodes for real-time spectral processing, a port of Mark Dolson's phase vocoder code.</li> <li class="listitem">The <span class="application">ATS</span> opcodes for spectral Analysis, Transformation, and Synthesis of sound based on a sinusoidal plus critical-band noise model. A sound in ATS is a symbolic object representing a spectral model that can be sculpted using a variety of transformation functions. These opcodes can read, transform and resynthesize ATS analysis files. Please note that you need the ATS application to produce analysis files.</li> <li class="listitem">The STK opcodes, consisting of Perry Cook's original Synthesis Toolkit in C++ instruments, in C++, adapted as opcodes.</li> <li class="listitem"><span class="application">DSSI</span> and <span class="application">LADSPA</span> adapter opcodes for hosting <span class="application">DSSI</span> and <span class="application">LADSPA</span> plugins in Csound.</li> <li class="listitem"><span class="application">vst4cs</span> VST adapter opcodes for hosting VST plugins in Csound. (Distributed in source form only due to the VST SDK licence restrictions.)</li> </ul> </div> </li> <li class="listitem">The <code class="filename">OpcodeBase.hpp</code> header file for writing plugin opcodes in C++. This is based on the technique of static polymorphism via template inheritance.</li> <li class="listitem">Istvan Varga's csound5gui frontend for Csound, simplifying the editing of Csound, the use of Csound especially for live performance, and the monitoring of performances.</li> <li class="listitem">Victor Lazzarini's Tcl/Tk frontends for Csound, <span class="application">cstclsh</span> and <span class="application">cswish</span>.</li> <li class="listitem"> <p class="simpara">The Csound API is becoming more standardized and more widely used. There are interfaces or wrappers to the API in the following languages:</p> <div class="itemizedlist"> <ul class="itemizedlist" type="circle"> <li class="listitem">C (include <code class="literal">csound.h</code>).</li> <li class="listitem">C++ (include <code class="literal">csound.hpp)</code>). This API includes Csound score and orchestra file container functions.</li> <li class="listitem">Python (<code class="literal">import csnd</code>).</li> <li class="listitem">Java (<code class="literal">import csnd.*;</code>).</li> <li class="listitem">Lua (<code class="literal">require "csnd";</code>).</li> <li class="listitem">Lisp (use the CFFI file <code class="literal">csound5.lisp</code>).</li> </ul> </div> </li> <li class="listitem">Csound is now truly re-entrant, meaning that multiple instances of Csound can run at the same time, in the same process.</li> </ul> </div> <p>John ffitch plans to replace the handwritten parser with one written using a parser generator, which should make it more bug-free and perhaps more efficient.</p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="Introduction.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="PartOverview.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="featuresOfCsoundAC.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top"> Introduction </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Features of CsoundAC</td> </tr> </table> </div> </body> </html>