@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?
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?
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.
Example usage of the config file helper thing I made for Orca-c: https://gist.github.com/randrew/9e56bd3b64c269022b75d62c543c48a8
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
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.