Skip to content
Malte Steiner edited this page Dec 9, 2022 · 9 revisions

Gravel Live Coding system

Gravel is a live coding system consisting on the sequencer and its editor via which the user controls the sequencer via its own domain specific programming language. The sound is generated by the buildin synthesizer which is made with the audio system Csound which loads an instrument definition file at program start. That script defines the different instruments, like bass drum, snare drum etc., which can be triggerd by the sequencer. With some experience in Csound language, the user can edit that file and create custom instruments and effects, and load it at the next program start without the need to recompile the Gravel application.

Additional to the instrument name which is used in Gravel to reference that instruments, various parameters can be also defined to control several aspects like the pitch and duration from the sequencer, which is one of the core features of Gravel. Its easy to vary or randomize these parameters in the sequencer and create so with little code complex, evolving patterns.

Gravel Editor

The top section with the syntax highlighted code is the main area in which the user types in and evaluates Gravel code. The contents can be stored as a textfile and later opened or merge loaded to existing code via the file function in the menu.

Below is non editable output area which contains useful information like the loaded instrument definition and all the parsed parameters which can be used in the Gravel sequencer. The blue colored names for instruments and parameters are the ones to use as reference in the sequencer.

Getting Gravel to start with the right audio card is a bit complicated because for now the setting can be only done in the csound instrument file csoundIntruments.csd The settings can be found on top in the CsOptions section. Gravel put out information about the available audio devices in the non editable section, on top of the table with the instrument and parameter table. For Linux this should simply work if you have JACK running:

<CsOptions> -+rtaudio=jack -odac </CsOptions>

Alternative is running direct on ALSA, these settings take the first available audiodevice:

<CsOptions> -+rtaudio=alsa -odac:hw:0,0 -g -b 512 </CsOptions>

For Mac following settings might work, -odac0 points to the first found device in the list. If other are prefered, the 0 has to be replaced with the correct number:

<CsOptions> -+rtaudio=auhal -odac0 -g -b 512 </CsOptions>

For Windows following might be enough, -odac0 points to the first found device in the list. If other are prefered, the 0 has to be replaced with the correct number

<CsOptions> -+rtaudio -odac0 -g -b 512 </CsOptions>

Helpful are the Csound Windows documentation

Clone this wiki locally