Newsletter #2 - Pitches, Playback, Rendering, Statistics
During work on Ooloi server statistics, that 1996 t-shirt surfaced again. The one with the pitch transposer function printed on cotton. It made me realise it was time for a little detour. What followed:
Implemented the transposer factory. Took the original Common Lisp concepts and redesigned the whole system in Clojure with different internal and external representations. Ooloi's diatonic transposers guarantee round-trip integrity, which appears to be unique amongst notation systems. Considering packaging this as a standalone library in future. Result: ADR-0026: Pitch Representation and Operations and the Pitch Perfect blog post.
Rethought audio architecture. Implementing pitch utilities naturally lead to thoughts about playback. If you're handling arbitrary microtonal deviations with mathematical precision, why compromise? The Igor Engraver 'DNA soup' of MIDI tricks was necessary in 1996. Today's virtual instruments make MIDI output itself obsolete. See ADR-0027: Plugin-Based Audio Architecture and Why Ooloi Leaves MIDI Behind.
Started virtual instrument research. Removing MIDI means working directly with virtual instruments. Ooloi thus needs YAML documents describing their capabilities – the modern equivalent of Igor's 'synth matrices' for hardware synthesisers. Ooloi playback will understand score markings such as 'col legno', 'con sord', 'spiccato', ‘gliss"‘, etc, and choose the right sounds automatically. Score intelligence and deep humanisation, not just mechanical playback.
Designed the rendering pipeline. With server-client interaction nearly complete, frontend implementation needs definition. ADR-0028: Hierarchical Rendering Pipeline outlines a four-stage system enabling collaboration on dense scores without traditional delays.
Working on server statistics HTTP endpoints. The server metrics are implemented – connections, API call rates, message sizes, event streaming. Now building the HTTP server, the adjunct to the gRPC server, that provides them for Grafana and Prometheus.
The t-shirt work led to decisions about pitch representation, audio architecture, and rendering pipeline structure. Next: testing multi-client connections to the same server “in the wild”.
— Peter Bengtson
ooloi.org