+1 vote

I'm wanting to build a software with Godot engine. Control nodes work great for regular GUI elements like buttons, menus, etc. But I need to have a viewport in the middle of an app with some complex UI. This software is gonna be for music creation, a DAW (digital audio workstation), so I have to have tracks shown in the middle and ability to move, resize, edit them. Like from GarageBand or Logic or Ableton or FL Studio or any daw, the colorful rectangles. My initial idea was to use node2d somehow, but I'm hesitating about what to do.

Godot version 3.2.3-stable
in Engine by (97 points)

You don't need Viewport nor Node2D for your "tracks". Everything could be done with Control based nodes, as they specifically designed to work on GUI layouts.

And you'd better state a concrete question: then you can get a concrete answer.

Sorry, didn't mean viewport node...
What about control nodes? Are they capable?

What control node specifically and how should I use? The question is so inconcrete because I need advice from someone who has used it before. I don't know much myself, if I did I wouldn't have even posted here.

What control node specifically and how should I use?

Specifically for what? Well, "I want something like Ableton" is not a concrete question and requires too much efforts (including guessing) to answer.

Aside of this, from what I understood, you could use just Control and draw on it with CanvasItem methods or ColorRect + same + shaders. UI in Godot is very powerful and complex (and sometimes quirky too). You can use themes and individual styles, and sometimes combinations with Node2Ds too :-) to achieve required look. The power of Control and its distinction from Node2D is that they designed to wok together in layouts.

Again, I think it's more practical, if you'd begin learning (by starting a prototype project) and once you hit a real problem, you'll be able to form a specific question(s) for a collective benefit.

Ok.....
I need something like ableton pls... just paste code here pls... lol

1 Answer

+1 vote
Best answer

Maybe using some TextureRect to draw the rectangles. Then use a script to spawn them where ever you want. For the windows (or viewports) in the middle, maybe using the WindowDialog under the Popup node can help.

I am reading an article related to customizing the outlook of WindowDialog, it may help you. The link is below.

https://www.reddit.com/r/godot/comments/eznx7r/how_do_i_customize_the_top_part_of_a_windowdialog/

by (315 points)
selected by

Thank you for your anwser! But can you add some patterns on top? Like this

I think it can do it, the TextureRect surely can display images. However, you may need more scripts to generate those patterns.

Ok, thanks, will try to implement this

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.