Posted by david927 3/30/2025
Ask HN: What are you working on? (March 2025)
The final plugin is an equalizer which will be focused on loudness but expand the filtering to include more advanced equal loudness contours.
Using `midiex` for Elixir I’ve written a fully fledged driver for Ableton Push, letting me use it as essentially a 4-deck version of Pioneer’s DDJ-XP2 sub controller with Rekordbox.
It implements basic statefulness so that the rotary encoders can be used, as well as a paging system so the 64 performance pads can be mapped to different functions. It also supports track browsing and loading, which is helpful if you want to use say DVS with an external mixer and don’t want to be hunched over a laptop dragging tracks around.
It’s also got some additional capabilities which I’ve not seen on other hardware like dedicated faders for stem separation levels.
It’s been a great exercise in combing two hobbies, learning about MIDI as well as being able to personalise my setup for my own use. I haven’t open sourced any of it just yet whilst I’m still tweaking things but I’d be interested in collaborating with anyone who also has one of these devices and has programmed it. I’m looking to use the display on it next, whose protocol Ableton have some (albeit scant) documentation for.
It goes beyond just plotting notes there are options to show scales using intervals, roots, note names, etc., plus a chord mode that highlights triads, voicings, and inversions. I’ve found it useful for routine practice start the built-in metronome, pick a voicing or scale pattern, and run through it in time.
There are also pages covering theory topics like modes and progressions, but the fretboard’s the main draw. It’s something I built for myself and figured others might get some use out of too. I plan to keep adding to it as I think of more things I want to reference probably adding support for additional strings or tunings next?
The other solves a very specific problem (mostly out of laziness) I do most of my playing using the standalone Neural DSP application on Windows, but I don’t really want to do any mixing in it. So I built a dead simple recording application [2] that doesn’t require firing up a DAW, but still offers a decent UX. It lets me quickly capture riffs and ideas, and later I can just send them to my Mac for mixing if anything seems promising. Haven’t shipped it yet, but I’ve been using it daily and having some friends try it out.
I think it's doable by dynamically creating lambdas based on test cases I define in one way or another, perhaps like mocked integration services, that does nothing but validate if the event from SFN matches a schema, and that the mocked response also matches a schema.
My concern is that I can't find prior projects doing this. My use case is mostly (exclusively at the moment) calling out to lambdas, so perhaps I can get away with this kind of type checking. But it's just weird that something like this doesn't already exist! Past experiences have taught me that if no one have tried it before, my idea is usually not that good.
Let me know what you think!
(Would have liked to use durable execution which totally solves the typing issue, but can't in this case)
Monokai Pro has been running for more than 5 years now for VSCode and Sublime Text, and the original Monokai almost 20 years.
e.g. you init a project (`obelisq init`) and use `obelisq set -k <key> -v <value>` (e.g. `obelisq set -k SERVICE_KEY -v ABCDEF`) to set your environment variables:
OBELISQ_PUBLIC_KEY=0344ecbf96c3e01262402247b97231a22c0197d17121dd9c7d1b999faed1d54ac4
SERVICE_KEY=047ca044c1a59114246d5c5122ad1bdecfafa3c999fae5629181df54[...]
MY_SECRET=049072d4ffc233ed77f8d682d9fe3a75114987d496b06d44269600e8be[...]
When you run `obelisq generate`, code will be generated that allows you to do this: // `get` is type-safe, `mySecret` is number
// decryption of the value occurs when `get` is called
const mySecret= obelisq.get('MY_SECRET')
Partially inspired by my own article: https://www.carlos-menezes.com/post/type-first-configI was surprised that such a feature was not available on any existing calculators and so I wrote my own. Runs on macOS, iPhone, and iPad.
BVCalc Lite (free version, no ads): https://apps.apple.com/app/bvcalc-lite/id6544784034
BVCalc (paid version): https://apps.apple.com/app/bvcalc/id6560108221
- A library for fast, accurate matching (geocoding) of UK addresses that uses Splink under the hood: https://github.com/RobinL/uk_address_matcher
- An npm library that generates maths mental arithmetic problems that align to the UK national curriculum, that can be used to power maths games: https://github.com/RobinL/maths-game-problem-generator
- A breakout maths game that uses the above: https://github.com/RobinL/maths-game-problem-generator
- Build dependency graph from dependency pairs.
- Generate the topological sort from the graph.
- Ordered parallel task sets (i.e. subsets of nodes that can run in parallel, within the overall topological order).
- Cycle detection and reporting the cyclical nodes.
https://github.com/williamw520/toposort
It's feature complete, but I still have problem publishing it as a library. Kept getting "unable to find module 'toposort'" error when importing it in a separate project.
Edit: Alright, finally figured out why the module was not published. The default project creation template in Zig 15 uses createModule() in the generated build.zig, which creates a private module. Switched to use addModule() to create a public module and my library can be imported and used by other projects.