Livecoding with Orca and minimalist tech
Tags: music, opensource, orca
Published: 2022-02-05 22:52:07

---
title: Livecoding with Orca and minimalist tech
published: true
description: Using an esoteric livecoding language for creating music.
tags: music, freesoftware, orca
cover_image: https://images.unsplash.com/photo-1598202604734-f6fcd12b2384?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1170&q=80
---

I recently got myself entangled with [uxn ecosystem](https://wiki.xxiivv.com/site/uxn.html) and related projects. I must say I found about this on [Mastodon](https://fediverse.party/en/mastodon/), a microblogging free software site from the [Fediverse](https://fediverse.party/). I'm trying to slowly shape the technical aspects from life into something I'm happy to work around, let me explain:

## The rhythm of social media and tech

As most of you over here, I love technology, I truly do. I was born in a home with a (big, ugly, white, slow and noisy) computer that my dad owned and I was able to use it, and computer related stuff (games, programming, breaking stuff) has always been there. But as much as I loved it, it was sometimes overwhelming. This feeling became even stronger when the social media came up. It wasn't that bad at first (if I'm allowed to talk about forums and later Tumblr as social media), but in a few years (during my teen years) it became fast, full of noise and it made me feel uneasy many times. Luckily it was easy for me to leave Facebook: I was kicked from it because I refused to use my name (so many years ago already). I've been dealing with this feeling for a long time, though, even afterwards. But at some point I got myself into the Fediverse and it felt like turning off the kitchen extractor in my head. I understood that its rhythm made me feel way happier, as well as the design (which is not trying to grab my constant attention) and the way most of the people interacted: they tried to use trigger warnings (since it's an option to hide contents of a toot under a topic warning when you write a post), respect gender tags, and generally engage into conversations in a different way. 

## The project
In this context, I found different topics going on, including uxn project. Since this ecosystem was created with a focus on creating portable tools and games, there are so many cool, minimal [projects going around uxn](https://github.com/hundredrabbits/awesome-uxn). I went through the language tutorial first, thanks to [100r](https://100r.co/site/home.html), a couple of amazing persons that live in a boat and build tools, and [compudanzas](https://compudanzas.net/), a group of people that align with the free software and minimal resources philosophy. When reading more and more about this tools and the whole project and the people behind it, I just felt "this is it, this is the kind of tech I want to be involved with and be surrounded by". Something that's useful yet not noisy and overwhelming. Yes, it could be complex (and even more if you are not into assembly, which I luckily am) but nevertheless accessible and fun.

## Livecoding and Orca
Although there are a few interesting projects going on in the uxn ecosystem, my favorite projects are noodle and Orca. Noodle is a small drawing program to sketch. [Orca](https://100r.co/site/orca) is a livecoding esoteric programming language, capable of sending MIDI, OSC & UDP. Iḿ planning on implementing some way of interacting with orca using a [Neo Trellis](https://thepihut.com/products/adafruit-4x4-neotrellis-feather-m4-kit-pack-ada4352?ref=isp_rel_prd&isp_ref_pos=3) pad, but that will be a different post! :)

You can use different commands, described in the [official documentation](https://100r.co/site/orca) or the [original repo](https://git.sr.ht/~rabbits/orca-toy). You can do things such as create variables, random results, clocks, base X and more. [Here's](https://www.youtube.com/watch?v=RaI_TuISSJE) a very cool tutorial I also checked btw.

Here's my example!
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/noel242m3axkanf0t347.jpg)

Let's go through it together. First of all, let's take a look at "HOLA" part:

```
...4C6........
....1B3.......
...D424THOLA..
....:03L......
.......J......
.....pVL......
```

This will play a sequence back and forth (HOLA) which is a track of four notes (`D424THOLA`), the iterated letter will appear in the fourth place of the line bellow, for example I caught L at the moment I froze the app (:03*L*). `J` allow us to put under J the same value from above the J. `pVX` saves the value of `X` in `Vp`. So in this case, it saves the value of the iteration in Vp. The same happens with "QUE" (that saves the value on `Va`) and "TAL" (that saves the value on `Vu`). I chose those because thatś my name, pau :)

```
.......
.1C6...
..5Y5..
....J..
..hV5..
.......
```

In this case I'm saving in `Vh` the value that results from iterate 1 to 6. Like saying the classic "from i=1 to i=6, i++". (1C6, or 1 clock 6), while Y puts the value from the left of Y on its right, it's unnecessary in this case, I was sketching. so for example if we have a value X somewhere, `XY` will output: `XYX`. 

```
.......
.1R6...
..2Y2..
....J..
..oV2..
.......
```
This one is similar but using `R` instead of clock. `R` means random. so this chooses a random value from 1 o 6, and stores the result in a variable called Vo (`oV2`).

```
......
...D1.
.Vh*H.
.E.GE.
```

This will output E like this:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yr00qpu4c32duqeruwe3.jpg)

Because it's using `Vh`, which is an iteration from 1 to 6, as we explained before. While using `Vo` looks like this:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkapzxbbto8ehd2w9n3q.jpg)

because it uses random.

The rest are musical notes that are triggered by that `E` loop, and the notes are triggered by the variables with my name. for example `:04C` will play a note. 

```
...Vp..
:02....
```
Will play a note of `02X` being X the value of `Vp`.

```
...Vp..
:02....
...Va..
:03....
...Vu..
:04....
.......

```
These are all the notes I want to play like this. Anyway [this is how the result sounds](https://open.audio/library/artists/16884/) when connecting the output to VCV Rack.