hanshoglund / comb

Experimental audio engine
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Vectorized implementations #4

Closed hanshoglund closed 8 years ago

hanshoglund commented 11 years ago

Without changing semantics.

This is of course crucial for perfomance.

I.e. replace central loop step :: S -> (D, S) with stepV :: S -> (V D, S).

hanshoglund commented 11 years ago

This is actually more complicated than it looks, as we support arbitary small delays at the primitive level. Basically, we must separate each signal in different levels based on how far in time the write. For example, a single 64-vector pass could be:

hanshoglund commented 11 years ago

Simple way: new Signal type tagged with vector-rate, which is always multiple of two. An output[t+n] must have vr < n, i.e. Output _ 30 must run at a rate of 16 samples or less (32 is too often). All vrs a are smaller than vs, which is maximum vs.

At runtime, a node is only run if mod vs count == 0. What to do with local sample count? Not sure.

hanshoglund commented 8 years ago

Project inactive, closing.