Icarus for Organelle

Introducing Icarus

“I warn you, Icarus, fly a middle course: Don’t go too low, or water will weigh the wings down; Don’t go too high, or the sun’s fire will burn them. Keep to the middle way." - Daedalus

Releasing my port of infinitedigits’ monome Norns patch Icarus for Organelle M/S today!

Check out the demo video and download at patch storage below.

Read on for more details!

Nerdy, Nitty, Gritty

I've been spending time learning supercollider and more about how the Organelle works. This project stems from a thread here on the forum where somebody mentioned that now that Organelle supports supercollider (SC) it should in theory be possible to bring over some of the sounds (at least) of Norns, seeing as Norns patches leverage SC for their sound engine.

The code for the sound engine here has only minimal modifications from the SynthDef implemented by infinitedigits for Norns- but everything else here is new! Norns has 3 encoders and 3 buttons, and a screen with 15 levels of grayscale brightness. (it also has no build in keyboard or mic). Furthermore, graphics and app definition on Norns are in Lua and… I don’t know enough about Lua or Norns to make this an “easy” conversion UI wise. So I have reimplemented the UX from Icarus in SC. There is no Lua here, and not puredata here.

I also had to implement a “mother” of sorts for my patch that provides easy to use interfaces for the Organelle hardware. I hope that the mother.scd included with this patch is something other’s can use to get started doing more complicated things with SC on Organelle.

Dependency wise there was a bunch to do here. Sclang is not in the right place where MainMenu.cpp looks for it in Organelle OS, and jackd (a core dependency that was present on OG1) is not natively installed on Organelle M/S. In order to get this stuff working, the deploy.sh script for this patch installs jackd from apt-get (including updating sources.list in order to make that work since the built in sources are out of date).

There is a dance to do before making the app launch because the version of SC on Organelle was built with QT, an unnecessary GUI dependency that requires a “screen” in order for SC to run. I have been able to compile a more resent version of SC from source on Organelle that does not have this problem, but I don’t know how to make such a change to the Organelle file system. @oweno if you are interested in that change then let me know!

Until then, this has been working for me:

  1. Turn Organelle off (wait for black screen)
  2. Turn Organelle on (wait for menu)
  3. Nav to Settings > Wi-Fi Setup > Start VNC
  4. Wait for mother to crash and dump you back at menu
  5. Launch Icarus patch

You need to follow these steps every time the Organelle boots up before running the Icarus (or any SC) patch. Beware doing some things can “negate” the fake screen that starting VNC provides. If you end up with a (persistent) black screen on patch-launch, then try the steps above again.

Have fun!

Links

Patch storage:

Demo video:

Original Icarus info and code!

6 Likes

This is amazing work!

2 Likes

Thanks for sharing this :heart: Proper sick

2 Likes