temporal-csound: library to make electronic music, brings together temporal-music-notation and csound-expression packages

[ bsd3, library, music, sound ] [ Propose Tags ]

This package joins the forces of the packages temporal-music-notation and csound-expression. The former package gives you handy primitives to arrange the events in sequences (like parallel or sequential composition, the tempo change, standard names for notes and durations) and the later is used for creation of musical timbres or software synthesizers.

You can find the short intro in the module Csound.

This library defines standard note representation that let's you invoke csound instruments with notes defined in the package temporal-music-notation.

Also this library provides you with some cool instruments to try the things out (see Csound.Patch).

WARNING: the library works best within ghci. The real-time sound rendering function dac spawns a child process in the background which may continue to execute after you stop the main process that runs the programm. It's not so in vim but it happens in the Sublime Editor and when you invoke runhaskell. So the best is to write you program in the separate file and then load it in the ghci and invoke the function main (which runs the sound rendering with the function dac).

Library strives to be very simple. For example, to trigger the instrument with virtual midi-device is as simple as (in ghci with loaded modules Csound and Csound.Patch)

Csound Csound.Patch> vdac $ mul 0.2 $ fmap largeHall $ onMidi stringPad

If you have a connected hardware midi-device you can just type:

Csound Csound.Patch> dac $ mul 0.2 $ fmap largeHall $ onMidi stringPad

And you are ready to go. To play a C-major chord just do:

Csound Csound.Patch> dac $ mul 0.2 $ magicCave $ mix $ notes vibraphone2 $ mel [c, e, g, high c, rest 15]

Here we send the output to speakers (dac or vdac), scale the signal to make it quiter (mul), place the signal in some room with reverberation (largeHall or magicCave), listen to midi events (onMidi or onMidin for a midi on the given channel) or get the signal from scores (mix), trigger the csound instrument (stringPad or vibraphone2) on events (notes) and construct the events in sequence (mel). Events include notes (c, e, g - C major) and rests (rest).


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.4.2, 0.4.3,
Dependencies base (>=4 && <5), csound-catalog (>=0.2.0), csound-expression (>=4.3), temporal-media (>=0.4), temporal-music-notation (>=0.4), temporal-music-notation-western (>=0.4.0) [details]
License BSD-3-Clause
Author Anton Kholomiov
Maintainer anton.kholomiov@gmail.com
Category Music, Sound
Home page https://github.com/anton-k/temporal-csound
Bug tracker https://github.com/anton-k/temporal-csound/issues
Source repo head: git clone https://github.com/anton-k/temporal-csound
Uploaded by AntonKholomiov at 2015-03-05T06:20:48Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 7601 total (37 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-03-07 [all 1 reports]