Orca - Livecoding Tool

Orca Jamuary
Finished 31 days of Orca for Jamuary. Stoked on getting it done. Started the month with barely understanding the language, ended with a short list of patterns in my mind that I can pull from. Excited to keep working in Orca and actually focus on some more structural elements and deeper understanding of controlling my hardware via Orca over midi cc. Used Orca with a Digitone, TB-03 and a Crave.


Got the TUI version going on Pentium 166 MMX, Windows 98. Went with MSYS because Cygwin hasn’t supported the platform since forever. Did quick’n’dirty disable of OSC to avoid porting network code, just wanted to see whether it would run. To my surprise the latest ncurses only required a two-line patch to produce a working library. Binary does seem to work, can load programs and they execute. MIDI output works too, selected GS wavetable synth and was greeted by 01 Grand Piano.

edit; no consecutive replies allowed - so I add this here. Can the C version do commands? I’m trying to figure out how to send a program change message to get sounds other than 01 Grand Piano. If not, I can always use MIDI Yoke to hook things up so that I can send the initial program changes from another program…


Hello, I’d like to play a note at a specific frame. For context, I am trying to score an animation so I know e.g. frame 65 corresponds to a glass shattering.

I was thinking I could use C to get the different digits of the current frame (Ca outputs the ones digit, aCa is the tens) and compare against some static values.

aCa  # output 'tens' digit. #
 0F6 # check for frame 6_. #
  .  # no * bc it's only frame 05. #

.Ca  # output 'ones' digit. #
 5F5 # check for frame _5. #
  *  # a * because it's frame 05 #

This seems to work, for the most part [1]: there’s a * under both Fs on frame 11. However, I don’t know how to AND both *s to play a note only when both are active (i.e. 65).

Does that question make sense? Is there a better way to do this in Orca, or examples you can point me to?

Orca is really cool. I’ve had a lot of fun trying it over the last year, and this is my first real ‘project’ trying it out.

[1]: Please disregard any off-by-one :sweat_smile:

EDIT: What’s it called when you figure out something as soon as you ask the question? I think I got it using f:

aCa .Ca
 4F4 5F5
     * # only bangs when BOTH conditions are met ^^ #

I’m glad you figured it out! This is actually a pretty interesting problem, you might be the first one I see doing this, and it’s a perfectly efficient solution for this problem. I might copy this solution and put it in the Orca Tutorial as it’s a pretty useful thing to know.

I think I would do it this way:


It’s called rubber duck debugging :duck:


So in my search to not be on my computer and also use Orca on a larger screen than norns, I found this raspberry pi cm4 case/carrier/screen combo that works perfectly. I have it set up to just auto login on linux console, can be running orca-c in about 30 seconds. No distractions :slight_smile:


I have been using ORCA to send midi to control 3 midi devices that use a total of 6 midi channels. Digitone (midi channels 1-4) TB-03 (channel 5) and Crave (channel 6). But when I try and use channel 7 it does not work. I am not sure what I am doing wrong. I tried with my model:samples that has 6 channels and if I use it alone I can address all of them. But if I use my Digitone with its 4 channels I can only address the first 2 channels of the model:samples. Not sure where this limitation is coming from and I would love to be able to use more midi channels. I am using the OSX build of ORCA.

@jamestichenor There are 16 channels in the OSX version of Orca.

1 Like

@neauoire thanks, did some debugging and the problem is not Orca.

Updated Orca with the latest missing bits and pieces from the spec!

J/Y Wiring


Orca diamonds


ORCA experiment that i neglected to post here… hope you all enjoy, wish i had been paying more attention to this thread haha.


I wrote a blog post about how I scored my animation using Orca:

It was a lot of fun to put together, and I’d like to do more of these if there’s interest.


There will be a bunch of performers using Orca during the Algorave tenth birthday stream!
You should tune in!



I’m going to use Orca to teach another summer course. Last time, we just used Pilot, but now I see that there’s another dev-made synth called Enfer. From the sounds of the YouTube videos that feature Enfer, it’s quite perfect for my needs. However, the repo for Enfer has no information about installation.

Can anyone advise me?

npm install, and npm start

Thanks! Now Orca and Enfer are both running. I am now unsure how to connect them. Refreshing output devices doesn’t do the trick. I’ll keep poking around, but if you have any further advice, I am all ears.

Are you using the javascript version or the Uxn version?

I send Orca’s stdout messages to a little midi translation util, so I can format the messages like I need:

uxnemu orca.rom | shim


I dunno. I installed homebrew (I’m on a Mac), then used brew install node which I imagine is the javascript version. I can’t tell if you’re suggesting that I re-do this and install the Uxn version (and, if you are, then how to do it). Thanks for your help!

Mhmm, it has been a while since I used a mac, but you have to go into settings midi, and turn it on. That will allow programs to send midi to each other :slight_smile:

1 Like

This. I believe it’s called the loopback device on Mac.