In Progress: I’m working on a web version of Rhythm Lab using Flutter / Dart as the development platform. Since I’m coming from the Apple dev world (Objective-C / Swift), I’m having to learn the Flutter / Dart platform as I go. The goal is to have a web-based version (“lite” and free to use) of Rhythm Lab – a Progressive Web App (PWA) – that can (theoretically) work on any platform. The web presents certain hurdles that would make a full-blown Rhythm Lab app with all of the bells and whistles very difficult, if not impossible, to reproduce.
With Flutter, I’m having to rethink many things. The first issue is just how to render the rhythm patterns. On iPadOS, I can render the patterns as vector-based graphics (Bezier Paths) where the individual glyphs of the Bravura Font can be rendered as paths. The spacing is based on a rather complex algorithm that uses a logarithmic formula to figure the distances for any number of voices (from one to three voices specifically). For the web, with Flutter, I am figuring out how to render the font glyphs as svg images. Not as straightforward as you would think! At least, it’s taking me a while to get to a satisfactory solution.