I've been playing lately a lot with Xronomorph, a tool to create well balanced rhythms. How could we implement some of this functionality in Tidal?
Could you be more specific about what features of Xronomorph you want to see in Tidal? Tidal has a tremendous range and flexibility in how you create cycle based rhythmic patterns. I'd be surprised if there are rhythms Xronomorph can generate that you can't get in Tidal. You might have to work out how to code them - so it may not be as self generating as what Xronomorph does. Is that what you are looking for?
(I can't comment on features of closed-source software)
Their definition of "perfectly balanced pattern" (of bits) is: arrange the pattern as points (with unit mass) on a (unit) circle, then the center of gravity must be at the origin.
import Data.Complex import Data.List (genericLength) center xs = let unit = mkPolar 1 (2*pi/genericLength xs) in sum $ zipWith (*) xs $ iterate (* unit) 1 center [1,0,0,1,1,0,0,0,1,1,0,0] -- is perfectly balanced (ignore rounding errors) (-1.0547118733938987e-15) :+ 4.440892098500626e-16 center [1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0] -- is perfectly balanced (-9.992007221626409e-16) :+ 6.661338147750939e-16
both examples are also primitive (have no non-trivial rotational symmetry).
Now two questions are immediate
- how to generate such patterns (such functions could be added to Tidal perhaps)
- and why are they meaningful musically (that's up for debate)
Those are interesting questions. What mainly triggered my interest in was this: "The rhythmic hierarchy emerging from them often has great aesthetic appeal. Every level is related to every other level and is also intrinsically well-formed. Together, they create a somewhat self-similar and interwoven structure reminiscent of fractals." (How a little mathematics can help create some beautiful music). This suggest these concepts of 'well-formed' and 'perfectly-balanced' might be -besides beautifull phrases in itself- also musically interesting. Playing with this Xronomorph confirms to me that it can create intersting and unexpected patterns.
I'm not sure how much of that depends on the 'interwoven' aspect of different timbres playing in well formed cycles. I'm not sure how this could be implemented using tidal functions.
@jwaldmann the simulation you propose is impressive, I think you have much more to say on this.