
How will frames flow through a chuck wire, with respect to time?
From picking the Brain of Mr. Tzanetakis and combining ideas with the existing ChucK time framework: The idea is to associate arbitrary meta-data with arbitrary samples in the chuck wire, including FFT frames and feature vectors as the program is specified. There would also probably be an extra 'wire' (a new sink like dac or blackhole, except it's for the timed meta-data). For example, to set up a STFT of 128 fft size, with 64 hop size, you could hook up a FFT unit which accumulates the past 128 samples, and every 64::samp take the FFT, and put the result frame on the meta-data stream, associated with the current time/sample. This stream could then flow through other analysis units that can query and take what's on the stream and add or modify the stream. The analysis units could at the same time serve as regular UGen's if you connect them to a dac driven UGen chain, making both analysis and synthesis cooperative and synchronized. Also, this, like the synthesis system, is demand driven, and should scale without additional overhead. This may sound like we know what we're doing, which is not quite the case until we can identify hurdles and work up a good implementation plan or something. This is similar to how things flow in MARSYAS 2. We've started plotting and designing for this in ChucK, though it's unclear when a prototype would be ready to try. Best, Ge!