home.social

#anklang β€” Public Fediverse posts

Live and recent posts from across the Fediverse tagged #anklang, aggregated by home.social.

fetched live
  1. #DevLog: #Anklang TypeScript & Sndfile Updates

    🌐 #Jsonipc #TypeScript migration complete, including codegen!

    πŸ“š Updated development docs accordingly

    πŸ› οΈ Manually wrote #libsndfile config.h

    ⚑ Major #Sndfile build speedup without #cmake

    #BuildInPublic #100DaysOfCode

  2. #DevLog: jj-fzf & #Anklang type safety πŸ’‘

    πŸ“¦ Migrated all #Jsonipc glue code to #TypeScript
    🧹 Finally removed legacy #castxml + #Python based code generator
    🧩 Next up: porting generated bindings to TypeScript, aiming for fully type-safe #IPC!

    🌐 Fixed jj-fzf to preserve ::@ history when deleting #git tags

    #100DaysOfCode #BuildInPublic #Jujutsu #VCS

  3. #DevLog: #Anklang #IPC Bindings πŸ”„

    🧹 Cleaned up #API for IPC and simplified it

    πŸ› οΈ Rewrote C++ <-> #JavaScript binding generator in #TypeScript

    ✨ Improved code generation for handling of accessors

    πŸ“¦ Tested updated #NPM dependencies

    #BuildInPublic #Cpp #100DaysOfCode

  4. #DevLog: #Anklang Build & Codegen πŸ› οΈ

    πŸ“¦ Fixed #AppImage builds failing due to missing linuxdeploy and appimage-runtime-zstd

    πŸ”„ Explored tracking generated sources in #Git + codegen rules for auto-updating them

    πŸ” Still working on robust detection for when triggering rebuilds is needed

    #Cpp #BuildInPublic #100DaysOfCode

  5. #DevLog: #Anklang #RPC Evolution πŸ”„

    🧱 More JSON marshalling work for method calls
    πŸ› οΈ Changed Json libraries and conversion logic
    πŸ”— Moved to managed pointers for all API obejcts
    🧠 Discovered LLMs don't fully understand cross-language RPC nuances… πŸ˜•

    βœ… Solved the C++ template specialization issues

    #Cpp #TypeScript #100DaysOfCode #BuildInPublic

  6. #DevLog: #Anklang Binding Migration πŸ§ͺ

    πŸ› οΈ Trying to base the C++ <-> JSON bindings on `#clang -extract-api` instead of castxml

    πŸͺ› Have prototype code for #JSON call dispatching

    🧩 Atm fighting #CPlusPlus template specializations for member func with and w/o const

    ✨ The ultimate goal is to make the bindings type safe with #Typescript wrappers

    #100DaysOfCode #BuildInPublic

  7. #DevLog: #Anklang Build Overhaul πŸ› οΈ

    πŸ”§ Reworked build rules to make #Git optional (mostly used to find linting targets)

    πŸͺ› Fixed DEB and #AppImage builds

    πŸ“¦ Added #RPM packages (via Alien)

    πŸ€– Automated dist & install verification

    πŸ‹ Rewrote the Docker CI container

    πŸ›‘οΈ Isolated binary builds out-of-tree

    πŸš€ Tagged a nightly release:

    github.com/tim-janik/anklang/r

    #100DaysOfCode #CI_CD #BuildSystems

  8. #DevLog: #Anklang #Submodule Purge

    🚧 #Github release tar/zip archives cannot include submodule sources
    πŸ“₯ So, we now fetch all external sources as tarballs (faster anyway)
    🧹 Deleted .gitmodules and all submodule build rules

    #100DaysOfCode #Packaging #Git

  9. #DevLog: #Anklang Dependencies πŸ’»

    🧨 #GitHub's tarball/zip generation via #Git archive excludes submodules
    βœ… So… moving to fetch C++ deps via #curl now
    πŸ”„ Finished shell.js to shell.jsx (#SolidJS) migration

    #100DaysOfCode #Packaging #LitToSolid

  10. #DevLog: #Anklang #Packaging 🐧

    πŸ“¦ Tried converting DEB pkgs to RPMs via alien & fakeroot
    ❄️ Alien wraps postinstall scripts in uuencoded strings, decodes with #Perl
    πŸ’₯ #Fedora 42 dropped Perl support!

    ❓ Seeking solutions to align Alien v8.95.6 with F42, any ideas? πŸ€”

    #100DaysOfCode

  11. #DevLog: Revised Deb #Packaging in #Anklang

    πŸ“¦ Upgraded #Debian dependencies to 24.04
    πŸ”§ Fixed installation symlinks and prefix
    πŸ’‘ Adjusted paths to /opt/<vendor>/ convention

    #100DaysOfCode #FHS

  12. #DevLog: #Anklang #CI Actions Deep Dive

    πŸ“š Read up on collecting artifacts from multi-workflow jobs
    πŸ§ͺ Tested many {up|down}load-artifact variants in dedicated test repo
    🧟 Studied gh CLI code to automate #GitHub releases
    🐞 Still debugging…

    #100DaysOfCode #GitHubActions

  13. #DevLog: #Anklang #CI Grind

    🐳 Built #Dockerfile twice:

    🚫 First attempt on Debian Bookworm failed due to libstdc++-12 being too old

    βœ… Switched to #ubuntu:22.04 for newer deps

    πŸ› οΈ Updated Makefiles to remove Git dependency from tarball builds (unfinished)

    #100DaysOfCode

  14. #DevLog: #Anklang #SolidJS Influx

    🧬 Fixed some of my #LitElement bugs by migrating to solid
    🧩 Refactored & simplified modal dialog creation

    🎯 Goal: Robust UI with modern reactivity patterns!

    #WebDev #100DaysOfCode

  15. #DevLog: #Anklang: Testing #SolidJS

    πŸš€ Migrated our main UI shell from #Lit to Solid
    ⚑ Using Signals definitely made dealing with reactivity easier
    🧩 This is still a test migration to get a basic feel, but it looks like a significant improvement overall

    #100DaysOfCode #WebDev

  16. @bendelarre @hmiron

    In #Anklang, we have been running into warnings from #Lit like:

    > Element scheduled an update (generally because a property was set) after an update completed, causing a new update to be scheduled.

    You should be good unless you see a warning directing you here:
    lit.dev/docs/components/proper

  17. @hmiron

    For #Anklang we expect to have lots of small updates at the GUI, but the number of components (Tracks, Clips) remains mostly stable throughput the runtime. We do however have some heavy canvas uses (PianoRoll, Spectrogram).

    It wasn't too easy to map these requirements onto Vue2/Vue3, which is why we moved to Lit. However for Lit we also have to bundle a Signals library to implement all needed updates and still see missing updates / complains about too many rerenders at the UI.

    Since we need Signals anyway, it makes sense to look into SolidJS as a UI solution as well.

    So here is a Wiki page with the result of LLMs comparing the two under our requirements:

    github.com/tim-janik/anklang/w

    #100DaysOfCode #WebDev #SolidJS

  18. DevLog: #Anklang Tech Stack Juggling

    πŸ“š Deep dive into SolidJS vs. Lit Components trade-offs πŸ†š
    🐳 Resolved Dockerfile builds missing pandoc
    πŸ§ͺ Looked into combining SolidJS lifecycle with custom class logic

    #100DaysOfCode #WebDev #SolidJS

  19. DevLog: #Anklang Tech Stack Modernization

    πŸš€ Migrated to #TailwindCSS-4 + #Vite (#HMR rocks)

    🐞 Replaced Vue with SolidJS signals + #LitElement

    πŸ’‘ Fixed sidebar overlaps, double-click bugs

    🚧 Quirk debugging still ongoing, but progress is solid!

    #100DaysOfCode #WebDev

  20. I'm publicly committing to the 100DaysOfCode Challenge, aiming to work on #Anklang and tweet about it daily.

    I expect it to be far easier to spend an hour coding every day than to craft an intelligent microblog message about it...

    Join me and learn about it here: 100DaysOfCode.com

    #100DaysOfCode

  21. Happy to share the release of #Anklang 0.3.0! 🎢

    This update brings improved UI & #MIDI handling, bug fixes, and new features like the LiquidSFZ device for #SFZ and #Hydrogen drumkit support. Enjoy enhanced #Freeverb and Blepsynth devices, a new Saturation effect, and CLI improvements. Thanks to contributors @ritschwumm and @swesterfeld for their valuable work.

    github.com/tim-janik/anklang/r
    #AudioSynthesis #NewRelease

  22. *Anklang 0.2.0*

    #Anklang is a digital audio synthesis application for live creation and composition of music. It runs on #Linux and is Free Software.

    The 0.2.0 release improves audio synthesis capabilities, user interface, documentation, performance, packaging, and testing. We support new CLAP (draft) extensions, non-linear mappings for BlepSynth ADSR times, a Jack PCM driver, context help via F1 key, and improved note editing in the piano roll.

    github.com/tim-janik/anklang/r
    anklang.testbit.eu/

  23. Wrote a #LockFree (and Obstruction-Free) memory #allocator for use in low-latency real-time threads.

    Blocks are 64-byte aligned to avoid false sharing, alloc+free calls of the underlying Bucket- and Bump-Allocators are O(1).

    A seperate thread is notified when the Bump-Allocator reaches a watermark. It will then extend the pool of pre-allocated (and pre-faulted) memory, so the Bump-Allocator can continue to serve requests concurrently without syscalls.

    github.com/tim-janik/anklang/b
    #Anklang

  24. Been working on this for a while, now #Anklang finally starts to render parameters for #CLAP plugins. I'll trigger a nightly build soon with CLAP parameter support included.

  25. CLAP - CLever Audio Plug-in API

    Last week the CLAP-1.0.0 got tagged and LWN ran an article about it.

    Today several projects (and a number high profile companies) announced interest in supporting #CLAP for their #DAW and plugin developments:
    u-he.com/community/clap/

    Last weekend I started to implement CLAP support for #Anklang, the API is farily straight forward and Anklang can already recognize the Beta version plugins listed in the above announcement.

    LWN article: lwn.net/Articles/893048/

  26. @zrythm
    I plan to implement the same thing in #Anklang. And for the record, I'd be happy to see that as an opt-out rather than opt-in. The reason is that most professional software behaves that way these days, which influences user expectations.
    Probably a good topic to start a poll for ;-)