Settings

Theme

Makepad- Synthesizer Written in Rust

makepad.nl

173 points by helsontaveras18 3 years ago · 47 comments

Reader

rvdca 3 years ago

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

  • usrusr 3 years ago

    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.

  • rikarendsmp 3 years ago

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

paulgb 3 years ago

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/

chaosprint 3 years ago

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.

  • rikarendsmp 3 years ago

    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.

  • rikarendsmp 3 years ago

    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.

elric 3 years ago

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

berlonce 2 years ago

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

srg0 3 years ago

It's very impressive.

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

beezlewax 3 years ago

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?

  • rikarendsmp 3 years ago

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

3836293648 3 years ago

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)

  • rikarendsmp 3 years ago

    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)

  • lostmsu 2 years ago

    Worked on Windows with Firefox.

thumbuddy 3 years ago

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

alkonaut 3 years ago

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)?

  • rikarendsmp 3 years ago

    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.

bazeblackwood 3 years ago

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

thaway_thaway34 3 years ago

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

  • rikarendsmp 3 years ago

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

rapnie 3 years ago

> Written in Rust

Mentioning that.. is this open source?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection