robbert-vdh / yabridge

A modern and transparent way to use Windows VST2, VST3 and CLAP plugins on Linux
GNU General Public License v3.0
2.52k stars 65 forks source link

Create a GUI for easy setup and installation of yabridge #256

Open RustoMCSpit opened 1 year ago

RustoMCSpit commented 1 year ago

Feature description

Description:

Currently, setting up and installing yabridge can be complex for users who are not familiar with the process / Linux in general. To simplify the experience and encourage mass adoption, we should develop a separate GUI application that guides users through the installation process with automated steps and simple interactions. Here's a suggested outline for the GUI flow:

1) Check for Wine Staging:

1b) Update Wine Staging: Automatically perform 'sudo apt update' if Wine Staging is not up to date. Otherwise, skip this step.

2) Choose Digital Audio Workstation (DAW): Prompt the user to select their preferred DAW (or detect DAWs on the system). If Bitwig or a potential Flatpak-based DAW is chosen, proceed to step 2b. If other DAWs are chosen, proceed to step 3.

2b. Bitwig or Flatpak-specific prompt:

If Bitwig is chosen, ask the user if they are using the **'.deb'** version instead of the Flatpak.
If the user is using a Flatpak, provide a link to the relevant website (e.g., **https://www.bitwig.com/account-profile**) or ask if they want to install the **'.deb'** version, offering to download it for them and instructing for the removal of the Flatpak as it is currently not supported.

3) Detect Operating System: Automatically detect the user's operating system. If detection fails, prompt the user to manually provide their OS information.

4) Download Confirmation: Ask the user if they are ready to proceed with the download. If yes, perform the following steps and sub-steps (5-5c). If no, exit the application.

5) File Creation and yabridgectl Commands:

Create CLAP, VST2, and VST3 files in Wine if they do not already exist.
Execute the necessary **'yabridgectl'** commands.

5ii. Incompatible Plugin Detection:

If any incompatible plugins are detected, inform the user about them and explain the issues.
Provide workarounds if available, allowing the user to click a button that will execute the necessary commands to resolve the issue / display the steps needed to fix this.

5b. Successful Installation:

Display a success message, indicating a successful yabridge installation.

5c. Additional Information and Feedback:

Provide links to the GitHub page and Discord server.
Encourage users to offer feedback on the application.

The goal of this GUI application is to make yabridge more accessible to less technically inclined users. Additionally, consider expanding the application's functionality to include easy installation of Pipewire and Helvum. It could become an all-encompassing music application that offers advice on reducing latencies, such as suggesting a real-time kernel and adjusting buffer and sample rates.

The key objectives for this GUI application are to ensure efficiency, comprehensiveness, automation, and simplicity to encourage widespread adoption of yabridge.

Anything else?

No response

RustoMCSpit commented 1 year ago

The above is not final by any means and many of the questions probably don't need to be asked but rather automated by detection. Feel free to add any steps I didn't think of.

0CCULTIST commented 7 months ago

Might I suggest https://github.com/fltk/fltk for the UI? Low maintenance, small size & well documented. Would be perfect for a simple installer.

RustoMCSpit commented 7 months ago

@robbert-vdh ?

RustoMCSpit commented 7 months ago

Might I suggest https://github.com/fltk/fltk for the UI? Low maintenance, small size & well documented. Would be perfect for a simple installer.

damn reading old issues