LMMS / LMMS/lmms

Use Godot for the user interface and input

Open
#6,194 80 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

### Enhancement Summary
I propose that LMMS should switch to using Godot, rather than QT, for its user interface and input handling. Possibly audio as well, although I'm not sure if Godot's sound system would work well for what LMMS needs. The backend code would become a GDExtension plugin. I would recommend going with 4.0.dev right away, even though it's not stable, to avoid porting everything from 3.x to 4.0 later.
#### Justification
There are several reasons why I believe this to be a good idea:

- QT is massive. v5.15.12 for Windows, which I have installed currently, is 2.28GB. Godot 4.0.dev (https://github.com/godotengine/godot/commit/77721b35ba21f2e7e8bb42cf415fccb018517843) with debug symbols is only 193MB.
- With Godot the UI could be edited with an editor, rather than through code.
- UI/UX elements could be handled in a GDScript, a higher-level language designed specifically for Godot, if desired. QT does have QML, so this point on its own isn't a win for either option.
- However, Godot makes application plugins incredibly simple. All you have to do is load a `.pck` containing a plugin scene, instance said scene, and the plugin is running with full access to the UI elements. This plugin would likely be written in the aforementioned GDScript, which is easy to use.
- It would fix the situation where LMMS has to be installed on Windows in order for the executable to have access to the assets.
- It would be a logical point to implement a whole bunch of big UI changes, notably #1911. If this proposal is accepted I'll gladly try implementing it and overhauling the UI.
#### Mockup
Sorry to inflict my lack of art skill on your eyes :)
![LMMS-Mockup](https://user-images.githubusercontent.com/69441745/136985255-c2529550-e0c2-4467-ae75-8fff8ef73a0b.png)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are identified. Start by reviewing LMMS's existing Qt UI and input handling, then assess the proposed Godot 4.0.dev and GDExtension boundaries. Done would require an agreed migration design covering UI, input, possible audio, assets, and plugin integration.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.