Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Orca: an esolang for audio-visual live coding (sr.ht)
307 points by kick on May 8, 2020 | hide | past | favorite | 74 comments


It's also worth taking a look at the author's website: https://100r.co/ - ORCA is just one of many projects and explorations that they do while living on a boat.


The markdown editor listed on that page, Left, is really rather good: https://100r.co/site/left.html


Ronin also looks neat. Basically the ideas from Orca used to manipulate and transform images.

https://youtu.be/SgAWGh1s9zg


Here's a presentation they did: https://www.youtube.com/watch?v=BW32yUEymvU

It sounds like they'd left the boat at the time.


that talk, where they discuss their experience living on and maintaining a sailboat, resonates with me very well right now. In quarantine, I'm having to learn how to fix things and basically be able to take care of the household. It feels like we are on a space ship, drifting through time, but basking in peace and solitude.


> It feels like we are on a space ship, drifting through time, but basking in peace and solitude.

This comment reminded me of this video by CGP Grey which I think you may enjoy if you haven't yet seen it.

https://youtu.be/snAhsXyO3Ck


Thanks for sharing this.


it's worth noting that they had a fantastic session at xoxo 2019, talking about the trials and successes of living on a boat. having lived on top of a mountain with satellite internet (not nearly as bad as their connection), I was able to sympathize with the unhappiness of Xcode updates.


My favorite talk


Man that's so cool. I feel like that beats tiny homes


The two happiest days in a boat owner's life are the day he buys the boat and the day he sells the boat.


I bet that doesn't apply to that couple or this one: https://www.youtube.com/watch?v=lk83N2u1ZmY (Living on a Self-Sufficient Sailboat for 10 Years)


Wired: sailboats Tired: van life Expired: tiny houses


Great to see Orca on here! Really really fun to play with for generative music; I made a song with it last year that I posted: https://www.instagram.com/p/BzVjW7LBv1K/

I also learned a lot from watching Allieway Audio's Orca series on Youtube: https://www.youtube.com/channel/UCeo2Fo1OidWpT83BT5xmCZw/vid...

Orca is fascinating because it is so limited compared to most "programming languages", and trying to figure out how to express ideas 1) compactly, 2) without abstraction or recursion, and 3) flexible enough for real-time editing, is a great, rewarding challenge.


There's a two part podcast on futureofcoding.org with the creator of Orca, Devine Lu Linvega:

https://futureofcoding.org/episodes/044

https://futureofcoding.org/episodes/045


Hey, I know the host of that podcast! He has some weird opinions about visual programming. Makes sense he'd be interested in Orca.


good community too


This is a cool project I've been watching for a while.

But off topic from this, what is with all the sourcehut links on HN lately? Where did this suddenly come out of? Looks like a lot of cool projects are starting to host their code here. Wondering how it got the traction.


Aside from the "proprietary bad" arguments (which is enough to get traction on HN), there are a bunch of practical reasons:

1. It's faster. Mr. Devault, Sourcehut's author, runs a benchmark site that demonstrates this: https://forgeperf.org/

2. The e-mail based workflow is (in my opinion) superior; I don't have to use some clunky web interface.

3. I can run it myself, on-premise, for free.


> 2. The e-mail based workflow is (in my opinion) superior; I don't have to use some clunky web interface.

Yeah but my email client can't show me nice diffs and let me comment on line numbers like GitLab/Hub can... Plus I

I don't really understand SH's decision not to support PRs, which seem fundamental to most workflows.

I think PRs are far superior than spamming up my inbox and using esoteric git email commands

To be fair, I've never actually tried an email-based workflow, but in my mind it involves a lot of emails and reply-alls and just general clutter and an absence of syntax highlighting, pinpoint line commenting, side-by-side diff and all the other nice things the GitLab/Hub provide with PRs.


>Yeah but my email client can't show me nice diffs

https://l.sr.ht/QlVR.png

>let me comment on line numbers like GitLab/Hub can

https://l.sr.ht/cz3L.png

These are also being added to the web UI:

https://lists.sr.ht/~sircmpwn/sr.ht-dev/patches/10253

But at the end of the day, if this workflow is not for you, there are a half-dozen other platforms you could be using.


> But at the end of the day, if this workflow is not for you, there are a half-dozen other platforms you could be using.

I've never actually used an email-based workflow, but I'm trying to understand why people might prefer it over PRs.

SourceHut gets a lot of love on this site and I feel like I am missing out. But every time I look into it, I feel like there is something I'm not quite grasping.


Try this, it'll walk you through the contribution process:

https://git-send-email.io

I like email because it's very efficient, both as a contributor and a maintainer. It can fire off a patch with a single command, and reviewing lots of patches is easy, too. It's also distributed and federated by its very nature, which makes it fault tolerant and keeps your data from being locked up in a centralized/proprietary database.


As a former pine user, now trapped behind o365 web client, top posting and all - what email client are you currently using?

I've toyed with going over to mutt, looked at alpine, and mulled over trying notmuch, lumail or even plain nmh.

Ed: for the mail curious, as some of these can be tricky to search for:

http://www.nongnu.org/nmh/

https://repo.or.cz/alpine.git

https://notmuchmail.org/#index4h2

https://lumail.org/


I wrote my own mail client:

https://aerc-mail.org


I use Github and Gitlab on a daily basis, and participated (and still follow) in a project with an e-mail based workflows, the notmuch[1] project.

I find that the following are better in an e-mail based workflow:

- Reviewing

Threaded e-mail discussions are the best for following and/or discussing pull requests. Commits or comments no longer relevant can be hidden/collapsed to allow you to focus on what you are interested or is left to review. This is still not possible fully in either Gitlab or Github.

- Multiple versions of a pull request

Only Gitlab has support for multiple versions of a merge request. In Github there is no history of what the previous versions of the code were (or at least you cannot not explicitly compare them as in Gitlab)

- Merging into multiple branches

Though not enabled directly by an e-mail based workflow, with Gitlab/Github there is no way to ask the same set of changes to be merged into different branches in the same MR, you have to open two, and then you might issues with tools that integrate with them as they might have done the assumption that one branch is not used in two different MRs. So, even though daggy fixes[2] are possible, the norm seems to be to cherry pick.

- Custom styling

This varies with the e-mail client, but still is way better than any web interface.

[1] https://notmuchmail.org/

[2] https://wiki.monotone.ca/DaggyFixes/


Unfortunately the actually git "push"ing of code is slower. I'm a paying sr.ht member and that's the one thing I wish was faster.


As of when? It was slow for a while, but we did a bunch of performance improvements and it's much better now.


The site recently got discoverability of projects (less than a week ago); it's had a bunch of projects laying about for a few months now, but you'd have to use site:*.sr.ht on a search engine to find anything. It's more navigatable and has far fewer ethical problems than both Gitlab and GitHub, which makes it more enjoyable to search through.

The site itself has actually had many links over the course of the past two years:

- 46 from sr.ht

https://news.ycombinator.com/from?site=sr.ht

- 22 from sourcehut.org

https://news.ycombinator.com/from?site=sourcehut.org


> ethical problems with GitLab

Ooh? What did I miss?


Mandatory telemetry until people started dropping subscriptions was the most well-known one in recent memory, but there have been more.

The open core model is also ethically-poor.


> The open core model is also ethically-poor.

Can you speak more to this?


It's proprietary software with extra steps to trick people into giving a company the respect that comes with free software. To quote Andrew Miloradovsky:

The reason why many companies insist on using "permissive" licenses is because they're having an "open core" business model, and want to be able to include the work of external contributors into their proprietary versions, without asking the contributors to sign any kind of agreement.

I know multiple people working on multiple projects who would have been entirely willing and able to pay for the enterprise feature-set, were it not proprietary. It's not even a good business model! Solely aimed at large companies, GitLab has no regard for individual users or foundations & groups producing free software. Some people make the argument that because they offer the proprietary patches to free software projects at cost of nothing more than freedom, they do have regard for them, but that's a ridiculous argument: BitBucket was gratis for free software too.


They're the last bastion of hosted hg support, if that's of interest.


SourceHut is not GitHub or GitLab. That's already a plus.


At what point will it be “is not GitHub, GitLab, or SourceHut”


Drew is ethical, unlike the other two, and it seems very, very unlikely that will change. Have you seen his rants? He cares more about software freedom than most GNU contributors. He also has been contributing to free software for years as his main occupation, which is something that can't be said of the founders of the other two.

If Drew somehow has a complete change of personality and ethics, that's when it'll be "It's not GitHub, GitLab, or SourceHut." But as it is, he's basically the only trustworthy business-owner on this site.

He even reps a "competitor" that actually supports software freedom as well: Codeberg.


When SourceHut is big enough and there's a new underdog to support. Hurray for competitive markets!


mmm, the founder of Sourcehut is about as far from typical startup founder as you can get. He’d have to blow up his whole schtick if Sourcehut started down a ethically questionable path.


GitHub is Microsoft, what's wrong with GitLab?


GitLab loads enormous amounts of JS, and requires more server resources than just about anything else I've tried to run that wasn't a game server.


There is an excellent overview of how to use the interface by a YouTube channel called Allieway Audio[0]. It was the explanation that made this software make sense for me personally.

[0] https://youtu.be/RaI_TuISSJE


You can use Orca online here: https://hundredrabbits.github.io/Orca/


Esoteric language indeed!

Is there a way to load an example? I can't figure out how to get anything to work.


Inside the repo there are examples that help to understand how it works: https://git.sr.ht/~rabbits/orca/tree/master/examples


My browser doesn't have a MIDI out, so I don't understand how that's meant to work.


It might, actually: https://www.w3.org/TR/webmidi/

Chromium-based browsers only at the moment.


I've been playing around with orca for a few months: its really exciting and fun to use.

Here are some videos of patches I think are cool:

* https://www.youtube.com/watch?v=sH5GaVU0ed8&t=72s

* https://www.youtube.com/watch?v=4ig84_4RF5E&t=50s

* https://www.youtube.com/watch?v=KzUQlmQvtjI

* https://www.youtube.com/watch?v=_flqHdfFitw


This looks like it could be described as a cross between Dwarf Fortress and Sonic Pi?


There's a nice demo of this here https://youtu.be/RaI_TuISSJE (with the explanation starting 3 mins in)


I remember seeing this on GitHub [1] when it was a JavaScript implementation. It'll be interesting to see how it's been ported over to C!

[1] https://github.com/hundredrabbits/Orca


> (Also, #pragma once must be supported.)

It's really interesting to me how this isn't standard C — ergonomically, it's so much nicer than the `ifndef` header guards.


Thanks for reposting(?) this, I was trying to remember what this project was the last time it was mentioned on HN.


What is an esolang?


esoteric [programming] language.


ooh a category so esoteric it has to invent an esoteric descriptor


"Conlang" for a constructed language (Esperanto, Klingon, Dothraki) has been around for about 30 years.

I think the confusing part here isn't the informal abbreviation, it's the general concept that a programming language made to be intentionally inefficient/confusing/hard is "esoteric".


Argh. These sorts of coined puzzle words need to die. (And don't even get me started on the "rona".)


Why? It's not like it's hard to Google it or even guess the meaning (at least in this particular case).


Making up a phrase to give a language a label based a vague notion of popularity is pretty nonsensical. If people start using it, is it no longer an 'esolang'?



Aside from the thought that it's effete, precious, and obnoxious, it makes the headline incomprehensible just to save six letters (or to seem trendy). Ugh.


In general I agree, but I'll give this one a pass for being meta.


This seems to be heavily influenced by Max? Sort of like a slimmed down esoteric text version of Max with a few extra quirks.


I’d say closer to csound with a UI inspired by old school midi trackers.


How does this compare to SonicPi?


Different beast. Orca sends midi so you could control SonicPi.


See #ORCΛ on twitter for examples


Link for the lazy/efficient: https://nitter.net/search?q=%23ORC%CE%9B


"on bang"?


A "bang" is a trigger signal. This is common in audio programming languages and I think the term originated from Max/MSP:

https://docs.cycling74.com/max8/tutorials/basicchapter02

Edit: removed incorrect assumption about audio processing, thanks vertex-four


No, there's no audio at any point within the system, it's less an audio programming language and more of a language whose output primitive is a MIDI note generator.


Didn't mess with it yet, but I'm assuming these fire when the cursor hits a bang character (!)


nice to see hosted on source hut




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

Search: