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

    • @LeFantome
      link
      21 month ago

      Well, it is a bad idea if you are building anything not intended to be exclusively a GNOME app.

      • Andromxda 🇺🇦🇵🇸🇹🇼
        link
        fedilink
        English
        31 month ago

        It’s also a bad idea if you want to build anything that’s more complex than GNOME’s single-purpose apps that lack all kinds of features. Building something as complex as a DAW would be a nightmare with libadwaita.

      • Andromxda 🇺🇦🇵🇸🇹🇼
        link
        fedilink
        English
        51 month ago

        Libadwaita has been specifically designed for simple GNOME-style applications that only have one purpose and don’t include many features. I wouldn’t recommend it for complex project like a DAW.

        • Possibly linux
          link
          fedilink
          English
          11 month ago

          It is made to be simple but libadwaita apps being single purpose is not true. It is a good design choice but some apps are naturally complex such as gnome settings.

            • Possibly linux
              link
              fedilink
              English
              11 month ago

              You do not need to follow the gnome standards. Its good practice if you do but not required.

              • Andromxda 🇺🇦🇵🇸🇹🇼
                link
                fedilink
                English
                01 month ago

                You don’t need to, but the entire framework has been specifically designed around this GNOME development philosophy, making it basically unusable for anything else. There are much better frameworks like Qt (C++/QML, but has bindings for almost every language), Iced (Rust), Avalonia (if you use C#) and many others