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

9 points
3 points

I want to use Raylib, but mentioning it here on the fediverse doesn’t get much of a response (I can’t see a raylib community from my instance). My choice of language probably doesn’t help, though.

My first issue is wanting vertex colors on 3D models and I am not getting this (this may be a problem with the bindings I’m using, naylib(nim-lang)). The second would be needing guidance for the 2D polygon text loader that I started.

Maybe I could make simple GUI applications with raygui, but I don’t currently really have many viable ideas on what I would want to make.


To OP: Another potential option is using Godot w/bindings. Design is pretty fast and flexible, then using signals is super easy.

I’ve tested some frameworks (specific to my language, so not really helpful to most), the one that I liked more said it was declarative user interface framework based on GTK though I would prefer a similar thing for Qt and there wasn’t an ability to automatically scale text size to better fill the available button size (I was testing an adventure-book reader and hoping to use unicode characters).

Frameworks for single page applications (or some other browser-based tech) might be ok for simple stuff. Similarly, I’ve liked the idea of TUI frameworks (yeah, because htop) but haven’t really tried that yet.

permalink
report
parent
reply
1 point

IIRC, Qt comes with its own declarative language. That might be why you can’t find any bespoke ones.

permalink
report
parent
reply
3 points

i recommend gtk’s libadwaita. it saves alot of time. It has JS Python rust and C bindings.

permalink
report
reply

Bad idea. Very bad idea, especially for more complex projects.

permalink
report
parent
reply
1 point

Why? It is solid for me

permalink
report
parent
reply

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.

permalink
report
parent
reply
2 points

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

permalink
report
parent
reply

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.

permalink
report
parent
reply
4 points

I’ve recently used dioxus with rust to build a native app with webview. Way cheaper than electron and the like.

permalink
report
reply
28 points
*

QT is a cross platform UI development framework, its goal is to look native to the platform it operates on. This video by a linux maintainer from 2014 explains its benefits over GTK, its a fun video and I don’t think the issues have really changed.

Most GTK advocates will argue QT is developed by Trolltech and isn’t GPL licensed so could go closed source! This argument seems to ignore open source projects use the Open Source releases of QT and if Trolltech did close source then the last open source would be maintained (much like GTK).

Personally I would avoid Flutter on the grounds its a Google owned library and Google have the attention span of a toddler.

Not helping that assessment is Google let go of the Fuschia team (which Flutter was being developed for) and seems to have let go a lot of Flutter developers.

Personally I hate web frontends as local applications. They integrate poorly on the desktop and often the JS engine has weird memory leaks

permalink
report
reply
4 points

Here is an alternative Piped link(s):

This video from 2014

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I’m open-source; check me out at GitHub.

permalink
report
parent
reply
1 point

We just need a native os-js/webtop then the web frontends would make sense… Till then they feel bloaty (looking at discord)

permalink
report
parent
reply
10 points

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

permalink
report
reply
0 points

Lol

permalink
report
parent
reply
5 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

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

  • 7.9K

    Monthly active users

  • 6.3K

    Posts

  • 175K

    Comments