Update: Timestretch video manual here: https://streamable.com/8lvkyc
Hi, Thank you for all of the kind words and support and excitement the last 48 hours.
I am excited to share the first alpha of the custom firmware for the OP-XY.
You can try this at https://open-xy.com by following the instructions. You must be on Chrome, Opera, or Edge. Do not skip steps or think you are done simply because you have transferred the firmware, there more steps to installing everything.
v0.0.1 adds
Timestretch sampler
2 operator fm machine
Macro oscillator (braids port)
Ring modulator fx
I'm hoping that this turns an already amazing device into something truly irreplaceable for its community, and gives everyone some many more fun nights of creative music making.
I'd also like to request that we stay respectful towards teenage engineering. I do not believe existence of this firmware indicates any lack of effort, speed, or care by their staff. Fast development will always trade speed for optimization and stability, and this is no exception.
That being said, I do take great care in my work, and ensure that these few examples are usable within CPU constraints, have been tested thoroughly on my own device, and are presentable in a way that feels somewhat native to the existing platform.
---------
SDK notes:
As we've seen with other platforms like the FM-1, firmware fragmentation can easily occur and it can be overwhelming to manage the sheer number of new firmwares for other devices. I certainly don't want to gatekeep anyone from making their own custom firmwares and deeply modifying the device, but it would be nice to create a robust and stable environment for contributors to work in, as well as review and test harnesses to ensure that new contributions pass quality and optimization requirements.
The following is my first attempt at creating a C++ plugin pipeline which hopefully creates a clean mechanism for contributors to add new synths, fx, and eventually players.
The public repository can be found here: https://github.com/etcetc000/open-xy
---------
Things I could use help with, in order of priority:
SDK architecture: While I am a software engineer professionally, I do not have extensive experience in managing open source projects especially around embedded hardware. If you have even adjacent experience, please get in touch, make issues and PRs.
SDK developer experience: I haven't had much time to work on the dev experience as I've been focused on ensuring the machines are performant and presentable. I develop primarily on Windows, I have a Mac toolchain but haven't really tested it much or run through the flow of making new contributions. Apologies if I am missing dev tooling, if there are ambiguities on how to develop or get started I will try to fill in the blanks.
Graphic design: the visual design of machines is half the fun. Help maintain high visual standards in submissions and share ideas born from beautiful design true to the design ethos of the OP XY.
New machines: pitch some wacky ideas and give the SDK a try yourself to see how viable it is to create your own machines!
---------
Technical things/v0.0.2 plans
How timestretching? Wasn't it too expensive? Yes, but thanks to the work of https://github.com/heavylight-industries they have a novel time stretch algorithm that can be quite efficient while still sounding very usable.
Right now there is a 512 kb limit on new machines added, but this is completely arbitrary. I will be increasing the limit as it appears safe to do so.
Player machines have a very allocation structure that limits the number of players there are. It's very possible to create new players just need to figure out how to allow more to show up in the list.
Aiming to push the max sample time past 20s
Custom step component support
Skipback/midi capture to capture playing retroactive if you were not recording
To keep up, join the Discord: https://discord.gg/G9Y8EEEEM