Yep, orca predates the keyboard module and uses hard coded layout. It could be patched up for sure

One of those nice patches where you end up with lots less code

1 Like

@opty & @zebra welp i did a PR back when i was working on the keyboard layout feature.

i guess @Frederickk hasn’t checked his github notification for a while.


Thanks for the bump, I’ll review!

EDIT: Merged! I’ll roll this together with some bug fixes for the next release.


For some reason ORCA won’t load in my Fates (error: load fail). I’ve tried deleting and reloading, restarting Fates and Maiden. Any help appreciated.

be sure to be on last update. last orca release requires is.

1 Like

Thanks, just checked and I am up to date on norns and fates.

Is there any output in Maiden? Hard to tell what’s going awry. I dev and update Orca on a Fates device, so I’m thinking something else might be amiss.

Thanks for your reply, this is the output on matron:


pset >> write: /home/we/dust/data/buoys/buoys-144.pset

script clear

script load: /home/we/dust/code/orca/orca.lua

including /home/we/dust/code/orca/lib/crow.lua
including /home/we/dust/code/orca/lib/engines.lua
including /home/we/dust/code/orca/lib/engines/_fm7.lua
including /home/we/dust/code/orca/lib/engines/_passersby.lua
including /home/we/dust/code/orca/lib/engines/_polyperc.lua
including /home/we/dust/code/orca/lib/engines/_timber.lua

MISSING INCLUDE: timber/lib/timber_engine

SCRIPT ERROR: load fail

/home/we/dust/code/orca/lib/engines/_timber.lua:1: MISSING INCLUDE: timber/lib/timber_engine
stack traceback:
/home/we/norns/lua/core/norns.lua:145: in function </home/we/norns/lua/core/norns.lua:145>
[C]: in function ‘error’
/home/we/norns/lua/core/startup.lua:48: in function ‘include’
/home/we/dust/code/orca/lib/engines/_timber.lua:1: in main chunk
[C]: in function ‘dofile’
/home/we/norns/lua/core/startup.lua:42: in function ‘include’
/home/we/dust/code/orca/lib/engines.lua:6: in main chunk
[C]: in function ‘dofile’
/home/we/norns/lua/core/startup.lua:42: in function ‘include’
/home/we/dust/code/orca/orca.lua:47: in main chunk
[C]: in function ‘dofile’
/home/we/norns/lua/core/script.lua:192: in function </home/we/norns/lua/core/script.lua:192>
[C]: in function ‘xpcall’
/home/we/norns/lua/core/norns.lua:146: in field ‘try’
/home/we/norns/lua/core/script.lua:192: in function ‘core/script.load’
(…tail calls…)

script clear

lua: /home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected) stack traceback: [C]: in function 'coroutine.resume' /home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume' lua: /home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected) stack traceback: [C]: in function 'coroutine.resume' /home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume' >>

I’m a noob to Norns, but it looks like the Timber engine is missing? I just downloaded it, how would I add it to Norns if not by Maiden?

After installing Timber, did you restart your Norns/Fates?

1 Like

That did it! Very happy.

1 Like

What is the expected output for comparing bangs?


:banana: = :banana:?

I’m staring at

but there’s a lot going on on that line.:exploding_head:

PS. I still have no idea how to use / softcut operator, I’m trying to sample a conference livestream via audio in and mess with it in Orca but that’s not how to do it obviously.

if(a == b)

So, if a and b are both *, it will bang

Makes sense, ie. matches reasonable intention.

Seems there’s a bug lurking in the norns implementation. Here’s a more focused and lab-controlled video than the one above, expressing F not banging where the ladybug sits


According to Lua documentation the precedence is (classic) == > and > or, and Lua cuts and and or short.

If both are *, the second test will be true and "*" which will always be false. A logical contradiction, right?

no, all values in lua are truthy except false and nil.

people often use this expression as a stand-in for a ternary operator: <test> and <yes> or <no>. the pitfall indeed is that it breaks if the value returned by the <yes> expression is falsy, but it’s not here.

> function hm(a, b) return a == b and '*' or '-' end
> hm(1, 1) 
> hm(1, 2)
1 Like

Ah yeah truthiness, thanks for correcting!

The code runs ok on norns Lua, but *F* is not banging (excuse my language).

Or the bug is between the screen (admittedly in need of a wash) and the chair.

Is anyone else noticing that the scale operator “$” isn’t ever outputting the B note? I am pretty sure I am using it correctly. For example, 1$1C outputs C, and 6$1C outputs A, but when I try 7$1C, it outputs a blank. I’ve tried this with out scales too. Is something up, or am I just not thinking of it right?

(Also, I stepped away from Orca on norns for a while and HOLY COW - thank you so much devs! I am particularly happy to have the crow integration!)


FWIW there’s nothing explicitly in the implementation of $ that prevents B from being output. However, I’ll take a peek and see if there’s anything going on.


Hello hello. I have tried searching through the thread for this but don’t think I found anything concrete. Is there a way yet to modulate the bpm at all? Really desperately needing a way to get some swing/shuffle going. This can’t be that difficult right? If we could have control over bpm it would be easy to just setup quick shifts between say 120-122 bpm, that would surely achieve a shuffle-esque vibe. Anyone?

there is BPM control (and an APM, animate to speed) in the electron version but I don’t think there is in the norns port. there would have to be something worked out with the global norns clock system it seems.

Oh shoot I didn’t realize I was in a Norns thread, I thought I was in general Orca convo. Thank you though!

1 Like