Front Ends

Here's a (far from complete) list of front-ends available for Csound.

Csound5GUI

Csound5GUI is a cross-platform, versatile GUI which is part of the standard Csound distribution. It implements most configuration features of Csound.

CSDplayer

This is a simple java program to play csd files. It is included in the standard distribution.

Winsound

Also part of the main Csound tree (though not available in all distributions), Winsound is cross-platform FLTK port of Barry Vercoe's original front-end for csound.

WinXoundPro

A convenient front-end for windows with syntax highlighting. You can get it at the WinXsound Front Page.

Csound Editor

A convenient front-end for windows with syntax highlighting. You can get it at the Flavio Tordini's Home Page.

MacCsound

More than a front-end for the Mac at MacCsound Page.

Cabel

Cabel is a graphical user interface for building csound instruments by patching modules similar to modular synthesizers. Cross-platform, written in Python. At http://cabel.sourceforge.net/.

Blue

Composition oriented front-end written in Java. It's interface is much like a digital multitrack, but differs in that there timelines within timelines (polyObjects). This allows for a compositional organization in time that seems to me to be very intuitive, informative, and flexible. Get it at: Blue Home Page.

CsoundAC

Python Scripting

You can use CsoundAC as a Python extension module. You can do this in a standard Python interpreter, such as Python command line or the Idle Python GUI.

To use CsoundAC in a standard Python interpreter, import CsoundAC.

      import CsoundAC

The CsoundAC module automatically creates an instance of CppSound named csound, which provides an object-oriented interface to the Csound API. In a standard Python interpreter, you can load a Csound .csd file and perform it like this:

      C:\Documents and Settings\mkg>python
      Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit (Intel)] on win32
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import CsoundAC
      >>> csound.load("c:/projects/csound5/examples/trapped.csd")
      1
      >>> csound.exportForPerformance()
      1
      >>> csound.perform()
      BEGAN CppSound::perform(5, 988ee0)...
      BEGAN CppSound::compile(5, 988ee0)...
      Using default language
      0dBFS level = 32767.0
      Csound version 5.00 beta (float samples) Jun  7 2004
      libsndfile-1.0.10pre6
      orchname:  temp.orc
      scorename: temp.sco
      orch compiler:
      398 lines read
      instr   1
      instr   2
      instr   3
      instr   4
      instr   5
      instr   6
      instr   7
      instr   8
      instr   9
      instr   10
      instr   11
      instr   12
      instr   13
      instr   98
      instr   99
      sorting score ...
      ... done
      Csound version 5.00 beta (float samples) Jun  6 2004
      displays suppressed
      0dBFS level = 32767.0
      orch now loaded
      audio buffered in 16384 sample-frame blocks
      SFDIR undefined.  using current directory
      writing 131072-byte blks of shorts to test.wav
      WAV
      SECTION 1:
      ENDED CppSound::compile.
      ftable 1:
      ftable 2:
      ftable 3:
      ftable 4:
      ftable 5:
      ftable 6:
      ftable 7:
      ftable 8:
      ftable 9:
      ftable 10:
      ftable 11:
      ftable 12:
      ftable 13:
      ftable 14:
      ftable 15:
      ftable 16:
      ftable 17:
      ftable 18:
      ftable 19:
      ftable 20:
      ftable 21:
      ftable 22:
      new alloc for instr 1:
      B  0.000 ..  1.000 T  1.000 TT  1.000 M:     32.7      0.0
      new alloc for instr 1:
      B  1.000 ..  3.600 T  3.600 TT  3.600 M:    207.6      0.1
      
      ...
      
      B 93.940 .. 94.418 T 98.799 TT281.799 M:    477.6     85.0
      B 94.418 ..100.000 T107.172 TT290.172 M:    118.9     11.5
      end of section 4         sect peak amps:  25950.8  26877.4
      inactive allocs returned to freespace
      end of score.              overall amps:  32204.8  31469.6
      overall samples out of range:        0        0
      0 errors in performance
      782 131072-byte soundblks of shorts written to test.wav WAV
      Elapsed time = 13.469000 seconds.
      ENDED CppSound::perform.
      1
      >>>
    

The koch.py script shows how to use Python to do algorithmic composition for Csound. You can use Python triple-quoted string literals to hold your Csound files right in your script, and assign them to Csound:

      csound.setOrchestra('''sr = 44100
      kr = 441
      ksmps = 100
      nchnls = 2
      0dbfs = .1
      instr 1,2,3,4,5 ; FluidSynth General MID
      I; INITIALIZATION
      ; Channel, bank, and program determine the preset, that is, the actual sound.
      ichannel		=			p1
      iprogram		=			p6
      ikey	 		= 			p4
      ivelocity 		= 			p5 + 12
      ijunk6 			= 			p6
      ijunk7			=			p7
      ; AUDIO
      istatus			=			144;
      print			iprogram, istatus, ichannel, ikey, ivelocityaleft, aright
      fluid			"c:/projects/csound5/samples/VintageDreamsWaves-v2.sf2", \\
      iprogram, istatus, ichannel, ikey, ivelocity, 1
      outs 			aleft, arightendin''')
      csound.setCommand("csound --opcode-lib=c:/projects/csound5/fluid.dll \\
      -RWdfo ./koch.wav ./temp.orc ./temp.sco")
      csound.exportForPerformance()
      csound.perform()