Ah yes, Linux userland. Where trying to run a music program leads me to a prompt telling me I need to reboot and also if I screw up I will lock everyone out of the machine.

Today's goal: implement *all* of the missing MIDI features in orca-c.

@neauoire are you around? how can I set up a sunvox thing like you had set up in your demos to me with the timing problems?

@neauoire orca-c doesn't attempt to elevate its scheduling priority, so if you're running a bunch of web browsers that are playing animations and multiple audio programs at the same time, the linux kernel is going to give very low priority to orca. it will basically treat it like a background process and possibly only run it a few times per second, vs thousands of times for the web browsers.

@neauoire i suspect what's happening is that you have too many processes running on your linux machine that want elevated/audio priority, and the cpu load is too high, and so the linux kernel is hardly ever scheduling the orca process, so it can't ever fire off its events with accurate timing.

@neauoire if you use 'nice' to boost the priority of the orca process, does the time jitter get less bad?

@neauoire @npisanti @eel @Lutrinus OK, I've just made it so that an input velocity of 0 doesn't send a note. `1` through `g` map to velocity 7 through 127.

@neauoire @npisanti @eel @Lutrinus sorry, I meant to say it more like this:

what actual MIDI velocity do you get when you give the `:` operator a velocity input value of `0`?

@neauoire @npisanti @eel @Lutrinus what's the behavior supposed to be in orca when you send a midi note with velocity '0' ?

In the current (existing, old) orca-c code, it sends a MIDI note with velocity 1.

But I'm updating it to match the current orca JS behavior.

But the current orca JS behavior looks like it sends a MIDI note with velocity 0... which is actually a note off, which would be wrong, and generate incorrect MIDI output if there's no matching note on (which there probably isn't.)

@neauoire huh, uhh... is the new behavior for orca's MIDI velocity supposed to allow for a 0-velocity note being sent? because that's a note-off... it would cause problems

@neauoire the link to orca on your site from the orca-c github repo is broken again... do you want to change it to something else?

Added options for using box drawing characters or regular characters for orca-c's grid components

Ripcord 0.4.22 released: cancel.fm/ripcord/

Too many section tabs in Preferences. Now it's a list/tree. Plus some fixes for stale Slack DMs and group DMs not reappearing in the sidebar after opening tabs for them.

Full changelog: dev.cancel.fm/changelog

Test builds of Ripcord (0.4.22 preview):
cancel.fm/dl/test/
What's new:
dev.cancel.fm/wiki?name=Upcomi

Some under-the-hood changes, Prefs window changes, and the first 50% of fixing stale Slack DM channels not being re-added to the sidebar once a new message has been received.

If you give up distributed protocols or ratcheting/perfect-forward E2EE, then it gets way easier and more efficient to implement these things.

You could make something with a lot of features that isn't a crazy nightmare to implement for both the server and client, and which doesn't suck up a constant 300kbps worth of bandwidth just idling.

What I actually want is a remake of Hotline or KDX.

Chat, file sharing, and asynchronous style BBS/forum posting.

Low-waste protocol. Fewer round trips to servers to work better on high latency connections. Incremental data exchange with clients. Easy to implement and easy to move the host between machines if hardware fails.

The new things like Matrix or Mastodon are 'big idea' things, like fully federated or P2P distributed, or E2EE. Which makes them wasteful in resources and complicated.

Extremely high-tech clipboard support for TUI software

Example usage of the config file helper thing I made for Orca-c: gist.github.com/randrew/9e56bd

It does a bit of work behind the scenes to avoid doing any allocations (except for the file name path) and to preserve the comments and ordering of stuff in the existing config file (if any.)

It also doesn't make you pre-serialize/pre-create the strings with the config values. You can just stream them out.

(There's also a reading/loading counterpart, which is more simple.)

@neauoire ok I’m awake now, I can help fix your thing

Show more
Merveilles

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them. Check out our Patreon to see our donations.