[Fluxus] Fluxa issues
Kassen
signal.automatique at gmail.com
Mon Nov 22 04:50:32 PST 2010
I have a fix that seems to work.
In fluxa.ss starting at line 991 my file now looks like this;
; time for an update?
(cond ((> (time-now) logical-time)
; todo: fall back on last thunk if there is an error
(with-handlers ([(lambda (x) #t) fluxa-error-handler])
(set! tempo (proc (+ logical-time (* bpb tempo)) clock)))
(when (not (number? tempo))
(set! tempo 1)
(display "proc should return a number, correcting."))
(set! logical-time (+ logical-time tempo))
(set! clock (+ clock 1))
(set! sync-clock (+ sync-clock 1))))
Surprisingly testing for "tempo" being a number is enough. When tempo is
non-positive you just get loads of notes. I didn't consider imaginary or
complex tempos.
I tried to use this;
(when (number? tempo) (set! logical-time (+ logical-time tempo)))
But that wouldn't fly. I think that not allowing time to pass got something
stuck. Using "error" instead of "display", which I thought was more proper
as there *is* a error also meant the end of the fluxa task (probably because
it's outside of the scope of that error handler?). Like this it works. There
may be better ways to make it work; I tried this;
(seq null)
I felt that might reset the sequencer when we've had enough of the beeps for
a bit. It does, but it also generates a whole train of non-crashing errors.
I think that's a separate issue though, one of seq's input, as opposed to
the output of proc.
Yours,
Kas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pawfal.org/pipermail/fluxus-pawfal.org/attachments/20101122/e9e41f7f/attachment-0002.htm>
More information about the Fluxus
mailing list