translates custom scheme-like syntax into chuck
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Concert_steim
MidiSOng2.logicx
Misc
Recordings
SupercoliderInstr
doc
documentation
midi-note2-2.logicx
midi-note2.logicx
older ?
tests
(fun a
(midi-note2.lisp
(midi-note3.lisp
(midi-note4.lisp
.DS_Store
5d672b34-82dd-412b-a8c3-98f3e974d61e
6d7fb898-0138-42cd-b017-414b6a470afa
909.lisp
AzimuthSSPRec-1.wav
AzimuthSSPRec-2.wav
AzimuthSSPRec-3.wav
AzimuthSSPRec-4.wav
BirdLisp.scd
Cisp.py
CoolSchred2.lisp
CoolSchred3.lisp
CoolSchred3b.lisp
CoolSchred3bb.lisp
CrowdySSP.lisp
DRUM.lisp
Drama.lisp
DreamTest.lisp
DrumBeat.lisp
EachMomentModulationGaps.lisp
FM.lisp
Faster.lisp
Faster2.lisp
Faster3.lisp
Faster4.lisp
Faster5.lisp
FreqRamps.lisp
FrequencyMap.maxpat
IMPORTANTWALK.lisp
IMPORTANTWALK2.lisp
IMPORTANTWALK3.lisp
IMPORTANTWALK4.lisp
IMPORTANTWALK4_SPACE.lisp
IT WORKS.lisp
JUST WRITE.lisp
JUST WRITE_2.lisp
LINSEG!.lisp
LINSEG-2.lisp
LINSEG-3.lisp
LINSEG-4.lisp
LOOPS.lisp
LOOPS2.lisp
Log
Log 12-04-2017
Log.md
London.lisp
MidiSOng.lisp
MidiSOng2.lisp
MoreLayers.lisp
MysterieOpgelost.lisp
NewChuck.lisp
NewTest.lisp
NewTones.lisp
NoisyDuoPanFilter.lisp
NoisySprink.lisp
PianoMusic.lisp
PingSynth.lisp
PitchySong2.lisp
PulseBundle.lisp
PulseBundle2.lisp
PulseBundle3.lisp
README.md
REALLYBASIC.lisp
Reich.lisp
SECTION_FEEDBACK2.uscore
SECTION_FEEDBACK3_pulse.uscore
SINE_CLOUD.lisp
SImpleTone.lisp
SImpleTone_2_width.lisp
SImpleTone_2_width__!.lisp
SImpleTone_2_width__LOVE-2-staart.lisp
SImpleTone_2_width__LOVE-2.lisp
SImpleTone_2_width__LOVE.lisp
SImpleTone_newt.lisp
SUPERSTANDARD.lisp
SUPERSTANDARD2.lisp
SaxyMars.lisp
ScheduleFiniteWorkInprogress.ck
SmartGen!!!!!.lisp
SmartGen.lisp
SmartGenOK.lisp
SwitchFunc.lisp
SwitchFunc2.lisp
SwitchFunc3.lisp
SwitchFunc4.lisp
SwitchFunc5.lisp
SwitchFunc5[Conflict].lisp
Symmetry!!!!.lisp
Symmetry!!!!2.lisp
Symmetry!!!!3.lisp
Symmetry!!!!4.lisp
Symmetry!!!!4_detune.lisp
Symmetry!!!!4_detune3.lisp
Symmetry!!!!5_new_3sliders.lisp
Symmetry-cool.lisp
Symmetry-cool2.lisp
Symmetry.lisp
THIS_IS_THEVOICE!.lisp
THIS_IS_THEVOICE!2.lisp
THIS_IS_THEVOICE!CURLY.lisp
THIS_IS_THEVOICE!NOISY.lisp
THIS_IS_THEVOICE!NOISY_2.lisp
Todo.md
TonesNew.lisp
Utrecht-fill-4-1.wav
Utrecht-fill-4-2.wav
Utrecht.lisp
Utrecht2-list-1.wav
Utrecht2-list-2.wav
Utrecht2-list-3.wav
Utrecht2-list-4.wav
Utrecht2-list-5.wav
Utrecht2-list-6.wav
Utrecht2-list-7.wav
Utrecht2-list-8.wav
Utrecht2.lisp
Utrecht3-1.wav
Utrecht3-2.wav
Utrecht3.lisp
Utrecht3b.lisp
Utrecht3c!.lisp
Utrecht3c-1.wav
Utrecht3c-2.wav
Utrecht3c.lisp
Utrecht3d!-1.wav
Utrecht3d!-2.wav
Utrecht3d!.lisp
Utrecht4-1.wav
Utrecht4-2.wav
Utrecht4-96k_line-1.wav
Utrecht4-96k_line-2.wav
Utrecht4-96k_moreinterp-1.wav
Utrecht4-96k_moreinterp-2.wav
Utrecht4-96k_simple_index-lin-1.wav
Utrecht4-96k_simple_index-lin-2.wav
Utrecht4-line.lisp
Utrecht4-simple.lisp
Utrecht4-simple2-1.wav
Utrecht4-simple2-2.wav
Utrecht4-simple2-3.wav
Utrecht4-simple2-4.wav
Utrecht4-simple2.lisp
Utrecht4-simple3.lisp
Utrecht4.lisp
Utrecht4_new.lisp
UtrechtMars.lisp
UtrechtMars1-1.wav
UtrechtMars1-2.wav
UtrechtMars1-3.wav
UtrechtMars1-4.wav
UtrechtMars2-1.wav
UtrechtMars2-2.wav
UtrechtMars2-3.wav
UtrechtMars2-4.wav
UtrechtMars2.lisp
UtrechtMars3-1.wav
UtrechtMars3-2.wav
UtrechtMars3-3.wav
UtrechtMars3-4.wav
UtrechtMars3.lisp
UtrechtMars3_real-1.wav
UtrechtMars3_real-2.wav
UtrechtMars3_real-3.wav
UtrechtMars3_real-4.wav
UtrechtMars3_real2-1.wav
UtrechtMars3_real2-2.wav
UtrechtMars3_real2-3.wav
UtrechtMars3_real2-4.wav
UtrechtMarsTreinRecord-1.wav
UtrechtMarsTreinRecord-2.wav
UtrechtMarsTreinRecord-3.wav
UtrechtMarsTreinRecord-4.wav
UtrechtMarstTrein.lisp
UtrechtTree.lisp
UtrechtTrein.lisp
WriteTable.lisp
afroDrums.lisp
basicPlof.lisp
basicPlof1.lisp
basicPlof2.lisp
basicPlof3.lisp
basicPlof4.lisp
basicPlof4b.lisp
basicPlof6.lisp
basicPlofMelody9.lisp
basicPlof_2.lisp
bezier.lisp
bezier2.lisp
bezier3.lisp
bezier4.lisp
bezierTest
bird.lisp
birdy.lisp
bufferParser.js
bufferParser.maxpat
bursts.lisp
bus.lisp
casper.lisp
casplus.lisp
check.lisp
christmess
christmess.lisp
cisp_builder(copy).sublime-build
cispy.sublime-build
connector.lisp
coolplus.lisp
createTable.py
d6a0179e-c73a-404d-8770-ed94003b76bf
demoHku.lisp
drum_pattern.lisp
drums.lisp
e4d60f65-56ac-43b3-b1e1-388fdc98f42e
e6f6dcb1-ff8e-4d79-88c8-61f99fbf9a48
e8dce62e-c3db-4aec-aef2-a045f7de8470
e9012777-d0f1-4961-91c9-cb1c7664cffc
each_moment
each_moment.lisp
eachmoment2.lisp
extra.lisp
gamelan.lisp
gamelan2.lisp
gamelan3.lisp
gamelan4.lisp
gamelan5.lisp
genLines.js
hallo.lisp
highstuff.lisp
kickpattern.lisp
kwartet-x-4-1.wav
lastTest.lisp
leiden13.lisp
lineFractal.lisp
london2.lisp
london3.lisp
london4.lisp
loopPlay.lisp
midi-note.lisp
midiTest.lisp
midiWalk.lisp
monotone!!!.lisp
monotonelisp3b.lisp
moreLayers3.lisp
morelayers2.lisp
music.lisp
music2.lisp
music3b.lisp
mystery voice.lisp
mystery voice2.lisp
mystery voice3chan.lisp
mystery voice3chan2.lisp
mystery voice_pure.lisp
newSquare.lisp
newSquare2.lisp
newSquare2_lisp1-1.wav
newSquare2_lisp1-2.wav
nice!!.lisp
nice2.lisp
nice3.lisp
non-standard.lisp
non-standard2.lisp
nonstandard.lisp
nonstandardYES.lisp
notes.lisp
oefenen
oefenen.lisp
output.ck
output[Conflict 1].ck
output[Conflict 2].ck
output[Conflict].ck
outputy.ck
phyicaltone.lisp
pop.ck
pulseFB_CISP-1.wav
pulseFB_CISP-2.wav
pulseFB_CISP-3.wav
pulseFB_CISP-4.wav
pulseFB_CISP_2-1.wav
pulseFB_CISP_2-2.wav
pulseFB_CISP_2-3.wav
pulseFB_CISP_2-4.wav
ras.lisp
realBirds.lisp
rec 2.ck
rec.ck
rec2.ck
rec4.ck
rec8.ck
reich2.lisp
remove.py
removeAll.ck
removeComments.lisp
rozalie.lisp
sax.lisp
sax2.lisp
second-order-ssp
second-order.lisp
shiftingLoops
shiftingLoops.lisp
simple.lisp
simple2-b.lisp
simple2-b.png
simple2-c.lisp
simple2.lisp
simple4.lisp
simpleGen3-indexselector-kwartet-2.lisp
simpleSweepSci.lisp
simpleSweepSci2.lisp
simpleSweepSci2b.lisp
simpleSweepSci3.lisp
simpleSweepSci_pulse.lisp
sineseg2
slider.lisp
slider2.lisp
start.sh
steim-live.lisp
steim.lisp
steim2.lisp
steim3.lisp
step-gen-test.lisp
step-gen2!.lisp
stepList.lisp
stepgen.lisp
stop.py
straight2.lisp
striaght.lisp
table.lisp
temp.lisp
test-15-10.lisp
test.lisp
test15-10
test2.lisp
testBiggerOP.lisp
testBuf.lisp
testBundle.lisp
testChannelSYnth.lisp
testGuardedWalk.lisp
testHold.lisp
testOnlyOP.lisp
testPan16.ck
testSimpleBufSci.lisp
testSinSeg.lisp
testSpeed.lisp
testStringParser
testpulse.lisp
testpulse2.lisp
testtest.lisp
theEnd.lisp
translation.lisp
treeSound.lisp
voice!!!!!!.lisp
voice!!!!!!2.lisp
voice!!!!!!2b.lisp
voice!!!!!!2x.lisp
voice!!!!!!new.lisp
voice.lisp
walk thoughts.md
waveSetCleanTest.lisp
waveform.lisp
wavesets.lisp
wavesetsPrimes.lisp
wavesetsPrimes2.lisp
wavesetsPrimes3.lisp
worksNoW.lisp
worksNowEvenBetter.lisp
worksNowEvenBetter2.lisp
worksNowEvenBetter3.lisp
worksNowEvenBetter4.lisp
worksNowEvenBetter5.lisp
worksNowEvenBetter6.lisp
worksNowEvenBetterHOLDER.lisp
writeSched!!!.lisp
writeSched!!!_explained.lisp
writeSched.lisp
yo.lisp
yo2.lisp

README.md

Cisp is a simple (scheme inspired) interpreter that translates "Cisp" code into ChucK code.

Cisp is my live coding tool that is specifically targeted at:

  1. Non-standard synthesis (the use of compositional techniques directly on generating waveforms).
  2. Algorithmic composition generating live Midi or OSC output.

Requirements

ChucK Command Line
My chugins (specifically: Linseg, DelayC)
My chuck Tools
Python

My live coding sessions are set up like this:

Cisp.py takes a scheme like input file (example.lisp), and translates it to a chuck file (output.ck), which is added to the chuck virtual machine (by Cisp). Output.ck is not in "vanilla" chuck, it is using my Chuck-Tools library and chugins (for non-standard synthesis).

You will need to start chuck in loop mode, with my chugins and tools loaded, something like this:

chuck --loop --chugin-path:yourChuginPath ~/pathToChuckTools/tools.ck

Using sublime build script

To make coding faster, I use a build scripts wich runs the .lisp file into cisp.

Basic syntax

non-standard synthesis

(step-gen [amp] [number-of-samples])

  • white noise
	(step-gen 
  		(rv -1 1) 
  		(st 1))
  • very fast sequencer
	(step-gen
  		(seq -1 1) // seq loops through a list ad infinitum -1 1 -1 1 -1 1 etc..
  		(seq 10 11 12 11 100 1100)) 
  • gendy like
	(fun amp
		(bounded-walk -1 1 (ch -0.01 0.01))) // bounded-walk min max step

	(fun tim
		(bounded-walk 1 100 (ch -1 1))) // this is time steps

	(step-gen
		(seq amp amp amp amp)
		(seq tim tim tim tim)) 
(t
	(seq 10 20 30)
	(ch 1 2 3 5))
	
	

easy bus

(~ casper (rv 1 100)) creates a bus

(~ casper) to read back the bus somewhere else (note, these are completely global)

define table

(# casper (fillf 32 0 128))

write to table

(~ foo (write casper (count 128) (rv 1 128))

which can be scheduled as

(schedule foo (st 0.5)) // which means that foo gets written every 0.5 seconds

video demo's will follow soon !