[CM] problems with cm3
Heinrich Taube
taube at uiuc.edu
Fri Apr 3 13:55:25 PDT 2009
the code you sent me incorrect for realtime scheduling and when i
correct it things work. the issue is your time stamps -- in realtime a
time stamp is interpreted as an AHEAD factor, so when you pass it the
value of (elapsed) you are telling it to play that many seconds in the
future. when i remove that time stamp things work in either case
everything plays in lock-step for me.
(define (algo02 dur row beat amp chan)
(process while (< (elapsed ) dur)
with range = (length row)
for d = beat
for k = (list-ref row chan)
for a = (between 0.1 amp)
for w = d
do (send "mp:midi" :dur d :key k :amp .8 :chan chan)
(wait w)))
(sprout (list (algo02 16 keyscale .25 1.0 0)
(algo02 14 keyscale .25 1.0 1)
(algo02 12 keyscale .25 1.0 2)
(algo02 10 keyscale .25 1.0 3))
even at 10 times the lenth (160 seconds) I dont notice any drift.
> >Another problem I have is when i'm sprouting to a midi file. When I
> write a file which according to the scheduler is 120 seconds long
when I write a midifile it plays exactly the same in quicktime and i
can import it into sibelius and notator logic
(sprout (list (algo02 16 keyscale .25 1.0 0)
(algo02 14 keyscale .25 1.0 1)
(algo02 12 keyscale .25 1.0 2)
(algo02 10 keyscale .25 1.0 3))
4 "hkt.mid")
In general dont use time stamps, the only time you need a time stamp
is if you call an fm instrument -- the instrument wants to know the
true time to write the audio indo the file (fm-violin (elapsed #t )
> I also have problems when I use Grace to save (scheme) files. When I
> try
> to commit my changes using git, git suddenly complains about lots of
> trailing whitespaces.
i dont know what 'git' is. when i open a grace file in emacs it looks
exactly like it does it grace.
bottom line: im using cm 3.2.4 (svn trunk) and things seem to be work
well .
More information about the Cmdist
mailing list