|
In a blog post from some time ago, Penitenziagite!, I wrote about linguistic impedance in software: the way systems shout incomprehensible demands at contributing developers, forcing them to think in the wrong language. That post was about architecture as translation – the scriptorium at the centre speaking Latin for precision, and the gate speaking the vernacular so people can actually participate. This post is about governance. Specifically: why Ooloi is open source, but not open in the way some people expect. And why it cannot be. The Myth of the Open-Source BazaarThere is a persistent belief among developers that open source implies a particular governance model. In this vision, design is open, debate is open, architecture is open, decision-making is open, and even the rewriting of foundations is treated as normal community activity. The project becomes a bazaar: a bustling marketplace of patches and opinions, competing visions and negotiated direction. This model works for some kinds of software. It fails for others. Music notation software belongs firmly in the latter category. The problems Ooloi addresses – temporal coordination, concurrent structural mutation, global layout decisions, semantic correctness across voices – are not decomposable into independent opinions. They cannot be negotiated piecemeal. They require conceptual unity, which is another way of saying they require architectural closure. A bazaar cannot produce that. However, a cathedral can. What 'Closed' Means HereOoloi's core is closed – but not in the sense of secrecy. The code is MPL-2.0: inspectable, forkable, modifiable. What I mean by closed is something more precise: closed in the sense of authority over semantics. The musical model is fixed. The invariants are fixed. The staged pipeline is fixed. The authority boundaries are fixed. This does not mean that development has stopped, or that new functionality will not appear. It means that the conceptual foundations are no longer under negotiation. Closure is not StagnationA closed semantic core is often misread as a claim of finality: finished, complete, unchangeable. That is not what I mean. What is closed is the space of permissible reinterpretation. New features will arrive, new capabilities will arrive, refinements and extensions will arrive – but they must fit within the established model rather than redefine it. This distinction matters because most architectural failure in open projects does not come from lack of innovation. It comes from uncontrolled semantic drift: the gradual erosion of guarantees as each contributor reinterprets the foundations to suit local convenience. Ooloi explicitly forbids that drift. Why the Core must be ClosedOoloi's correctness depends on architectural decisions that only work as a coherent whole. Immutability is treated as a semantic guarantee rather than a performance trick. STM is not merely one possible concurrency implementation among several; it is the concurrency model, because the alternatives import failure modes that Ooloi is explicitly designed to eliminate. Structural sharing is not optional; it is a prerequisite for the kind of scale where a full orchestral score can be edited in real time without the system grinding to a halt. Computation is staged because global layout decisions are otherwise intractable. Piece state is single-authority because reconciliation architectures – the kind where multiple sources of truth must be merged – create exactly the class of bugs that have plagued notation software for forty years. These are not interchangeable components. They are constraints, and constraints that reinforce each other. You cannot selectively replace one of them. You cannot introduce mutability 'for performance'. You cannot swap out the concurrency model. You cannot dissolve authority boundaries. Each such change collapses guarantees that are only meaningful because the other constraints hold. The cathedral stands because the architecture must stand. Why This Enables Real OpennessHere is the paradox: by closing the core, Ooloi makes everything around it genuinely open. Because the centre does not move, APIs stop being provisional. Semantics do not drift. Performance characteristics remain predictable. Plugin contracts remain valid across versions, which means plugin authors can build with confidence rather than anxiety about the next breaking change. Plugins become first-class citizens rather than tolerated afterthoughts. Any JVM language can participate without translation into a single house dialect. Boundaries stay explicit. Failure modes stay contained. This is the same pattern that made TeX durable, SQLite coherent, and the JVM stable enough to host entire ecosystems. A fixed centre enables freedom at the edges. The Cuckoo-Chick ProblemVisibility attracts contributors. Most are helpful; some are enthusiastic but misaligned; a few arrive with expectations the project cannot and will not meet. I have learned to recognise two failure modes. 1: Misaligned help These contributors mean well. They propose changes that would, in effect, produce a different system entirely. They might want the core rewritten in another language. They might want STM replaced with actors, or argue for mutability 'for performance'. They might want the semantic model redesigned, or the staged pipeline replaced with heuristics. They are not malicious – they simply assume the architecture is provisional, a starting point for negotiation rather than a finished foundation. As you have seen, it is not. 2: The arena-seeker Here the motivation is not technical at all. The project becomes a venue for resolving old arguments, validating preferred tools, or reenacting disputes imported from elsewhere. When the architecture does not bend, pressure escalates. When boundaries hold, frustration surfaces. At that point refusal is often reinterpreted as hostility, silence as arrogance, and constraint as personal exclusion. This is a category error. Refusal is governance. In Ooloi, it is exercised deliberately. Why Refusal is Non-NegotiableIf the core were open to redesign, plugin contracts would break. Semantics would drift. Stages in the rendering pipeline would start interfering with each other. Concurrency guarantees would dissolve. Correctness would become probabilistic – which is to say, the system would regress to precisely the type of architecture Ooloi was built to escape. By enforcing architectural closure, contributors learn where pressure will not be applied. Plugin authors learn what will not change. Users get stable behaviour. The system remains intelligible. Boundaries are not unkind. They are protective. Open Source Without NegotiationOoloi is open source in a precise, literal sense: inspectable, forkable, extensible, durable. It is not open in the sense of open-ended architectural debate. It is not open in the sense of consensus-driven semantics. It is not open in the sense of renegotiating authority with each new voice that arrives. The core is not a public workshop. It is a composition. Collaborative compositions exist – devised theatre, collectively improvised music – but they are specialised forms suited to particular purposes, not universal methods. Ooloi's architecture is not that kind of work. Its structure must be fixed before others can build upon it. The bazaar is not inside the cathedral; it is outside, at the gate, where plugins flourish without threatening the foundations. The Gate & the BazaarThe Penitenziagite! post argued that architecture should not shout incomprehensible demands at its users. This post argues the complement: governance should not shout incomprehensible demands at its contributors.
Ooloi's structure is explicit. There is the cathedral/scriptorium: the core, architecturally closed and semantically fixed, where the hard problems are solved. There is the library: canonical plugins and reference implementations, where patterns are demonstrated rather than debated. And there is the gate and the bazaar beyond it: the plugin ecosystem, open and multilingual and creative, but separated from the core by a boundary that preserves the integrity of the whole. This is not a contradiction. It is a design pattern. A stable centre enables a flourishing perimeter. A closed semantic core enables an open ecosystem. A cathedral enables a bazaar – but only if the gate between them holds.
0 Comments
Last week's discussion on VI-Control turned into an unintentional seminar on what 'open source' actually means. Nando Florestan, a composer and developer learning Clojure, read through the draft licence with unusual care and pointed out something I hadn't thought through properly: the anti-rebranding clause made Ooloi proprietary in practice. Forks would have been impossible without my permission. The OSI definition is clear: that's not open source, regardless of intent. He was right. The clause came from experience, not malice. Igor Engraver derailed out of my control, and I didn't want that repeated. But open source is a matter of definition, not sentiment. Trademark protects the name 'Ooloi'. Anything beyond that belongs to the commons. The fix was simple: remove the modification. Pure MPL 2.0, no amendments. Register the trademark properly. Add a clear policy statement confirming that plugins and applications built using Ooloi's APIs aren't derivative works. Better to discover it before release than after. The conversation forced me to confront what open source actually means for this project: giving up control while retaining integrity. Why MPL 2.0 The Mozilla Public Licence sits exactly where Ooloi belongs: halfway between the ideological asceticism of GPL and the cheerful anarchy of MIT. File-level copyleft keeps the core collaborative while leaving everything built upon it entirely free. Reciprocity without coercion. If someone improves Ooloi's STM transaction coordinator or gRPC layer, those improvements remain in the commons. If someone builds a sophisticated playback system or commercial notation front-end atop Ooloi, they own it completely. That's how platform infrastructure should work. The 'for the avoidance of doubt' clarification states what's already true: plugins, extensions, and applications using Ooloi's APIs aren't derivative works. This matters because commercial developers won't participate if they need solicitors to interpret 'Larger Work' provisions. The clarification prevents that friction. The Alternatives FailGPL would poison the plugin ecosystem. The FSF's position on plugins-as-derivatives creates legal ambiguity that kills commercial participation. No professional algorithm vendors, no sophisticated commercial tools, no ecosystem. Apache/MIT/BSD permits enclosure. Someone could fork Ooloi's core into proprietary software, capturing improvements that should remain shared. For infrastructure intended as commons, permissive licences are actually less free. AGPL extends copyleft to network usage, which would criminalise legitimate commercial deployments: publishers running collaborative servers, institutions hosting multi-user environments, enterprises managing internal infrastructure. LGPL adds complex compliance requirements without benefits. MPL 2.0's file-level copyleft provides cleaner separation. The WordPress ParallelThe economics mirror WordPress's evolution. Core CMS functionality became commoditised infrastructure. Commercial value migrated to themes, plugins, hosting, services. Companies like Automattic built substantial businesses while the core improved collaboratively through thousands of contributors. Ooloi follows similar logic. What legacy notation systems monetise becomes architectural givens:
Commercial opportunities shift to where genuine value exists: sophisticated interfaces, professional algorithms, premium workflows, enterprise services. The core handles infrastructure. The plugins handle musical domain knowledge. The Ultimate IronyUnder MPL 2.0, a product such as Järvenpää Silence Notator 2.0 (purely hypothetical, right?) could theoretically build atop Ooloi while maintaining proprietary differentiation through proprietary plugins and interface. The core infrastructure they'd no longer need to maintain. The competitive advantages they'd demonstrate through superior musical intelligence. Whether this happens is irrelevant. The goal is proving that functional programming solves long-standing problems, enabling possibilities previously impractical: real-time collaboration without subscription lock-in, parallel processing without performance collapse, plugin extensibility without architectural fragility. The licence ensures improvements flow back to the commons while permitting commercial innovation. Practical ImplicationsFor developers evaluating Ooloi: Building plugins: Licence them however you want. Sell them, give them away, open-source them. No GPL contamination, no AGPL network copyleft. MPL 2.0 applies to Ooloi, not to your work. Modifying Ooloi's core: File-level copyleft applies. Modified files must remain MPL 2.0. You can still build proprietary applications using modified Ooloi. Just release your modifications to Ooloi's source files. Commercial deployment: Run SaaS services, embed in proprietary applications, charge what you like. MPL 2.0 requires nothing from you unless you modify core files. On Integrity Licensing isn't a legal appendix to the codebase; it's part of the architecture. A distributed system defines its boundaries through protocols. A licence does the same, only in law instead of syntax. Open source isn't marketing; it's a contract of trust. You keep the code open not because you must, but because integrity demands it. You protect the name not to hoard it, but to prevent confusion. Ooloi's licence now mirrors its architecture: clear boundaries, open interfaces, and a shared foundation for whatever might be built next. Clarity and transparency. |
AuthorPeter Bengtson – SearchArchives
January 2026
Categories
All
|
|
|
Ooloi is an open-source desktop music notation system for musicians who need stable, precise engraving and the freedom to notate complex music without workarounds. Scores and parts are handled consistently, remain responsive at scale, and support collaborative work without semantic compromise. They are not tied to proprietary formats or licensing.
Ooloi is currently under development. No release date has been announced.
|

RSS Feed