yabridge icon indicating copy to clipboard operation
yabridge copied to clipboard

Create a GUI for easy setup and installation of yabridge

Open RustoMCSpit opened this issue 1 year ago • 4 comments

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:

  •     Automatically detect if Wine Staging is being used; if detected, skip this step.
    
  •     Otherwise, prompt the user with the following question:
          Are you using Wine Staging? If not, follow the steps here **'https://wiki.winehq.org/Download'**
        If the user is however using a different version of Wine (e.g. stable), instruct them to undownload it and remove its repository keys so that *'sudo apt update'** would not accidentally re-install it or automate this process and request permission
    

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 avatar Jun 07 '23 00:06 RustoMCSpit