Hacker News new | past | comments | ask | show | jobs | submit login
Orca – Live Programming Environment (github.com)
290 points by tobr on Feb 8, 2019 | hide | past | web | favorite | 58 comments

As a software developer and new father, even though I'm lucky to work in a very intellectully rewarding field, I'm starting to feel a net negative feeling about computers. I think back to the excitement of 8-year-old me with a BBC Micro and a BASIC prompt and wonder what I can help my (still very young) child to discover in a few years. Looking at the majority of software experiences available I feel some amount of dispair. Is he going to find satisfaction in a blank screen when contemporary computers are jostling for attention and employing all kinds of dark patterns to subvert mental space? Will be be as excited about putting a pixel on a screen or writing a byte on a disc when there's AR and VR, and who knows what's around the corner?

And then something like this comes along. This is something I can see us exploring together, that rewards creativity and doesn't try to impose anything. I'm so glad there are people making esoteric software with depth. Thank you, hundredrabbits.

(I've not actually tried Orca, but it looks very cool)

Don't lose hope. A lot of us folks got into CS through playing computer games and thinking "how the hell does this even work". My first "programming" experience was modifying the scripts for my Diablo 2 bots.

Imho an interest in figuring stuff out, building things and some capability in abstract thinking are way more important than an interest in programming language at a young age.

Also see Minecraft with redstone circuits. Kids regularly build elaborate contraptions inside the game, ranging up to entire game-within-a-game devices that use moving blocks as "screens" and require hitting in-game buttons to control.

Learning about logic gates via Redstone was a major contributing factor towards me doing well in my logic design class


My own daughter is too young, by my nieces danced around screaming when the robot they made spun in a circle, or when they got an LCD to flash 'HELLO'/'GOODBYE'.

Micropython opened a new world for them.

Look at antirez for inspiration. He builds and maintains what is, arguably, a complex, relatively boring stack used everywhere for building larger, also complex systems.

He still has time to hack together a fantasy console for his kids, motivated I think, by the same forces that prompted your lament:


.. dig in, submit a PR, and leave the despair behind. Your kids can still learn computing just as you did ...

I've created orca and this message resonated with me, and how I feel about computers today. Thank you for saying so.

Well I hope you didn't teach him to spell disk with a c :)

If only there was a country out there that preferred the c over the k. There may even be hints in the gp post of where that may be!

Hello from the UK!

Fingers crossed American English won't have completely taken over the world by the time he's learning to spell!

Actually, being a non-American Anglophone country where American English is a vehicle for lots of technology has had some interesting consequences. For example, we have the word "programme" for "schedule", but "program" for "computer instructions". I think there are other examples.

HDD/SDD disk with a 'k' Floppy/Compact disc with a 'c'

YouTube user Allieway Audio has started posting a series of great tutorials and introductory videos for Orca:



To give a bit of context the primary creator of this project has been essentially living off a sailboat for the past few years and has traveled some 28000km around the world in the process. More info at their site at https://100r.co/ :)

The introduction by Allieway really helped the ORCA software click with my understanding. She explained the grid and the various objects and their composition such that as someone who has never used a live-programming environment everything just made sense.

ORCA looks like a lot of fun now that I understand how things work.

Yes these are great to start with.

On osx the fastest way I found to get sound happening was to download and run SimpleSynth - orca detected SimpleSynth and I had sounds playing.

Join in on the official chat at [0] If you run into performance issue or want to try using an external MIDI source to sync, I have those in my fork at [1], waiting for the maintainer to come back from sailing around Japan to merge them :)

[0] https://talk.lurk.org/channel/orca [1] https://github.com/hamstah/Orca/releases

This reminds me of Befunge.

My favorite language feature ever: "Similarly, in Befunge, there is no comment syntax: to embed documentation in the code, the programmer simply routes the control flow around the "comment" area, so that the text in that area is never executed"


* is called "bang"? I thought it was universally agreed that "!" is bang and "*" is splat.

I noticed that as well. `!` has been nicknamed "bang" for a long time (hence "shebang" for `#!` notation)


The term likely comes from max/msp, which has a “bang” message with a similar function.

Agree with bang, but I call "*" star or asterisk.

I thought the splat was ...

Think cellular automatons combined with PD/MaxMSP. Each letter in the alphabet is a node. The node's inputs/outputs are adjacent grid locations, data typically flows south (outputs are sent down) State advances on every frame. There are nodes to generate data (counters, timers, etc.), nodes that have state and nodes that are sinks (OSC and MIDI). I had to fiddle around the webkit console to get the midi working with garage band.

It's fun.

Orca is just one piece of the world that this guy has been building at https://wiki.xxiivv.com/#home

He's got a suite of tools: Left, Dotgrid, Ronin, Marabu (text, graphics, super-graphics, audio).

Then a logging/personal wiki setup that I think is fascinating: Nataniev, Horaire, Oscean. Which goes all the way down to his own database formats and time format.

The philosophy and aesthetic of his work is awesome in the completeness of associated art and the connection between the build-up of his own software ecosystem. I've been following xxiivv for a while, and it's always changing and always inspiring. I'd love to hear anyone's thoughts on his system and would be happy to talk more about it!

For example, Orca, featured here, used to be Pico which was a sort of playground environment like Orca but before it was the audio playground it is now. I'm not sure this is the best commit to pick out, but I just wanted to share how active he is on his software projects, and that environments really are a theme for him.


He's built a synthetic human language: Lietal, and his partner has a recipe sharing and cooking exploration site at grimgrains. Which also shares a unique personal aesthetic. They also live on a boat (see Pino).

I am personally most interested in Ronin (under tools). It explains itself as a cross between vim and Photoshop, and though it is in a semi-broken state now, I had a great afternoon hacking on it playing around with pens and magnet mode. I play around a lot with processing and p5, and love to build generative style systems like Casey Reas shows off in his Compendium [1]. I see Ronin as an example next step towards creating an environment in which to mess with these things, rather than my standard of playing around in vim, and running it with each new tweak.

Edit: at a computer now, so links for some of the above:

- https://wiki.xxiivv.com/#tools

- https://wiki.xxiivv.com/#nataniev

- https://wiki.xxiivv.com/#lietal

- https://grimgrains.com/#home



I've been into livecoding for a while, and never heard of Orca until now. You're right, there is a lot more to Orca when you dive into their site and other projects. I have been playing with living on a boat my whole life, so it was refreshing and inspiring to read their logs.

I am interested in porting Orca-c to Windows by ridding it of Posix dependencies, but I am not sure how much of a task this is going to be. Also, I didn't see any links or dependencies to SuperCollider, Soundpipe, or other sound engine/dsp libs.

EDIT: I now see it is just MIDI output to your MIDI device, so no need for sound engine or DSP lib.

Thanks for pointing that out! Seems very interesting person.

Basic convention for sending midi .. in orca ..

1D8 * :02c99

Sends midi message to channel 1, octave 2, note c, note velocity 9, note length 9 it doesnt have to stay simple tho :) build from there .. https://www.dropbox.com/s/3rku66su1ckrj94/Orcanimseq.jpg?dl=...


Wish I could drive this thing from Emacs...

Interesting. Really great to see music programming environments!

What a coincidence, I posted about a music programming language called Musicblocks, just a few minutes ago!


Awesome to see how developed this tool has become.

Unrelated: Always love watching your sailing videos!!

Here's a video that offers an introduction to the "Algorave" scene: https://www.youtube.com/watch?v=S2EZqikCIfY

Please note that the editors of this film interviewed lots of prominent women in the Algorave scene, and then mostly cut them out of the edit, soundtrack and credits.

Resident Advisor (who commissioned the film) have since apologised:


The Algorave community does not consider this film to fully represent the diversity of the scene and the contributions being made by non-men.

I was completely unaware of this so thanks for sharing.

You are very welcome.

Aside from the issues mentioned, there are of course some great people featured in the film, saying great things.

There will be a public response from Algorave community at some point (a blog post or video perhaps) to address the issues.

I'm a big fan of hundredrabbits or, as they are also known, [rekka and divine](https://hundredrabbits.itch.io/), and my Playnite Library has a section called "Gamedev Tools" that is filled with all the Borgesian wonders that they have made, including Orca. To find out more about their awesome stuff, like how the freaking built many of these tools while on the ocean, literally sailing around the world, [here's their site!](https://100r.co/)

I'll let you explore on your own, but I will offer here some links to my favorites that they have made. (Including more music related apps for those who like Orca!)

FORMAT ------ >Itch.io or download page, and... >Short description, and git instructions... >`git clone`/`npm install` if available.



- [Marabu](https://github.com/hundredrabbits/Marabu) - Open source tracker built on [Soundbox](https://github.com/mbitsnbites/soundbox). (Also, look into [Super Collider](https://supercollider.github.io/)! - `git clone https://github.com/hundredrabbits/Marabu.git`

* Left

- [Left](https://hundredrabbits.itch.io/left) - A minimalist text editor. - ``` git clone https://github.com/hundredrabbits/Left.git cd Left && npm install npm start```

* Ronin - [Ronin](https://wiki.xxiivv.com/#ronin) - Self described as a cross between Vim and Photoshop. This one is definitely worth a look. - `git clone https://github.com/hundredrabbits/Ronin.git`

* Markl - [Markl](https://markl.100r.co/) - An upcoming game with a very hundredrabbit's vibe. - `git clone https://github.com/hundredrabbits/markl.100r.co.git`

* Paradise - [Paradise](https://hundredrabbits.itch.io/paradise) and an artsier [link](https://wiki.xxiivv.com/#paradise) too. - 'I have always imagined that Paradise will be a kind of library.' This one is very interesting, as if you were born in a command line with symbolic links disabled. A text adventure game, I'd say, but loosely. - ``` git clone https://github.com/hundredrabbits/Paradise.git cd Paradise && && npm install npm start ```

I'm so sorry about this formatting. It's my first comment and I couldn't find any syntax rules so I just went standard markdown. Not a good idea. In any case, I've tried to edit it but it won't allow me to make changes, and I apologize for this. I was not hasty, and this took me an hour to write up.

They're few, but here are the formatting rules:


Thank you so much! I am going to try to fix them up knowing

that now, though I did produce the original look I inteneded

for the comment here.


Should use uncommon name. Even ocra midi is not narrow enough enough

They get around that by substituting the a for another glyph, giving them a unique hashtag to use on twitter #ORCΛ

I spent some time trying to get it to do like a conway's game glider, but couldn't figure one out -must be impossible.

Let me know if you manage to make a self replicating pattern in Orca, I've been working at this for the past few days myself.

I don't think that's going to work here.

Looks great! Looking forward to diving in.

It is strange, I've been in the planning/research stage to build exactly this tool!

I guess it doesn't matter that much, but the author may want to rename. Orca as a name suffers from a collision with the relatively well-known windows installer table editor.

Fails my "WTF is it" test right out of the box.

The first paragraph of any software README should answer:

What is it? What does it do? Why would I use it?

ORCA is a ... that ... and can help you ...

I don’t think that’s a fruitful mindset for a thing like this. If you look at some of the tools (and games) by the same developer, they are all unapologetic, highly aesthetic experiences that often hover between profound genius and half finished art experiment.

This isn't really that kind of piece of software. It's a work of art, but more relevantly it's meant to be a conspicuous component of other people's art. That means an air of mystique is a selling point.

It's weird, it's confusing, and it doesn't care about you — but open it up and play around and you might find something worthy of delight.

I mostly agree; ideally there would be a prominent link to a 30 second video that does a very quick demonstration of how/why this works. This is an example where video is just way better than text for introducing a concept.

I get that not every repo is going to have a nice readme, but it definitely would be nice here.

A link to an introductory video is the third sentence in the readme :)

"Each letter of the alphabet is an operation, lowercase letters operate on bang(*), uppercase letters operate each frame. Have a look at some project created with #ORCΛ, or some example files. Here's an introduction video. "

I agree. I have never used an audio programmer and don't really know what it's for. Even after reading the README and looking at a video on Twitter, I still don't know what this program does.

What is it with web project in particular writing "OSX"? Even the C port, linked from the JS repo, writes correctly "macOS". How can web projects be taken seriously when they won't even take the platforms they supposedly support seriously?

I'm not generalizing just because. The overwhelming majority of "npm projects" I visit write "OSX".

> How can web projects be taken seriously when they won't even take the platforms they supposedly support seriously?

That's a pretty extreme reaction to someone not capitalizing the name correctly. Don't forget that they changed the name in the last few years, and not everyone is in the Apple orbit enough to absorb all of those shifts in branding.

Because it was OS X for like 15 years and only just changed to "macOS".

It has been three and a half years. Hardly “just”.

It’s such a stupid thing to even debate or bring up in the first place. But you are also wrong, the first “macOS” was released 2.5, not 3.5 years ago.

Is this really necessary?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact