Common, Kanye WestĀ ā¤Ā The Food
...performed live on Chappelle's Show on March 3, 2004 BEĀ |Ā Ā ā05
seen from Netherlands
seen from United States
seen from United States
seen from Russia
seen from United States
seen from United States
seen from Singapore
seen from Netherlands
seen from United Kingdom

seen from Israel

seen from Israel
seen from United States
seen from South Korea
seen from Netherlands
seen from Malaysia
seen from United States
seen from New Zealand

seen from Australia

seen from Israel
seen from New Zealand
Common, Kanye WestĀ ā¤Ā The Food
...performed live on Chappelle's Show on March 3, 2004 BEĀ |Ā Ā ā05

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
Realtime Csound from Grace using OSC routing
Intro
While working with Graceās Csound rendering recently, things got a little bogged down as I tried to access the same score file from multiple processes. Hereās a post I made to the CM list a little while back, which sums up my problem:
I'm stuck with a problem trying to sprout processes and work with Csound. I'm trying to do something more complex with a piece I'm working on, but managed to boil down the problem I'm having by using the Csound Scheme example. If you take a look at that example, you'll see a function called ransco:
(define (ransco len rhy lb ub amp) (let ((dur (* rhy 2))) (process repeat len for t = (elapsed #t) ; get true score time for k = lb then (between lb ub) do (cs:i 1 t dur k amp) (wait rhy))))
A bit further down in the example, there's some instruction on sprouting this bit multiple times, using :write #f to 'collect' the events generated into one score:
; This will generate a score without writing an audio file. execute ; the expression several times and use the Audio>Csound>Export... item ; to export all the score data in various formats (sprout (ransco 10 .2 60 72 1000) "test.sco" :write #f)
I was assuming I'd be able to do this same thing from a process, but I'm getting an error that Grace is unable to get a file handle to "test.sco". Here's the function:
(define (f1) (process repeat 3 do (sprout (ransco 10 .2 60 72 1000) "test.sco" :write #f) (wait 1)))
...and I try to execute it like so:
(sprout (f1))
Instead of trying to bend CM to my will, I decided to use OSC to fire Csound events in realtime. This has been pretty successful so far, so Iām posting my āOSC Routerā Csound score and example Scheme file for others to use.
Links:
The .csd is hereĀ
Sample scheme file is here
Scheme file
My .scm file is pretty verbose for this illustration, but I figured more is more right? :) At line 2, I open up an osc listener:
(osc:open 7779 7825)
Iām not receiving anything incoming, but not the outbound port 7825 - youāll see that again in the .csd file. The lionās share of the file is 4 nearly-identical functions which generate separate lines, ultimately to be played by guitar quartet. Instead of the familiar call to cs:i, we use osc:message:
(osc:message "/router" 1 t dur amp pitch pan dist pct )
Essentially routing p-fields of a score event to outbound port 7825.
At this point, we can just sprout a list of calls like I do at lines 128-134:
(sprout (list (quartetlet-1 10 300 (make-heap '(gs4 b4 a4 fs4))) (quartetlet-2 30 300 (make-heap '(gs4 b4 a4 fs4))) (quartetlet-3 60 300 (make-heap '(e5 fs5))) (quartetlet-4 45 300 (make-heap '(fs3))) ) )
ā¦but I wanted to sprout them within a process, along rhythmic lines. Hence the function beginning at line 136:
(define (launch num) (let* ( (rhythms (make-cycle '(w w+h w+w w+w+w))) ) (process for r = (rhythm (next rhythms) 72) for iternum from 0 to num do (set! iternum (+ iternum 1)) (sprout (list (quartetlet-1 10 5 (make-heap '(gs4 b4 a4 fs4))) (quartetlet-2 30 5 (make-heap '(gs4 b4 a4 fs4))) (quartetlet-3 60 5 (make-heap '(e5 fs5))) (quartetlet-4 45 5 (make-heap '(fs3))) ) ) (wait r) ) ) )
Launch like so:
(sprout (launch 50))
Youāll hear bursts of quartet material initiated according to the rhythm generated by
(rhythms (make-cycle '(w w+h w+w w+w+w)))
which generates a 5-second burst of quartet material for each rhythm generated. Hereās a sample (player at top)
Osc RouterĀ
Letās look at the csd, which routes incoming OSC data from Grace. At line 10, we open up an osc listener on line 10:
gihandle OSCinit 7825
Instr 1 uses the pluck ugen with the familiar parameters for duration, amplitude and pitch, along with parameters to locate the note in stereo space using locsig/locsend. Instr 99 provides reverb (actually not used here..).. Instr 1000 is the relevant instrument here:
instr 1000 kinst init 0 kstart init 0 kdur init 0 kamp init 0 kpitch init 0 kpan init 0 kdist init 0 kpct init 0 kwhen init 0 nxtmsg: kk OSClisten gihandle, "/router", "ifffffff", kinst, kstart, kdur, kamp, kpitch, kpan, kdist, kpct if (kk == 0) goto exit schedkwhen kk, -1, -1, kinst, kwhen, kdur, kamp, kpitch, kpan, kdist, kpct kgoto nxtmsg exit: endin
I init k-rate variables to hold incoming p-fields, and fill them with incoming data via OSClisten. If I get an osc message (signalled with kk, the trigger from OSClisten), I use schedwhen to fire an event to the intended instrument.
On my macbook, I run the csd with the following params:
csound -odac1 -+rtaudio=CoreAudio -Q0 -B512 -b64 osc_router.csd
Conclusion
The Common Music family of releases has shaped my music making, and getting back up to speed with the latest from Rick Taube, Bill Schottstaedt + co. at CCRMA has been rewarding. These projects (Common Music 1, 2 and 3.x, Grace, CLM, Snd) have little in terms of PR out there, but deserve more airtime out there IMHO. I hope that this examples serves to steer others in productive directions. More soon!
Once again, the links:
The .csd is hereĀ
Sample scheme file is here
Common Music 3: Remix drum loops with Scheme
Working though porting some old instruments which generated Csound scores from Common Music 1 to Common Music 3. This example illustrates a few techniques I used in my piece Anxious from 1999. I kept myself to a few drum sounds, primary this loop, which comes from a Jimmy Smith tune originally, but was known to me through Professor Booty.
Grab the loop - jam.aif
Grab the .orc
Grab the .scm file
Here's the CM code:
; 14 segments for jam.aif (define idxdur '((0.018 q) (.697 q) (1.376 s) (1.538 e)(1.869 s)(2.032 s)(2.2 e) (2.543 s)(2.705 q)(3.373 e.)(3.895 e)(4.232 q)(4.894 e)(5.236 s))) ; given the dur of a quarter, return tempo (define (quarterDur->tempo quarterdur) (* 60 (/ 1.0 quarterdur)) ) ; ; remix - based on idxdur, remix sections of jam.aif loop ; ; args: ; - tem: tempo (should be a float) ; - pan: angle to pan signal (between 0 and 90) ; - amp: attenuate signal (between 0.0 and 1.0) ; - totaldur: process continues until totaldur is exceeded ; (define (remix tem pan amp totaldur) (let* ( (iter (make-cycle (list (make-cycle '(5 6 7 8)) (make-cycle '(5 6 7 8)) (make-heap '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 )) (make-heap '(5 6 7 8)) ))) (origtem (quarterDur->tempo (- .697 .018))) ) (process with curtime = 0 for t = (elapsed #t) ; get true score time for i = (next iter) for dist = 5 for pct = .025 for idx = (nth idxdur i) for indx = (nth idx 0) for origdur = (rhythm (nth idx 1) origtem) for endx = (+ indx origdur) for r = (rhythm (nth idx 1) tem) for d = (rhythm r tem) for p = (/ tem origtem) ; faster tempo, the quieter for a = (+ .5 (- amp (/ tem 210.0))) until (> curtime totaldur) do (cs:i 3 t d a p pan dist pct indx) (set! curtime t) (wait r) ) ) ) ; ; make-reverb-note ; Turn instrument on for duration of score ; (define (make-reverb-note dur) (process repeat 1 do (cs:i 99 0.0 dur 5)) ) ; A verbose way to sprout this process at multiple tempos. ; The result is a Nancarrow-esque tempo canon (sprout (list (remix 100.0 10 1.0 30) (remix 110.0 30 1.0 30) (remix 120.0 60 1.0 30) (remix 130.0 80 1.0 30) (remix 140.0 10 1.0 30) (remix 150.0 30 1.0 30) (remix 160.0 60 1.0 30) (remix 170.0 80 1.0 30) (remix 180.0 10 1.0 30) (remix 190.0 30 1.0 30) (remix 200.0 60 1.0 30) ) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0 0 0\nf2 0 16384 9 .5 1 0 \n") ; A cleaner, less verbose way to generate the same (define mixes '()) (loop for i from 100.0 to 200.0 by 10.0 do (set! mixes (append mixes (list (remix i 45 1.0 60)))) ) (sprout mixes "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0 0 0\nf2 0 16384 9 .5 1 0 \n") ; a single instance of remix, with reverb note (sprout (list (remix 100.0 10 1.0 30) (make-reverb-note 40)) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0 0 0\nf2 0 16384 9 .5 1 0 \n")
Common Music + Grace - Undead algorithms alive again
Iāve been getting reacquainted with Common Music and GraceĀ for the past few weeks, looking at old pieces I create in CM 1.4 and porting them as I go to CM 3.9. Iāll be keeping some notes here which may morph into posts on a separate blog/forum/site dedicated to CM.
For now, here are the relevant online resources Iāve been able to identify:
Specific to Common Music:
Main Common Music page
Common Music DictionaryĀ
The CM Dist Mailing List
Taubeās Notes from the MetaLevelĀ is best acquired through Amazon AFAIK
Csound Journal article on CM/Grace
For oldtimers like me, the pre-2002 cmdist archives can be useful
Grace builds are archived here. I had a problem with the latest Mac build available through the App Store, but found a working package here.
Scheme and other relevant resources:
Schemers.orgĀ - hub of the online Scheme community. CM is an extension of Scheme, which in turn is a dialect of Lisp.
One python programmerās notesĀ on learning scheme. Heās a good writer so itās a fun read.
Main S7 pageĀ - S7 is an extension of Scheme which CM leverages.
Two free books!Ā The Scheme Programming LanguageĀ and Practical Common Lisp
š± #asianchairshot #commonmusic

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
testify //Ā common