Orca - Livecoding Tool

…and the benefits are (besides that fun (?) of getting to write assembly?

@nonmateria I ended up modifying ttymidi’s code to make it handle clock messages. And, well, it works now. I guess I wasn’t that rusty after all.

For anyone interested, it’s right here : GitHub - DaBroni2501/ttymidi: ttyMIDI is a GPL-licensed program that allows external serial devices to interface with the ALSA sequencer.



The Benefits of Targetting a VM

The idea is that Orca will no longer be platform dependant. Concretely that means multiple things, it means that:

  • Orca Electron(100mb)
  • Orca Uxn(10kb)

But also, it should live longer, as it should not need maintenance to keep up with the changes in computing architecture. It’s an experiment with longtermism inspired by how NES games are still playable today due to the relatively simple systems they were targeting and how easy it is to write emulators for them.

Back in 2016, we experienced frequent failures with both software & hardware, largely due to our small energy storage and lack of reliable connectivity. The solution was to create tools that would be better suited to our needs. The objective was to replace the bloated, closed-source or subscription software that we were using to do creative work, such as Photoshop, Xcode and Ableton. We were somewhat familiar with web technologies, so we decided to build our programs on this new framework called Electron.

While solving some of our issues, Electron was rapidly increasing in size and soon joined the rest of the software that we wanted to do away with. Our focus shifted toward reducing our energy use, and to ensure reliability by removing all dependencies.

To transition toward our new goals, we developed offline web versions as temporary stand-ins while researching ways to build more resilient software. We eventually ported our tools to C, but while we had achieved ideal energy usage, portability was still an issue, so we kept looking. We learnt 6502 assembly, seeing players run our NES game on all these different platforms gave us a new idea.

And so, in 2021 we took our biggest leap yet toward longtermism and designed a small virtual machine with a focus on implementability; meaning that moving forward, our software will live on a virtual machine. In other words, the code will stop having to be ported, but instead to make something available on a new platform would our needs or devices change, the emulator remains the only piece of code to be ported, which is explicitly designed to be easily implemented.

This is where we are now. uxn may solve our cross-platform issues, while being extremely light. It took us a long while to get here, we hope that one day the Uxn versions of our software replace the desktop and web versions.

Also, here’s Orca on the NintendoDS.


Very cool, thanks for the explanation!

hey out of curiosity
are you cool with us having a dedicated uxn thread?

would love to discuss more


@glia Please, let’s!

Enter the Orca Rack Module megathread.

Would anyone be interested in this?

Mockup by Lizbeth.


I would have totally been interested. Too bad I already started using Orca on a RPi.
I’ll keep on eye on it though.

I haven’t used orca, just watched a couple YouTube videos about it (though I want to try it sometime)…

I’m imagining the two jacks at the bottom being gate and cv in. Is there precedent for an input operator in orca?

Like: produce quantized note and 8ve on every tick, or bang when received gate between last tick and this, for example?

It would be a clock out, and something “else”.

Seems to me MIDI and CV/Gate expansion wouldn’t be outside of the realm of possibility. NerdSEQ is a good example of that concept in action, and Teletype is a good example of that as an open ecosystem.

1 Like

Released Orca for the Uxn computer, it’s tiny 11kb. You can download it here. It’s compatible with all Uxn emulators. It comes with a built-in synth with 4 voices, and uses the = rune.


space - toggle play/paste
backspace - erase
escape - deselect
arrow - move
shift+arrow - scale selection
ctrl+n - new
ctrl+s - save
ctrl+r - rename
ctrl+o - open
ctrl+c - copy
ctrl+v - paste
ctrl+x - cut



I am so ready for this.

Uxn and some spare hardware on my desk (pi Pico, pi zero & compact laptop) has me wondering what people consider to be minimum viable screen resolution for orca?

Any chance uxn has or will gain midi support?


Any chance uxn has or will gain midi support?

Will have, in about an hour or so. I need it for Flash Crash :slight_smile:


Since there is a norns version of orca, it’s pretty darn low!!


Can’t wait…
and thanks!
the dream is for orca Uxn to control drum rack Uxn
and we can place our own 8bit samples :slightly_smiling_face:



@JaggedNZ Midi operator has been implemented, make sure to update your version of the emulator.

Shim is a utility that converts bytes into midi messages.

Shim is designed to recieve the 3 bytes of midi(channel, note, velocity) and pass it to a selected midi device.


uxnemu orca.rom | shim

The : operator is used to send note values outside of Uxn, to other applications or other instances of Uxn, to convert the signal to midi, use the shim, or parse it to control video or other things.


Any ideas about why this might be happening:

I know it’s hard to see, but basically, the gates seem to be super short to the point where the note indicators on mGB barely show up at all and instead just randomly flicker on when the gates suddenly and inexplicably lengthen (seemingly). In this case, it was running through virtual MIDI, into Bitwig, and out to my outboard interface before the Arduinoboy et al., and Bitwig itself was also not giving any gate indicators. I had the same result running shim directly out to the interface. I also got a similar response from simply channeling virtual MIDI directly to a Bitwig synth, in which case I could hardly get any sound out of it unless I decreased the attack on a a given instrument all the way down but would still get random gate “burps” where they suddenly seemed to register slightly more-so as expected.

I think the problem became a bit more clear when I tried using it on drum machines in Bitwig, because those work mostly as expected (though still with no indication of a gate apart from the instrument triggering audibly). I imagine it may have been tested only on drum machines or things that work similarly to drum machines, perhaps?

1 Like

At the moment, there’s no length port in Orca(uxn), so the notes last for 0 frames. Once I finish the midi/cv design it should behave properly :slight_smile: Gimme a day or two and this issue should be gone.


kinda a dream come true…
thanks @neauoire for making our 8 bit future! :slightly_smiling_face:
orca Uxn, piano.rom Uxn