Haze is a four track live granular looper for Norns, optimised for Midi Fighter Twister, but also usable without it.
Incoming audio is recorded into an 8 second loop (with configurable feedback), and granular engine samples from this loop. Each row represents a single track, and there are three banks of parameters, the UI shows currently active bank together with the parameter names and values.
This project is available on github: szymonkaliski/haze.
I've had an urge to make some new music software for a while, and the idea of granular looper has been going through my head since Nótt (which featured a custom granulation mode). I grabbed Midi Fighter Twister and Norns and wrote some Lua and SuperCollider code to make Haze:
I wouldn't be myself if, along the way, I didn't build some helper tools.
maiden-remote-repl is an extremely simple remote REPL connection to Maiden (a process that provides Lua REPL on Norns). Combining it with file watch script and
rsync allowed me to live reload Haze on the hardware — which sped up the actual work by a lot. It's also fun to see the UI refresh almost immediately after saving a file on my laptop. In my experience, spending time on making the project development feedback loop as short and frictionless as possible always pays out.
Running incomplete programs with type checking is still an open research topic, one of the most famous examples being Hazel, which not only allows you to run unfinished programs, but can also (partially) type check them! It's definitely worth looking into, but: one — it's a research project, and two — a totally new universe to adopt (which you probably shouldn't do right now, because of the first point).