{"id":30614180,"url":"https://github.com/advanced-effects/muse-qml-app-template","last_synced_at":"2026-05-18T06:34:34.900Z","repository":{"id":308720557,"uuid":"1023149071","full_name":"Advanced-Effects/Muse-Qml-App-Template","owner":"Advanced-Effects","description":"A QML app template that looks and feels good, which integrates Muse's UI Components library.","archived":false,"fork":false,"pushed_at":"2025-08-13T10:20:46.000Z","size":21084,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-30T07:02:30.306Z","etag":null,"topics":["qml","qt","qt-gui","qtquick","qtquick2"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Advanced-Effects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-20T16:20:45.000Z","updated_at":"2025-08-13T10:21:42.000Z","dependencies_parsed_at":"2025-08-07T14:42:51.874Z","dependency_job_id":null,"html_url":"https://github.com/Advanced-Effects/Muse-Qml-App-Template","commit_stats":null,"previous_names":["advanced-effects/muse-qml-app-template"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Advanced-Effects/Muse-Qml-App-Template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Advanced-Effects%2FMuse-Qml-App-Template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Advanced-Effects%2FMuse-Qml-App-Template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Advanced-Effects%2FMuse-Qml-App-Template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Advanced-Effects%2FMuse-Qml-App-Template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Advanced-Effects","download_url":"https://codeload.github.com/Advanced-Effects/Muse-Qml-App-Template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Advanced-Effects%2FMuse-Qml-App-Template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272815843,"owners_count":24997662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["qml","qt","qt-gui","qtquick","qtquick2"],"created_at":"2025-08-30T07:01:35.326Z","updated_at":"2026-05-18T06:34:34.888Z","avatar_url":"https://github.com/Advanced-Effects.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Muse App Template\n\n![Advanced Effects screenshot.](https://raw.githubusercontent.com/Advanced-Effects/Muse-Qml-App-Template/refs/heads/main/screenshot.webp)\n\n*A screenshot of Advanced Effects, my own application based on this template, with a Menu and a Canvas.*\n\nWhen the MuseScore team decided to rewrite their entire UI to make it more modern, they rewritten it from Qt Widgets to a framework called QtQuick (or QML). This framework gives you more control over how the UI looks, with the contraposition that it's harder to make a UI that feels native to desktop.\n\nSo, since they planned on writing a desktop UI, they developed a set of components, UI components. These components are inside [MuseScore's framework]().\n\nSo, you want to write an application that feels modern? You don't need to write your own set of components, you can just use MuseScore's components!\n\n## How we use MuseScore's framework\n\nWe do it the same way MuseScore or Audacity does. We download the [Muse framework](https://github.com/musescore/MuseScore/tree/master/src/framework) folder and add it to our application.\n\nWe then create a [usual Qt QML application](https://doc.qt.io/qt-6/qmlfirststeps.html), and load the framework's modules using the abstraction of `IModuleSetup` (more on that later).\n\nFinally, in the UI code, we use MuseScore's widgets like `DockWindow`.\n\n## Warning\n\nIf you want to **use Muse's components**, you **are required to make your app open source.** \n\n\u003e This application is licensed under GPL-3.0. That means you **can technically profit** from this app, but you **must redistribute your changes** to this app **publicly** under the **same license** (GPL3). This application was built thanks to dozens of people that prefered to keep the source open to everyone :) (MuseScore, Friction, Glaxnimate...)\n\n## Project documentation\n\n- A document explaining the MuseScore source code + general tips on how to understand other people's code: [Understand Source Code From Other People.](https://github.com/Advanced-Effects/Understand-Source-Code-From-Other-People)\n- Understand the [app/](https://github.com/Advanced-Effects/Muse-Qml-App-Template/tree/main/src/app) folder.\n- Understand the [appshell/](https://github.com/Advanced-Effects/Muse-Qml-App-Template/tree/main/src/appshell) folder\n- Understand the [context/](https://github.com/Advanced-Effects/Muse-Qml-App-Template/tree/main/src/context) folder.\n\n## Recommended lectures\n\nWe use a set of technologies. Understanding them will make working with this a lot, lot easier. It took me +3 months to finish this and make something compilable, but hopefully it's going to take you a lot less with the documentation I'm writing.\n\nDO read-through these. Print if necessary. They will make development faster.\n\n- [C++ W3Schools.](https://www.w3schools.com/cpp/default.asp)\n- [Think in React.](https://react.dev/learn/thinking-in-react)\n- CMake key concepts: https://cmake.org/cmake/help/book/mastering-cmake/chapter/Key%20Concepts.html\n- QML positioning and layout: https://doc.qt.io/qt-6/qtquick-positioning-topic.html\n- QML Module system: https://doc.qt.io/qt-6/qtqml-modules-topic.html\n- QML State system: https://doc.qt.io/qt-6/qtquick-statesanimations-topic.html\n\n## Dependencies \u0026 how to run\n\n**1. Clone the repository:** `git clone https://github.com/Advanced-Effects/Muse-Qml-App-Template` or Download it as a zip from github's UI.\n\n**2. Setup build environment:** You will need a C++17 compiler like `gcc`, `CMake`, `Ninja`, and `Qt6`.\n\n**3. Get the dependencies:** Get the [Muse framework dependencies](https://github.com/musescore/MuseScore/wiki/Install-dependencies), OpenGL and `glfw3`.\n\n**4. Build the project:**\n\n  - Open the terminal, go into the project's location using `cd /Your/Project/location`.\n\n  - Create a `build` directory using `mkdir build` and go into it `cd build`\n    \n  - Setup CMake `cmake ..`\n    \n  - Compile the project `cmake --build . -j\u003cCPU CORES\u003e`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvanced-effects%2Fmuse-qml-app-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvanced-effects%2Fmuse-qml-app-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvanced-effects%2Fmuse-qml-app-template/lists"}