“The Geometry of Musical Rhythm” by Godfried Toussaint is a great read. It is strictly concerned with repetitive rhythms and not all rhythmical phenomena.
Coincidentally, the work I’m developing (called chronometry) has as one of its building blocks the (poly)chronomorph! The rhythms I employ are all Euclidean however, and the “shape” I ascribe to musical time is pitch information.
Perfect balance - who wants to have a go at this? I think it should be possible just as a Ruby function which would make a very easy first PR for someone. I’m happy to help with the process of getting it merged.
Well formedness I’m not sure I understand this one yet. Again though, it’s probably only a couple of functions to implement.