Announcing Elementary v1.0.0
Elementary v1.0.0 is here!
Today we’re thrilled to share that Elementary v1.0 is finally available. This change comes after several months of important changes to the core algorithm and user-facing API, but also after many more months of engagement from the wonderful Elementary Audio community helping Elementary settle into a shape that we have full confidence will be both stable and flexible for the long run.
There’s so much to share about what this change entails, but rather than trying to cover each point here, we’ll just focus on some of the highlights. To catch the complete list, check out our newly updated documentation pages and in particular the changelog here.
TypeScript Support
TypeScript support has been a big community request since the early days of the project, even generating community-led efforts to add DefinitelyTyped defs to the Elementary core library. Initially, it was difficult to support types upstream because the frontend Elementary API leaned so heavily on dynamic language features of JavaScript. As the project has settled into its current shape, a strict formalization of the frontend API became clear, and providing types around it became natural effort.
We want to extend a huge thank you to the community for such active engagement and involvement on this topic; the fact that we’ve arrived here really underlines stability and the longevity of the v1.0 API.
Automatic Memoization
Though this is perhaps a detail of the library internals that many users will not need to pay attention to, automatic memoization is a big accomplishment coming out of the rewrite of the internal core algorithm. To deeply understand what this feature is and how it works, it’s probably best to first read the In Depth guide to Elementary’s render process, then the Understanding Memoization guide afterwards.
In this section, rather than get into those details, we want to highlight a project that we’re really excited about which has already leveraged the automatic memoization for huge performance benefits: the Arpeggi Studio from Arpeggi Labs.
Arpeggi is building a suite of tools for Web 3 music creation that lets you write a song and mint it on the Ethereum blockchain all from your browser. Their studio app is now running entirely on Elementary, and with the new automatic memoization feature they saw a performance improvement on render times nearing a 100x speedup in certain cases.
Offline Rendering
Our last highlight of the v1.0 release is a brand new package for rendering Elementary audio graphs offline, faster than real-time, with an API that should feel just as simple as the other renderers. That means that you can now reuse much of your existing Elementary code to process or generate files or static buffers with ease. Read about the offline renderer in detail on the docs site here, and check out our new set of offline examples on GitHub.
That’s all for this newsletter edition. Thanks as always for following along. Stay tuned for our next update, and if you’re on Twitter, give us a follow at https://twitter.com/elemaudio.
Cheers,
Nick