Hacker News new | past | comments | ask | show | jobs | submit login
Makepad- Synthesizer Written in Rust (makepad.nl)
173 points by helsontaveras18 on July 4, 2023 | hide | past | favorite | 47 comments



For anyone interested, the main author (if I understood properly) did a presentation at RustNL on the UI aspect that was quite impressive performance wise : https://youtu.be/rC4FCS-oMpg


Technically, that talk is by the author of the UI system/IDE that uses the synthesizer as an extended hello world. The synthesizer itself is by a different guy ( https://thisisnotrocketscience.nl ) who's been calling his bassline synths somethingmetallicfish since almost forever.


The RustNL presentation is a nice up to date view of where we are with makepad.


For those who haven’t seen it, Makepad is also an in-browser code editor with an open-source UI toolkit. Looks like this synth is one of the examples of the UI toolkit.

https://makepad.dev/


press option on mac. it's amazing


Pressing Alt seems to invoke the same on linux/gnome, probably alt key on windows as well.


That is fantastic


What does it do?


It sort of zooms out and shows top level lines at regular size, but a mini-map like view of code underneath the top level. It's very smooth too.


It feels much more snappier than Electron-based apps.


Rather than going through the browser’s rendering engine, it’s entirely rendered on the GPU. Super impressive.


Very impressive UI work with Rust. As @rvdca pointed out the author had a great presentation. Definitely recommend it.

I notice that there is a bug when I open the console with cmd-option-J: a note will be triggered and stay there forever.

The audio worklet uses postMessages (https://makepad.nl/makepad/platform/src/os/web_browser/audio...), which is not GC free.

For those are interested, I am maintaining https://glicol.org/ which is also an Rust/WASM audio app in browsers.


We also have a much newer version however the workload of 'everything' has been a bit overwhelming since we aren't actually making a synth(thats just an example application) but an IDE, designtool and a framework.


So is it going to be a Figma style tool?


Yep, with a visual studio style IDE for Rust. so Big project.


Why didn't you integrate with VSC?


We might, but only after we made our own. Our editor will finally break the barrier of inlining widgets/controls performantly. The editor is one piece with the visual designer (2 sides of a coin)


Sounds cool I'll be keeping an eye on you guys


What's Figma?


Figma is an online designtool mostly used for doing UI designs.


The audio worklet doesnt use postmessages anymore btw. I removed that way of commmunicating with the main thread. It's all shared memory in wasm now.


Cool. There is no doubt that you guys can nail it.


As a hardware synth lover, I'm pleasantly surprised by how good this sounds. Great work!


Thanks :) All the work of 'this is not rocket science'


It seems to be able to target app builds for everything but IOS. Is there a plan/timeline to add it?


It's very impressive.

I'd suggest to reset sliders on double click like most plugin instruments do.


This is awesome. I saw a talk on this the other day on YouTube.

This looks good even on my crappy phone. Is there a reason though that the html on hackernews renders text more sharply than the text on the makepad apps?


Yea we're struggling a bit with super sharp rendering on lower DPI screens. It's on our todolist.


Cool and very smooth. Shame Firefox doesn't support it (yet?).

It's very blurry though? Seems like it's trying to run at ~1080p (on a 1440p screen)


It shouldnt be 'that' blurry tho, sounds like maybe you have a browser-zoom level thats not 100%. I try to deal with that, but there are browsers that mess it up (safari can for instance)


Worked on Windows with Firefox.


Looks like old school synth software in a good way. Cool


Does anyone know if the native UI framework supports being "hosted" in the sense that makes it useable for audio plugin dev (VST3 and others)?


We can definitely support it being hosted, however this is extra work on the platform side. VST is a licensing nightmare tho, i didnt really feel like stepping into that for now.


Maybe try going the CLAP way instead?


Yea that one is highest on the list.


The 6th note row from the bottom isn't working for me, for some reason! Otherwise, very cool.


I got just a blank page in dark grayish/brown color


What browser/OS are you on? Works fine here. Needs wasm+webaudio worklets and shared memory to work


> Written in Rust

Mentioning that.. is this open source?


https://github.com/makepad/makepad

It's the iron fish project.


The Makepad fractal zoom example crashed my browser in all kinds of of ways that a browser is not supposed to be able to crash.


I was disappointed in that example for a different reason. it ran on my phone, but when I pinch -zoomed (which is what I assumed a zoom widget built for web was supposed to support) it kept zooming towards the same point, which was a boring black spot. it didn't pan and zoom like I would have expected.


Good point, i'll work on it


It's using lots of workers and SIMD. What is your OS/browser?


Wait what, that's a thing on web now? I thought simd was only on native, not wasm


I saw mention of it in the emscripten docs but haven't experimented yet:

https://emscripten.org/docs/porting/simd.html




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: