ddwChucklib-livecode icon indicating copy to clipboard operation
ddwChucklib-livecode copied to clipboard

A live-coding interface for chucklib objects

  • chucklib-livecode

An framework for live-coding using ddwChucklib objects in the SuperCollider programming language.

** Design overview

In /chucklib/, =BP= objects play patterns to make sounds. Using this framework, =BPs= inherit from a specific process prototype, =PR(\abstractLiveCode)=, which provides hooks that accept new patterns from chucklib-livecode. Instances of this process can play any SuperCollider SynthDefs or Voicers, with a flexible default system.

Chucklib-livecode installs a =preProcessor= into the SuperCollider interpreter, which translates compact livecoding commands into full SC syntax. The most important of these commands divides a bar's worth of musical time into events, generally indicated by single characters, which may also be grouped into subdivisions. This style of notation is inspired by http://www.ixi-audio.net/ixilang/ and is fairly straightforward to correlate to the sounding rhythm. /Generator/ functions may produce new content in every bar.

#+begin_example /kik = "xxxx"; // 4otf

/kik.fill1 = "x|x|x|x x"; // trailing 16th-note

/kik.triple = "xxx"; // 3 divided over the bar

/hh = ".-.-.-.-"; // normal offbeats

/hh = ".-|. -^| ^- |.-"; // extra emphasis on 2-a and 3-e

/kik/hh/snr+ // play /kik/hh/snr+4 // play on next quant = 4 /kik/hh/snr- // stop #+end_example

Full documentation is in PDF form: https://github.com/jamshark70/chucklib-livecode/blob/master/cl-manual.pdf

  • +Pitch support and Voicer+ There was a note in this space about using the =topic/rearticulation= branch of the ddwVoicer quark. That's no longer necessary; I've merged that branch into the quark's master branch.

You might need to update ddwVoicer.

  • License

chucklib-livecode is licensed this under Creative Commons CC-BY-NC-SA 4.0. You may create a derivative project, provided you don't use the code commercially and, if you release your code, you should credit me and license it under CC-BY-NC-SA or a more permissive license.

[[http://creativecommons.org/licenses/by-nc-sa/4.0/]]