greetings, i want to build a daw (digital audio workstation), but i have no idea where to even start. here are my needs and the options i’ve found:

my needs:

  • load and keep things (audio, midi) in memory
  • cross-platform compatibility is not a requirement

the options i’ve found:

  • flutter
  • gtk/qt
  • raylib (with zig)
  • webassembly (with zig)

[rejected] flutter: the first option that came to my mind was flutter. i thought it would give me a quick start in laying down the ui, but i don’t think it has the capability to fulfill my needs (please correct me if i’m wrong)

gtk/qt (with zig): i wonder if qt provide bindings for zig

raylib (with zig): it’s cool (my choice as of now)

[rejected] webassembly (with zig): it would be an ultimate comfort to build this way ig, but is it possible to make that web app into desktop one (like tauri or something)?

id really appreciate your opinions and advice

ps: i hope i’m clear. i got a headache searching about these. i’ll update this post for more clarity later

final note

Thank you guys for all your opinions and advises. Thanks for explaining the limitations with gtk, things with qt and flutter. That kotlin compose thing was cool too. Thanks for mentioning yabridge thats gonna be helpful. It might not seem like it, but I did listen to your thoughts, and stuck with zig and raylib. Thanks a lot

12 points

I’ve started building a lightweight daw mostly for mixing songs together rather than any actual serious music production. Currently only supports volume and bass envelopes, and dragging tracks around. I’m planning to open source it when it’s a bit more polished. It’s written in rust and I’m using egui for the frontend.

permalink
report
reply
5 points

that’s so cool! it looks good too. i might need your help in the future.

permalink
report
parent
reply
6 points

Google just killed flutter. Just so you know. They do that a lot. Be careful

permalink
report
reply
2 points

No they didn’t. It literally got an update this week (3.22). Laying off part of the team (which is worrying) is not the same as actually killing it.

permalink
report
parent
reply
3 points

Raylib sounds great. I would avoid gtk/qt. Enlightenment library also there but might not have zig bindings.

permalink
report
reply
3 points

I recommend using qt for the interface, for audio use jack, it is better for music production, if you want to load vst plugins into the program, you can use yabridge

permalink
report
reply
2 points

I would always go with something cross platform to save you or someone else effort later. I recommend Python to save yourself effort too.

Checkout kivy.

permalink
report
reply
1 point

isnt python slow?

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 2K

    Monthly active users

  • 2.9K

    Posts

  • 16K

    Comments