presently the ENGINEs are written in supercollider.
with 3.0 we want to facilitate ENGINEs in many environments such as pd, chuck, and custom DSP.
ENGINEs were actually never the main focus in my initial design of norns— i was (and continue to be) highly focussed on the incredible combination of lua + softcut. softcut was first implemented in supercollider. and the availability of supercollider meant we could create additional DSP easily, and we did, and called them engines. then @zebra did a massive rewrite and now softcut is standalone. now it feels like engines should be extended to a more general idea of external DSP applications.
there are a few major components to this goal:
- standardizing the OSC exchange to establish what constitutes and “engine” (right now some of this is abstracted within supercollider)
- engines will use a lua metadata file rather than the existing query/report process (which will simplify management of engines)
- start/stop procedures for different engine environments (likely systemd) and details therein
i’m posting this to promote discussion about this direction forward and also invite code contributors. norns is a very interesting, diverse codebase (i’ve learned a ton working with everyone on it) and with the prospects of pi-shields and desktop version (ie, run norns on your mac/linux) this ecosystem has the opportunity to be used by many more people— we’re looking to make it more expansive rather than have various forks. while i don’t expect it can be (or needs to be) everything to everyone, i do feel like the norns ecosystem could facilitate/accommodate a growing number of use cases (for example pd/orac and custom dsp, both of which the community here has vocalized interest).
i can’t promise a timeframe for 3.0, and we’ll certainly be releasing smaller updates in the coming months. (for example, i am enthusiastic to overhaul the PARAM system menu along with some way overdue fixes).
and! while these new big ideas for moving forward are fun and exciting, there is also a way too big list of issues and small features that always could use more help. thanks as always for your patience and support!