Orca - alternative firmware for white whale


yeah, you just insert the USB drive and then turn it on and it should read it. got the files, will do some testing tonight/tomorrow!


to simplify the discussion i won’t be answering each point invididually but will aggregate it by theme, if i forget to address some specific points please let me know!

note on ansible version: i changed my mind several times on this. where i’m at right now: i doubt i will make a standalone ansible version. we have white whale, it’s still fairly easy to get one used, and maintaining 2 standalone versions is just not something i want to do. however, an orca app as part of ansible firmware might still happen. if it happens it will likely be different from the standalone version (just like kria and meadowphysics are different on ansible), less features, a more streamlined user interface. hopefully the new standalone version that we are discussing here will have a more streamlined interface as well, so the 2 versions won’t have to be too different.

speaking of the user interface, i do want to streamline it. some of it i find not too useful to deserve its own page (chance page, i’m looking at you), some of it is too crowded (trigger settings / track weights) and should really be separate pages. i’m not set on increasing the number of pages to 16, if we somehow can manage to squeeze it into 12 or even 8 pages even better. one possible approach is to make sure the first 8 pages contain all the essentials, so you only need to remember the rest if you want to use extended features.

before i jump to answering specific points… a couple of other things i’ll add to the list:

  • consistent behaviour for resetting to default values on all applicable pages (say, on phase page it will reset all phases to 0) - thanks to @kisielk for the idea!
  • some way to reset all settings to default values - kinda like init state

and a question - do people use chance much? i don’t find it to be that musical, and i’m thinking of other ways to add some random element. feels like that page could be used for something more useful.


to transpose you hold and press the button above or below. to rotate you hold and press the button above and to the right, or below and to the left. i will think about how scale editing could be improved to make transposition and rotation easier - maybe even having dedicated controls for that - would be nice not having to use button combos.

pretty sure at this point i want to have a separate page for trigger settings, and i like the idea of adding more logic choices - should be easier to do with a full page. maybe even something more interesting, maybe some way to introduce chance here. modulating gate length - yes! will most definitely add this to the list. one of the things i want to address with the new version is finding ways to break the typical orca monotony, having variable gate length is a great way to do that. possible options could be random gate length, or specifying a range between a trigger and a full gate length and then have it increase / decrease on each step, or maybe make it be based on which tracks are active.

different rotation for CV AND CV B is currently not possible - when you rotate it shifts actual notes. but it would be easy to change rotation to be more of a parameter that is applied to scale but doesn’t shift it. one of the benefits of this approach is being able to go back to the original scale easily - right now you can’t do that unless you store it as a preset. and i really like the idea of being able to apply a different rotation amount for A and B - i find i often struggle to make them sufficiently different, and this should be interesting musically. i’m adding this to the list.

now, sequencers… i have a somewhat radical proposal. the 3 sequencers got added as an after thought and they feel separate from how the rest of orca operates… which in itself can be a good thing by providing variation of a differen flavour. but it feels like it should either be made more powerful or different. i think sequencing it in a more traditional style can be done via teletype, and that would allow you to make it as simple or as complex as you want without cluttering orca UI. what i suggest is using orca itself to trigger rotation in the same way it does everything else - by using tracks. so then you specify a combination of tracks and when all the selected tracks are on it rotates or mutates by specified amount. this feels “right” to me in several ways… it follows the orca philosophy of tracks influencing everything. consistency with how the rest of orca works means it’s easier to use/remember. and i think it will make for interesting results musically.

i’m still thinking through the details of how it would work in practice - i want to keep it simple but powerful enough to make it interesting. say, for conditions simply applying logical AND to selected tracks (rotate only when all specified tracks are on) should be sufficient, don’t think we need logic here. but i want to be able to specify multiple conditions, so that you could say “rotate by 2 when tracks 1&2 are on and rotate by -3 when tracks 1&2&4 are on”. you should also be able to specify reset in similar manner (“remove all rotation”).

i’m also thinking this concept of using orca tracks to trigger rotation/mutation could be expanded to other things - to do things like change phase by 1 when specified tracks are on, for instance. i think this is a better way to sequence mutation, as long as it can be implemented with a straightforward UI.

i also want to add another modulation destination - transposition. i think this would really open up the kind of sequences you could do with it, especially being able to apply it separately to CV A and CV B. this would apply similarly to rotation, it wouldn’t transpose actual notes but it would just get applied on top.

arc… the main question is whether arc should be used more as an improvisational / controller tool (so, create presets with grid, control/mutate them with arc) or should you be able to use it with arc only. i still think it’s possible to combine both purposes without sacrificing too much. the only danger here i see is having too many pages. personally, i like the idea of being able to use arc to get most of orca functionality without ever using a grid, and to me that necessitates being able to edit scales. i tried to make scale editing close to that on ansible, so for somebody used to doing it on ansible it might be familiar enough to be usable. using USB to edit scales in text files is not a viable workaround - most of the time you want to hear changes immediately.

i do want to drop preset sets for divisors / phases etc. this was a leftover from the very first version, and while i like having it for sentimental reasons it doesn’t seem to be that useful (probably the sets i selected are partially to blame!). if full track parameter editing was possible there wouldn’t be a need to have these sets. it can be done as one page though: encoder one selects one of the 4 tracks, and the remaining 3 encoders control divisor/phase/reset for selected track.

at this point i think it’s too early to discuss how to arrange arc pages - this all will be influenced by other changes i described above, once that is finalized we can work out which parameters should be accessible via arc. i do feel that how parameters are grouped into pages is important, and would help with identifying pages. i used different visualization for different parameters specifically for this purpose (say, scale editing is very distinct looking), but there is definitely room for improvement. reverting to page 1 after reconnecting - wouldn’t that be more cumbersome if you just want to quickly connect grid to edit one parameter?

yes to separating bank/preset! one encoder for 64 presets always felt a poor workaround. not sure how to improve global reset though… do people actually use values over 16 for global reset?

finally, i think i will drop support for arc2 - sorry arc2 users! it’s just too difficult at this point to accomodate both.


Ah, I see now. I will make this clearer in the language and hopefully Piotr will want to help with more diagrams. Brian found a used WW and is sending it to him.

I think you should be wary of adding more ‘pages’. I think it is mostly really good as it is and refinement is what’s needed. The reason, it seems, that there aren’t more people in this discussion, is that Orca is already to deep for many… used White Whales are easily had…
The solution to ‘Orca monotony’ is subtle use of rotations, scales and presets. There are plenty of tools at hand.

That would be great.

I like this idea, IF… we can also rotate divisions.

We can use the text files.

I played with it some more. I think it’s fine. For high numbers there is more time to move the dial…

I really think you should think twice about making big changes which make the sequencer more complex. I would almost say, as a rule of thumb, improve and streamline should be the goal. But, it is your baby.

Maybe one thought would be - simplify both the Arc and Grid setups, and don’t worry about being able to do most things with either. Maybe rotation should just be something one uses Arc for. Deep programmers can use TT…

I have been spending a lot of time with Orca for a week or so, now, and it feels like it would really need a month to be able to feel comfortable. I’m not sure how many people have the luxury of that much time to spare (maybe my old brain is awfully slow…).


which is why i want to remove some of the pages that are not used that much, like chance page - i don’t think it’s all that useful. i think the trigger settings / track weights page is one of the most confusing pages, especially since trigger settings and track weights are not related in any way, it was just the real estate i had for them. i’m thinking perhaps chance page should be replaced with track weights page, so the first 4 pages will be dedicated to track parameters and will be laid out logically:


and removing weights from the the trigger settings page will provide room to add gate length settings and more logic (XOR but maybe more).

[quote="lloydcole, post:324, topic:351"]
I like this idea, IF... we can also rotate divisions.

[quote="lloydcole, post:324, topic:351"]
really think you should think twice about making big changes which make the sequencer more complex. I would almost say, as a rule of thumb, improve and streamline should be the goal.

haven't thought of rotating track parameters - i like this idea! and it fits in nicely. to be honest, i'm pretty excited about the idea of replacing track sequencers with conditions on when to do rotation - this is the kind of stuff that inspires me to code. i know there are already several tools to provide variation, but there is still a lot of potential in orca, and i think swapping sequencers to being triggered by tracks will make the polyrhythmic nature of orca shine so much more. and being able to modulate transposition, separate rotation for each CV, gate lenght all seem like powerful editions. this is how rotation was born - i thought "it'd be cool to try that and see what happens"...

[quote="lloydcole, post:324, topic:351"]
We can use the text files.

sorry, i really think this is not a viable replacement. when i program scales i have to hear the changes, which would be impossible when using text files. and if there is a chance to use orca with arc only i think it should be supported, including scale editing. i don't see a downside to including it - it will take 2 encoders on one page, doesn't seem like a big sacrifice for something that in my mind is a very useful feature.

[quote="lloydcole, post:324, topic:351"]
Maybe rotation should just be something one uses Arc for.

i think if functions are grouped logically you could choose to use basic functions only, and then use extended functions only if you want to go deeper. it doesn't feel like either/or situation.

how about this... 8 pages, first 4:


2nd 4:

`scale selection`
`scale editing`
`trigger settings`

^ scale editing would include shortcuts to rotate and transpose. for weights you can manually change them. this covers all the basic functionality and gives you the ability to manually change things.

now, with a button combo same 8 pages allow you to modulate those parameters. so the first 4 pages become:

`rotate divisors`
`rotate phases`
`rotate resets`
`rotate weights`

2nd 4 pages become:

`rotate/transpose scale A`
`rotate/transpose scale B`
`rotate gate length`

not sure what to use the last one for.. i'm thinking this could be a page that combines various parameters for modulation into one place, so you could quickly try different things without switching between separate pages. and still need to find a place for global reset.


That’s 15 or 16 pages …
There would need to be a very simple and clear page navigation system.
I don’t think there should be any instances when a button needs to be held except to navigate to another page.


Let’s see what you come up with, then :wink:


yes, that’s 16 pages, 8 of which you’ll never see unless you want to use those features. you won’t need to hold a button to access them (which currently only exists for scale selection, and will be removed in the new version), instead there will be a button combo that will switch between the main 8 pages and the modulation 8 pages.

again, just an idea for streamlining the layout. i’ll confess to being confused at this point though… you mentioned that 12 pages while unwieldy were pretty well done. is it having 8 modulation pages as separate pages that is less than ideal compared to the existing layout? but then you also mentioned that perhaps rotation should be left to arc only. the 8/8 solution achieves both - you have fewer pages for main features and if you don’t use rotation you will only ever use/see the 8 pages. if you do want to use extended rotation/modulation you get that as well - with the same logical layout as the main 8 pages. you’re not memorizing 16 pages, just 8.


So you’re talking about having the same page set up for both Grid and Arc? I thought you were only talking about Arc. Certainly it would be simpler if both were the same, at least close.


no, arc will most definitely have a completely different set of pages (which i suggest to finalize once grid features are settled). the 8/8 page set up i described is for grid.

i think for arc having more than 4-5 pages should be avoided.


Ah… apologies. Then yes, this could be better for Grid. Certainly having a second press of a button to enter the edit page makes good sense and makes the whole experience easier to learn. I’d think so, anyway.
And, for what it’s worth, something similar for Arc would make sense.


Just wanted to chime in and say that i’m really looking forward to the developments with Orca. Although I don’t consider myself a power Orca user by any means, it’s been on my White Whale for the last few months.

Here are some of my observations. Hope they are of some use!

  1. In my usage I’ve noticed that I haven’t been using the chance page at all either.
  2. I really liked having the tracks running independently via Teletype, although I sometimes wished there was an option to have a track be clocked solely by Teletype while the internal clock is running.
  3. I also didn’t end up using the rotate scale/weights/mutate sequencers that often, mainly because I would usually want to have them happen very slowly at divisions of the int/ext track clock so that I could have patterns that changed every once in a while. In the end I changed things manually on the Grid or Arc, but maybe this could also be handled similarly via conditions?
  4. When playing around with it for recording/performance I usually ended up turning tracks on and off and switching presets on Grid, while on the Arc I would switch presets and fiddle with the rotation settings.
  5. I’m not sure how this could be implemented, but I would totally love having some microtonal capability. Maybe this could be done with Teletype similar to how they are handled with the TXi/TXo modules? Just wishful thinking :slight_smile:


I like the way you can do it in Coldcut’s Midivolve (Max for Live instrument). You can set the “Auto Evolve” feature to activate every N bars, where N is a value you supply (or even modulate). I’ll mutate less often for rhythmic tracks but more often for melodic tracks, it seems.


[quote=“jflee, post:332, topic:351”]
2) I really liked having the tracks running independently via Teletype, although I sometimes wished there was an option to have a track be clocked solely by Teletype while the internal clock is running.

good idea! i’m planning to add a lot more teletype commands, and will definitely have more clock control as part of it.

exactly! with conditions you could have it change very rarely (say, if you set it to rotate only when both tracks 1&2 become enabled, and then if you set divisors to 7 and 13 it’ll only rotate on each 91st step (7*13) - with the sequencer you could only go as high as 16. if you use teletype you can also rotate with remote commands and trigger a script with a divided clock.

been thinking about this, i’d love to add microtonal capabilities but this will present a challenge for scale editing. need to figure out how to fit that into the existing system.

in the existing system you can set it to mutate on each N’s step where N can be anywhere between 1 and 64. if this is replaced with conditions it could create some really interesting variations (say, you set the condition to mutate whenever tracks 3&4 are on, but then mutate can change the track parameters, so it will mutate with irregular intervals).

as you can tell i’m excited by the idea of using conditions. i think i’ll do what i usually do in such cases - try it and see how it feels in practice. i’m without white whale until sunday (left it in the case i took to the synth meet), so won’t be able to do it until next week - will post some examples here once it’s done!


Yeah, the distinction i’m making is between “bars” and “steps”. I really don’t want to mutate very often.


a bar is usually 16 steps though, no? so you get 1-4 bars in that sense.

one thing i like about having sequencers is that you essentially get another divisor, which could be different from the 4 tracks, and it made it easy to integrate the polyrhythmic nature of orca with more traditional 8/16 step structures. i’ll see if there is a way to keep this with conditions (although perhaps this is where teletype integration is a better fit).


Maybe in the conditions another value could be added to the logic / math? The primary function of the track divisors is surely to create great polyrhythms, right? Sometimes one might want to work on a really straight rhythm, all 4s and 8s and 2s. No AND logic will result in a high number in this type of situation. So maybe a math function could be optional after the logic? Div 8 AND Div 5 would give 40… how about then a divide by (or add, or subtract, or multiply) an arbitrary number, or the result of another logic function?
Maybe there could be 4 arbitrary values per preset? Then these would be as easy to call upon, using logic, as the track values? If that was overkill, or just not possible, maybe we could use the weights values? If these values were being rotated, this could be a lot of fun, changes could happen very slowly, or very quickly, depending upon the arrays of values.


yeah, i like the idea of adding another division parameter to conditions (i’ll post a diagram for conditions in a bit to make this discussion easier). i’d like to keep this simple, so maybe just division. i actually considered expanding the number of tracks to 8 so you could have more polyrhythms for different things but i think it would be too much.

it’s an interesting idea to use the track weights as additional parameters for conditions, will think about this. i also like the idea of introducing 4 global values per preset which then could be used in various places - this would complicate the UI though, so need to think about this carefully. say, would be nice to specify for track 1 phase to use GLOBAL VALUE 1, for track 3 weight use GLOBAL VALUE 2 etc. etc. what i like about this is then you have 4 values that can affect multiple parameters at once, kinda like meta mode (similar to all machines control on machinedrum iirc).


Seems like Global Values would make an ideal 2nd page ‘behind’ Presets.
4 values : 0 - 16
Pretty straightforward.
Rotate pages would be based on the left side of the existing trigger / weights page, I’d imagine… and instead of weights, the second condition could be added by choosing a stored value, or a combination of values from a similar sub-row of 4…


so here is how i imagine an interface to set up a condition could look like. you select which tracks will trigger a condition (so the condition will happen when all the specified tracks are on, AND logic), plus additional division is applied to that.

the 2nd row specifies the amount. the additional 3 buttons determine how this rotation amount is applied:

  • hold chooses whether the amount is applied each time the condition changes from false to true, or if it’s applied while the condition is true
  • abs/rel determines whether the amount is absolute or relative. for absolute it will just set it to that value (good for reseting rotation back to 0, or any other value), relative will add or subtract the amount
  • pos/neg determines whether the amount is added or subtracted.

not sure yet how to fit the global variables here. also, i’m trying to think of a way to compress this into 1 row - this means you could have 4 conditions per rotation instead of just 2, which i would really prefer.

the 4th button is free, thinking maybe it could be used to indicate whether to reset the rotation when the global reset happens.