News for hackers. Stuff that matters.

dakom

Show HN: AwsmAudio – a WebAudio editor with native MCP

https://audio.awsm.fun

Hey y'all,So - the main idea of this is to make a WebAudio synthesis/sequencer tool which humans can use via the UI, but where the big unlock is for agents to drive with MCPIt's semi decent as "make a groovy jazz track", especially for retro sounds - but the real use case is more like "make a jetpack whoosh effect I can control via code at runtime - where the sound changes based on character...

( Read More... | no comments | 2 points | on HN )
Hey y'all,

So - the main idea of this is to make a WebAudio synthesis/sequencer tool which humans can use via the UI, but where the big unlock is for agents to drive with MCP

It's semi decent as "make a groovy jazz track", especially for retro sounds - but the real use case is more like "make a jetpack whoosh effect I can control via code at runtime - where the sound changes based on character health or how much fuel is left"

In other words, the target audience is not musicians (except maybe of the Max/MSP sort), but more like creative coders who want to shape the sound iteratively with an agent, and then use and _drive_ in in a game/simulation.

Fwiw I think this approach is going to be more and more... and I'm working on a renderer/editor tool too (will share separately when ready). What I mean is, there's a lot of "block box" AI tooling out there, and a lot of "add MCP to existing tools", but building new tools where humans get one experience and MCP exposes another layer really just for agents.. I think that's powerful.

Most if it is just mapping the WebAudio primitives to a UI and MCP server - but the AudioWorklet is a bit more interesting in that it expects a WASM file of a particular shape, and then uses that to expose the parameters in the UI and hook in as a Digital Signal Processor. That's the kind of things that is nice for humans, but too convoluted, and agents can use super easily.

As of right now, there's no hosting - so the MCP server is local as is project save/loading.

Repo: https://github.com/awsm-fun/awsm-audio Crates: https://crates.io/search?q=awsm-audio

How does it deal with latency? Afaict remote LLMs need seconds to process, but Tetris can move much faster..
Re:Raising money fucked me up on Sunday January 18, 2026 @11:25AM (#46669102)
I agree wholeheartedly. It's like the energy and motivation has to go somewhere, and talking too much is a vacuum.
Re:Show HN: Space Pong on Wednesday January 14, 2026 @05:00PM (#46624300)
I love this, simple, fun, and easy-to-read source :)

FYI - there's a security problem with the leaderboard, I added the Testy McTester score of 42 to see if it would go through, feel free to delete it

Yeah, I split the crates so `renderer-core` deals with the web-sys part, `renderer` is pretty much plain Rust (and wgsl with Askama templates)

I prefer this for 100% browser-only, but that's a niche. I do think wgpu makes more sense when you like the WebGPU headspace but want to target other backends (native, mobile, VR, etc.)

Mostly because I want insight and control at a lower level, which breaks down into two different use-cases:

1. Debugging. The nature of bugs in this space is a lot more of "it doesn't look right on the screen" as opposed to "it breaks compilation", so I want to easily do things like peek into my buffers, use native js logging, etc. It's just a lot easier for me to reason about when I have more manual control.

2. Leaky abstractions. wgpu is a pretty low-level but it can't avoid the pain that comes with different backends, async where it should it shouldn't be, features that aren't available everywhere, etc.

That said, it would probably be pretty straightforward to convert the renderer into wgpu, most of the data structures and concepts should map cleanly

This is the culmination of a long journey — it started in TypeScript, moved through WebGL1 with Rust bindings, then WebGL2, and now finally WebGPU. Woohoo :D

AwsmRenderer is a browser-native WebGPU renderer written in Rust, using web-sys directly (not wgpu). It’s intended to be high quality and ergonomic for typical gamedev use-cases, while keeping the API surface relatively small and explicit.

Fair warning: this is fresh off the push and only lightly tested so far. It requires a WebGPU-capable browser and is currently intended for desktop use.

Longer-term, the goal is to empower AAA-like gamedev in the browser with WASM. Internally, the API centers around keys that can be converted to/from u64, which should make it easier to move data across workers or future WASM component boundaries, and to integrate with physics engines or core game code.

Source: https://github.com/dakom/awsm-renderer

Curious to hear thoughts from folks with WebGPU, Rust, or browser graphics experience.

Re:Claude Code on the Web on Tuesday October 21, 2025 @06:18AM (#45654230)
fwiw I'm happy to see this - been trying to tackle a hairy problem (rendering bugs) and both models fail, but:

1. Codex takes longer to fail and with less helpful feedback, but tends to at least not produce as many compiler errors 2. Claude fails faster and with more interesting back-and-forth, though tends to fail a bit harder

Neither of them are fixing the problems I want them to fix, so I prefer the faster iteration and back-and-forth so I can guide it better

So it's a bit surprising to me when so many people are pickign a "clear winner" that I prefer less atm

I wouldn't dismiss personal anecdotes any more than I'd dismiss someone claiming they saw something in a reputable journal but can't remember the citation.

In other words, yeah, don't just believe it at face value- but if you have good reason to trust the source, it's worth considering and checking into further.

In this case it's not just one individual but many people saying that THC and CBD are almost opposites if eachother, for example in how they affect anxiety.

Definitely worth proper research imho, could lead to medication that has more of the pros and less of the cons

Re:Learn Makefiles on Friday June 20, 2025 @09:02AM (#44327313)
Funny coincidence, I use this often and just opened an issue earlier today: https://github.com/go-task/task/issues/2303 :)
Re:Learn Makefiles on Friday June 20, 2025 @08:59AM (#44327288)
Taskfile and Justfile are pretty solid.
Re:Making Video Games (Without an Engine) in 2025 on Tuesday May 20, 2025 @04:42AM (#44039245)
I've never delivered a game anyone's really paid for, so take with a grain of salt, but imho the big win when you are writing your own stuff is you get to decide what not to include.

That sounds obvious but it really isn't. One example: maybe you don't need any object culling at all. Nobody tells you this. Anything you look up will talk about octrees, portals, clusters, and so on - but you might be totally fine just throwing everything at the renderer and designing your game with transitions at certain points. When you know your constraints, you're not guessing, you can measure and know for a fact that it's fine.

Another example: shader programming is not like other programming. There's no subclassing or traits. You have to think carefully about what you parameterize. When you know the look you're going for, you can hardcode a bunch of values and, frankly, write a bunch of shit code that looks just right.

The list goes on and on... maybe you don't need fancy animation blending when you can just bake it in an external tool. Maybe you don't need 3d spatial audio because your game world isn't built that way.

Thing is - when you're writing an _engine_ you need all that. You don't get to tell people writing games that you don't really need shadows or that they need to limit the number of game objects to some number etc. But when you're writing a _game_ (and you can call part of that game the engine), suddenly you get to tweak things and exclude things in all these ways that are perfectly fine.

Same idea applies to anything of course.. maybe you don't need a whole SQL database when you know your data format, flat files can be fine. Maybe you don't need a whole web/dom framework when you're just spitting out simple html/css. etc. etc.

I think this headspace is pretty common among gamedevs (iiuc large projects often copy/paste dependencies and tweak between projects rather than import and support a generic api too)

Re:The demoscene as a UNESCO heritage in Sweden on Monday March 31, 2025 @10:16PM (#43542146)
There's also some cool stuff brewing in the AVS space to allow nondeterminism, GPU, storage, and more.. for example, WAVS executes stuff off-chain in WASI components, and brings the result on-chain (secured by re-staking via Eigenlayer etc.)- so there's a roadmap to do things directly in wasi-gfx powered shaders and more low-level access like that
Re:Hyperlight WASM: Fast, secure, and OS-free on Wednesday March 26, 2025 @11:23AM (#43483237)
Cool. Trying to understand the value-add here, how does this differ from executing via wasmtime?
Re:Show HN: Rust Vector and Quaternion Lib on Friday March 07, 2025 @12:35AM (#43287586)
bevy_math also uses glam, re-exported in the prelude: https://github.com/bevyengine/bevy/blob/cc69fdd0c63ea79fda4f...
Re:WASM Wayland Web (WWW) on Saturday March 01, 2025 @02:50PM (#43222955)
Re:WASM Wayland Web (WWW) on Friday February 28, 2025 @08:41AM (#43205461)
Eh.. lots of projects targeted mobile app stores by authoring in Flash and using the GPU accelerated stuff. Starling was a semi-blessed framework. Worked perfectly well, no battery drain. Lots of "native" apps were authored that way (and still are, you see the same approach with Unity etc.)

Browser plugins could have been fixed to catch up, the VM itself wasn't the problem in terms of drain

Re:WASM Wayland Web (WWW) on Friday February 28, 2025 @08:37AM (#43205408)
While some of this is true, some of it is not (deep links worked fine, there was a brief time where hidden html was encouraged and worked just as well for search engines to pick up, etc.)

More to the point though- Flash didn't shine as a regular website thing (Adobe people used Dreamweaver for that, if anything). It was a game/application development tool. Most of the time you didn't need any of these web-friendly things, same way you'd expect every game to have a different menu system.

It was an awesome time for innovation and creative thinking. Not everything is a flex box. I miss those days

Re:How Does Ada's Memory Safety Compare Against Rust? on Monday February 10, 2025 @01:32AM (#42997508)
I'd agree it's largely the human factor, but maybe from a different angle. Rust has got the "there's a crate for that" factor, like JavaScript, which helps onboard people who are afraid of getting stuck writing everything from scratch.

For example, serde (and serde_json, toml, etc.) is a gamechanger, as is tracing, reqwest, and many others.

So, maybe less about the language itself for many people, but more about the human factor of overcoming fear of being stuck on an island

> That's not me sanctioning the Nahal Haredi citing activity akin to torturing civilians

What are you talking about? Read the article you linked to. A single detainee had a heart attack and the accusation is about using zip ties and a gag. Zip ties are absolutely normal. A gag is a bit much but there are situations in the field where it's reasonable. On top of that there were internal investigations done by the IDF because no unit is above the law or policy of the army which is absolutely NOT about genocide or anything near it. It is shameful that you try and cite this as though it were something more damning than it is.

> You should know that "direct orders" are rarely given

I am telling you what my direct orders were throughout training and in the field. I had very clear instructions of protocol about minimizing violence, frankly at the risk of our own lives even under threat from an armed enemy.

> Btw, the leader of the Third Reich started with the intention to ethnically cleanse...

What a ridiculous jump! Rabbi Kahane had a legitimate point about the incompatibility of Western democracy and a thoroughly Jewish state of Israel. He advocated for peaceful resettlement and very much wanted good relationships between a Jewish State of Israel and the neighboring Arab/Muslim countries. Again, I am not saying I agree with his solutions, but objectively he was pointing out a logical dilemma that can't be solved by wishful thinking.

Likening him to a Nazi is horribly off and a terrible insult to a man who lost family members to the holocaust (one of his family, Alice iirc, is a well known artist who I once saw speak at Yad Vashem, as it happens).

> Just another antisemite...

>> ?

It's pretty clear to me when you misquote and twist all kinds of sources to suit false narratives. That takes a certain level of commitment.

But lets keep it simple

I have two questions:

1) How would you propose to maintain a Jewish State of Israel in light of a growing Arab/Muslim population in her borders?

2) Is there any legitimacy at all to the borders outlined in the Torah (i.e. are Jews allowed to practice their religion, which dictates hundreds of laws specific to the land of Israel)?

Re:WASM GC isn't ready for realtime graphics on Sunday January 19, 2025 @08:10AM (#42756653)
> overhead of each API call

Yeah, that's an issue, esp with WebGL.. but you can get pretty far by reducing calls with a cache, things like "don't set the uniform / attribute if you don't need to".. but I hear WebGPU has a better API for this, and eventually this should get native performance.. though, I also wonder, is this really a bottleneck for real-world projects? I love geeking out about this.. but.. I suspect the real-world blocker is more like "user doesn't want to wait 5 mins to download AAA textures"

> Nerfed timers

Yeah, also an issue. Fwiw Mainloop.js gives a nice API for having a fixed timestep and getting an interpolation value in your draw handler to smooth things out. Not perfect, but easy and state-of-the-art afaict. Here's a simple demo (notice how `lerp` is called in the draw handler): https://github.com/dakom/mainloop-test

Re: multithreading, I don't think that's a showstopper... more like, techniques you'd use for native aren't going to work out of the box on web, needs more custom planning. I see this as more of a problem for speeding up systems _within_ systems, i.e. faster physics by parallelizing grids or whatever, but for having a physics WASM running in a worker thread that shares data with the main thread, it's totally doable, just needs elbow grease to make it work (will be nice when multithreading _just works_ with a a SharedArrayBuffer and easily)

Lol, you're clueless, I served in Nahal Hareidi myself. Directly. And you're going to try and spin me on this? Sickening.

I was directly ordered to NEVER attack civilians. In fact, I was even ordered to NEVER shoot terrorists unless they shoot first. In cases of clear danger but no shots (like someone approaching with a knife), the orders were to shoot in the air with a warning, then if necessary try to shoot in the legs.

As a Nahal Hareidi soldier I went on a patrol in a village, with Druze drivers, and was instructed to only use rubber bullets when we were attacked with rocks.

Speaking of rocks, the quote I am talking about from the Hamas charter is:

"Article 7: "The Prophet, Allah bless him and grant him salvation, has said: "The Day of Judgement will not come about until Moslems fight the Jews (killing the Jews), when the Jew will hide behind stones and trees. The stones and trees will say O Moslems, O Abdulla, there is a Jew behind me, come and kill him."" [Page 4]

So.. either you're deliberately twisting the narrative to suit your agenda, or you're ignorant.

I want to believe the latter based on your handle, but you misquoted too many sources for me to believe that's the case.

Just another antisemite looking for evidence to support a blood libel when there is no evidence at all.

But, hey, let's go further. Even if you go to the absolute extreme right, what Rabbi Meir Kahane actually said was that Israel can't simultaneously exist as a Jewish state and a Western democracy because Arab population will gain too much voting power and abolish the Rabbanut's jurisdiction over things like shemittah, marriage, etc.

It's a rational point, and he didn't have good solutions, he merely pointed out that the most peaceful logical solution was cooperative resettlement of Arabs outside of Israel. Not forced. I am not saying I agree with his policy, I am saying it was not one of genocide.

Some of his followers took to violence, but even that was typically based on the reality of ongoing skirmishes, and we're talking extremely small numbers. You probably have more representation per capita of violent gangs in America. Doesn't reflect the norm by any means, not even of Kahane supporters, nevermind normative Israeli government.

Genocide was never the policy of Israel, comparing it to Hamas is disgusting.

Yes- it actually matters that I can "chill" with Arab Muslims in Israel but I would get murdered in Gaza based on my nationality and/or religion alone. It really makes a difference.

Imagine actually living in Israel where I bought my meds yesterday from an Arab pharmacist and watched my kids play in the park the other day with Muslim (presumably Arab) children.

I really wish the world would stay out of an issue they know nothing about.

The very word "Palestinian" is _ridiculous_, there is no such nation, it's literally the Arabs who seek war and rejected every offer of peace from Israel, Egypt, Jordan, and Lebanon.

Look at the Jordanian flag next to the "Palestine" one. Google where Arafat was born. Look at the actual Hamas charter which says to kill every Jew no matter what.

Arabs and Muslims who do not want to annihilate Israel absolutely 100% do enjoy equal rights here. I live here. I see it first-hand nearly every day of my life. It's a democratic country. Arabs and Muslims are in the Knesset. Whether or not they should be in a Jewish homeland is a different discussion, fact is they are.

Odds are your "Palestinian" friend was offered the opportunity for Israeli citizenship and rejected it because he's been brainwashed by a downright stupid narrative of a national identity that never existed until the 1960's when all out war failed.

I buy my medicine from Arabs and chill in parks with Muslims, but then I have to run into a bomb shelter multiple times a week and cope with the 19 year old in my neighborhood who got killed fighting homicidal maniacal terrorists.

So, no, this isn't about hating an ethnic group. Palestinians are not an ethnic group. It's about hating antisemetism and the pattern that keeps happening throughout history where people choose to hate Jews so much they make up all kinds of nonsense to justify it.

Nobody is going to answer you because it's not cool these days to admit antisemetism openly, you have to pretend you're a Palestine supporter, and the cognitive dissonance when confronted with facts is too embarrassing for people to openly admit on a forum that prides itself on logical reasoning
Re:Rust library for building no-boilerplate CLI apps on Tuesday December 03, 2024 @10:03PM (#42314139)
I've been using Figment [0] Needs a little bit of hand-holding when you have structs with different field names, but otherwise does everything I need for that particular part of the problem.

[0] https://github.com/SergioBenitez/Figment

Love this :)

Small, related anecdote: back in the year 2001 or so, this is in the same family of how I built websites...

The difference is I wrote in in C as Apache Modules. So, like, most people were using other people's C modules (like PHP or CGI), but once you dug deeper and you wrote your logic/site _as_ a C module, it was so much more fun (and powerful too).

I didn't have much of a templating language, so the answer to "can we change the text on this page?" was usually, "sure, just give me a few minutes to recompile the whole Apache server" :D

Fun times

Older »