ok… I have to look in to that… it workes with NerdSEQ now. I will test with Megacity too. But I have no problems with Megacity and other devices…

Hi all, I wanted to share a nice workaround I found for semitone transposition in Orca. Sorry for so being persistent (read: annoying) about it but it tends to be a major element in my workflow so I wanted to figure out the easiest way to obtain it in Orca.

For anyone who uses Ableton, you can simply map a MIDI CC from Orca to the Pitch MIDI effect’s main Pitch knob:

10

I initially ran into trouble dialing in specific amounts until I realized you can attenuate the input range in the MIDI Mapping menu (i.e. adjusting the Min and Max parameters):

31

That’s it! If you map the same CC to every instrument you’re using, you can control the transposition of the entire composition with one little number :slight_smile:

P.S. If I understand correctly, H and I are the middle values of the base36 table, so if you set up the transposition range like I did they will give you your ‘zero’ value.

2 Likes

Thought I would share my approach for creating a random event with controllable probability. I’m curious if other people have different/more elegant approaches! I tried making some more “orca” like versions which involved generating cardinal operands at random locations and creating “fences” to block off some of them from escaping (size of fences determined by probability), but combining the “escaped” cardinals into a single bang proved challenging and more convoluted than the method below. Having said that, creating/moving fences to let some cardinals through but not others seems like a fun way to trigger various events!

Here’s the method I used:

  1. create a table where each row is filled with an increasing number of 1s
  2. Use the probability to select which row to read from (stored in variable p - in this case 1 would mean 10%, 5 would be 50%, a would be 100%)
  3. Use a random number to select the location within the row to read from.
  4. If that location is a 1, then go high, and store the state in the variable r.
  5. Whenever you want a probabilistic bang, just send a bang to vr!
pV5.#probability#
.................
.Ra.Vp...........
.7Y75O0000000000.
...1F10000000001.
..rV*.0000000011.
......0000000111.
......0000001111.
......0000011111.
......0000111111.
......0001111111.
......0011111111.
......0111111111.
......1111111111.
.................
...vr...#OUTPUT#.
.................

Edit: Can anyone suggest a more elegant method of comparing two numbers?

6 Likes

I’ve been super busy these past couple of days, I’ve been cooking up something to bring along with me to livecoding shows. I’ve been meaning to build something like Processing for a while, so that’s what I’ve been up to this week :slight_smile:

Introducing Ronin, Orca’s new best friend.

@tejomay Huh, that’s actually brilliant. Sometimes I wish there was a clamp function in Orca.

@voidstar This is the most elegant way I’ve seen yet. <3

22 Likes

So this isn’t the most interesting or generative way of using ORCA, but when I first got into it, I developed a sort of machinery within it to enhance my ability to use it in a performative manner and bring together a number rather simple sequences into a composition. This first one I came out with was sequencing a cheesy old Yamaha tonebank, taking full advantage of its bass split and percussion section:

6 Likes

Using your same variable convention I made an example of what I typically do, which is just set an R to generate a random variable within a range. Then I look for 0 because it’s present in all sets. So you have a 1/P chance of getting a bang, up to 1/35 (z).

pV5.
....
..Vp
.R5.
.1F0
rV..
....
.Vr.
....

I am curious about further implementations of your idea, like putting note names of different distributions in each line. Super cool idea!

EDIT: So I just threw this together based on your post, I put in note names but basically it randomly picks a value in row “r,” favoring the letters that occur more frequently. Changing “r” will change the pitch class set and probability distribution based on which row it’s reading. Variable “L” is the length of the list, so you can further adjust the weighted probability making the list longer or shorter.

rV0.lV7..Vl..........
.....Vr.R7...........
..4.X02A6............
.......80.Q.#AABCCDE#
........nVE.#AACCEEg#
............#CCDEEEf#
7Ug..Vn..............
..:01E...............
7 Likes

Very nice! That is super elegant and so compact! And you could use logic with it to get probabilities other than 1/p…

Just did a quick sketch up of logic functions…

'Bang' Logic
aV*............................
bV*............................
....03X........................
...Va..Vb......................
41x*01x*.......................
...............................
....cV*#....c.STORES.a.OR.b.#..
...............................
.......Vb......................
.......*.......................
.....VaJ.......................
.....*F*.......................
....dV*#....d.STORES.a&b.#.....
...............................
...............................
..33X*.Va......................
.......*.......................
.....01x.......................
...............................
.....eV.#...e.STORES.!a.#......
...............................
...............................
...............................
.......Vb......................
.......*.......................
.....VaJ.......................
.....*F*.......................
......*........................
41X*01x........................
...............................
....fV.#....f.STORES.a.NAND.b.#
'Zero vs. non-Zero' Logic
aV1................................
bV0................................
........Vb.........................
........0..........................
......VaJ..........................
......1A0..........................
.....0F1...........................
...................................
40X100x0...........................
....cV1#.........c.STORES.a.OR.b.#.
...................................
...................................
...................................
........Vb.........................
........0..........................
......VaJ..........................
......1M0..........................
.....dV0#........d.STORES.a.AND.b.#
...................................
...................................
......Va...........................
......1F0..........................
...21X0............................
.....00x1..........................
.....eV0#........e.STORES.!a.#.....
4 Likes

THESE ARE AMAZING
Thanks for sharing! Super clever!
:exploding_head:

2 Likes

Will be in Berlin in early December, would anyone be interested in helping to setup a little Orca workshop?

5 Likes

Thank you so so much @wheelersounds this was super helpful and inspiring! Had been trying to adapt a similar thing I made in Max a ways back and had been thinking about how to do it compactly in Orca and struggling. This is brilliant :slight_smile:

1 Like

+1
You could ask at ‘The Venue’ Berlin. New space for audio technology related matters.
https://thevenueberlin.com/

1 Like

We were considering this venue, have you heard of it?

2 Likes

I haven’t been to this one but heard good things.

Thought I’d just add to the chorus of praise and thanks:
This software is exactly the tool I’ve been craving all my electronic music-making life, although I never knew how it would look. Thanks so much Hundred Rabbits, your work is greatly appreciated. Also can’t wait for more @Allieway_Audio videos, the existing ones made dipping into orca a breeze so thank you too.

Was just playing with S and # operands today and thought I’d share. Not particularly efficient but lots of fun!

8 Likes

that is beautiful, even if I dont fully understand how its working. I love how it looks like some music making machine from the past.

3 Likes

Hi, I’ve installed Orca on an old netbook running lubuntu and I’m getting the following error whenever I try to select anything in the menu:

Glib-GIO-CRITICAL **: (timestamp): g_dbus_proxy_new: assertion ‘G_IS_DBUS_CONNECTION (connection)’ failed

It then exits out of Orca.

My goal was to have an Orca dedicated midi brain. would love to get this running!

1 Like

Mhmm I’ve never seen this one before, with a quick google search there seems to be others affected with this issue, there are a few suggestion to fixing that but since I cannot reproduce I’m not sure what the best way to go about doing that is.

Did you download a build or did you build it yourself?

I downloaded and installed it from the git repository.
npm install
npm start

Maybe you could ask if anyone has any tips over at:

Thanks! If I find a solution I’ll report back.

1 Like