My biggest kernel patch so far: Changing the Linux USB audio gadget to use a very-fast mmap vs the old virtual ALSA card approach, plus also sharing 1 clock for both playback and capture (default implementation uses 1 for playback and 1 for capture, which makes them appear as separate devices - very ugly) Culmination of 1 month of work, but due to how hacky it is I will have to maintain it forever. But it's cool, gives the Darkglass Anagram unit a more unique feel!
Finally getting back to do some KXStudio repository updates. First order of business, cleaning and updating the basic libraries The LV2 stuff changed from waf to meson, the deps are very sequential so it takes a while to confirm successful builds. The stack is basically: zix -> serd -> sord -> sratom -> lilv Updating PawPaw project (for easy win/mac/wasm static builds) along the way to match That pretty much takes away my Sunday πŸ˜…
Why can't Windows be normal? The USB audio interface feature works pretty much as per standard on Linux and macOS, but on Windows it's a damn mess. When investigating issues it was funny to see this written on an alternative usb audio implementation: > Microsoft Windows USB Audio 2.0 driver available since Windows 10, release 1703 expects Full-Speed explicit feedback endpoint wMaxPacketSize to be equal 4, which violates the USB 2.0 Specification. and other similar things... πŸ€¦β€β™‚οΈ 😑
The things we do for a few milliseconds of latency... Like today, patching the Linux kernel to create a memory-mapped buffer that both the kernel and a JACK client can use at the same time. (the previous/mainline code was using an alsa virtual device to expose the audio data) Reduced latency of the "task" by around 20ms ✨ Now just need to deal with ARM memory barriers and other details to ensure a good sync, I think...
Look internet, I am on video! πŸ˜€ Very glad and proud to be part of #darkglass team. πŸš€
Since I am the only one in the company that has dealt with opensource software licenses before, I am the one doing the page that lists the licenses used. There's so much stuff hah 😱 How it looks so far: Still WIP, but what do you think? Specially interested on opinions from other opensource developers. Thanks for the feedback in advance!
After pretty much 1 year of work the result is finally public. For those that don't know, in early 2024 I joined the Darkglass Electronics company. Bringing the expertise developed through many years with MOD Devices / MOD Audio and my own projects, and started to create together with them a super fancy new Linux-embed based product. This runs JACK2 inside with mod-host and LV2 plugins. Very soon to start opening up to external plugin developers. Very exciting! πŸŽ‰ image
A teaser video of an upcoming product... The results of ~1 year of work finally becoming public. Real announcement later in the month.
Found a nice way to quickly test the webview handling in DPF - a very minimal web browser plugin UI with a manual URL entry! 😱 Loading the online plugin project page inside the plugin itself πŸ˜€ I know, nobody asked for this, but its a nice way to test that the feature works. More of a dev tool than being useful for end users. It's also cool :) If anybody wants to try: image
Loading Linux plugins on Windows hosts through Wine. Because a half-step is better than no step. To be more clear... it's hard to leave FL behind but don't really want to dual-boot or starting relying on Windows plugins. Its possible to do plugins such that: - Windows host loads a small shim - shim loads Linux plugin - do some little odd XEmbed things to get UIs on Windows host side too I might make this a "use it if you want, no support whatsoever" project, because Wine breaks too often... πŸ€” image