CIP v0.9 => ChucK Instrument Processing


About

ChucK Instrument Processing (CIP) facilities audio processing within ChucK.

CIP offers

  • Four audio busses
  • Graphical gain sliders
  • Signal level meters
  • Audio effects
  • Real time use
  • Scoring use

Download

Get CIP via Github here.

Get CIP here.

Requires

CIP requires a current install of the MiniAudicle v0.2.0. Available free here.

CIP has been tested on OS X 10.4, 10.5 and 10.6.

Introduction

Quick Demo

Run Start_CIP.ck.
For a demo run CIPdemo.ck.

Screenshots

Acknowledgement

The public class on which CIP behaviour is based was originally written by Kassen and is online here.

Video


Manual

CIP

Start_CIP.ck provides an easy way to include all current release CIP elements.

Once load the main CIP busses are available and controllable via the CIP interface and all CIP dsp processing is available.

CIP v0.9 features Delay, Reverb, Chorus and a resonant filter. These can be created as required and used in any part of the audio processing.

Example => A single delay

Create CIPDelay

CIPDelay i;

connect CIPDelay to audio busses input 0, output 1

spork ~ i.chipping(0, 1);

Exit code when exit button pressed

i.exitevent => now;

Note: delay length of CIPDelay can be changed using .delaylength(int)

Currently CIP has a delay CIPDelay, a resonant filter CIPRz, chorus CIPChorus and a reverb CIPrev.

Stand alone CIP Bus use

The basic CIP class (cip.ck) can be used alone to provide easy internal routing between active chuck code within the Virtual Machine (VM). Once the CIP code has been added to the VM the following 'busses' are available for use like other UGens.

 bus.chan[0], bus.chan[1], bus.chan[2], bus.chan[3] 

Note: by default, the default audio input is connected to bus.chan[0] while bus.chan[3] is connected to default output.

This allows more complex ChucK audio processing paths by passing audio between running shreds within the VM. More advantageous is the opportunity to develop modular ChucK code.

Example => Use

This code can be included into different files and executed in any order.

Connect bus to dac.

bus.chan[1] => dac;

Create sine wave, raise bus volume and route sine wave output to bus.

SinOsc s => bus.chan[1];
0.9 => bus.chan[1].gain;
1::day => now;

Note: 0.9 => bus.chan[1].gain; is required due to CIP defaulting all busses to 0 gain when created. Instead of this line of code, the slider could be manually moved.


CIP Development

cip folder contains all CIP elements.

cip.ck

Creates 4 audio busses and user interface.

adc => bus.chan[0] => blackhole;
bus.chan[1] => blackhole;
bus.chan[2] => blackhole;
bus.chan[3] => dac;

CIPFoundation.ck

Provides basic connectivity to busses.

function void connect(int, int)
To connect an effect input to bus 0 and output to bus 1
function void connect(0, 1)

Provides ability to disconnect busses.

function void disconnect(int, int)
To disconnect an effect input to bus 0 and output to bus 1
function void disconnect(0, 1)

Also provides effect gain input, exit button and input monitor.

CIPinterface.ck

Creates user interface sliders as required with title and range indicated.

function MAUI_Slider effectinterface(string, float, float)

CIP DSP Processing

dsp folder contains all CIP DSP processing elements.

CIPDelay.ck

in => Delay d => out;

call CIPDelay to use

Delay

  • Delay length (default) 0 - 4000
  • .delaylength(int) - change delay length (converted to ms)

CIPChorus.ck

in => Chorus c => out;

call CIPChorus to use

Chorus

  • Modulation Frequency range 0.1 - 400
  • Modulation Depth range 0.1 - 2.0

CIPRev.ck

in => JCRev rev => out;

call CIPRev to use

Reverb

  • Dry/Wet 0.0 - 0.0

CIPRz.ck

in => ResonZ rz => out;

call CIPRz to use

Resonant Filter

  • Filter Frequency range 100 - 2000
  • Q range 0.0 - 5.0