UltraStar Play Documentation

repository·master·Indexed 19 days ago

https://github.com/ultrastar-deluxe/play

A free and open-source singing game built with the Unity engine and C# where players sing along to audio files with lyrics and notes. The documentation covers development setup, contribution guidelines, CPU requirements for Whisper for Unity (AVX/AVX2), runtime script loading via Mono.CSharp.dll, and configuration for GeneralUser GS SoundFont banks.

Tokens
2.9K
Snippets
4
Records
22
Agent score
67%

What's inside UltraStar Play

  1. Compatibility requirements for GeneralUser GS v1.471

    master

    GeneralUser GS is a GM and GS compatible SoundFont bank. To ensure all 259 instrument presets sound correct, you must use a SoundFont synth that supports SoundFont 2.01 modulators.

    Using a synth that does not support these modulators may result in broken or incorrect-sounding presets. If your software is incompatible, the author suggests using an older "SoftSynth" version of the bank (available on the author's website) which uses less specialized programming.

  2. Use Roboto Mono variable or static fonts

    master

    Roboto Mono is provided in two formats: Variable Fonts and Static Fonts.

    Variable Fonts

    If your application supports variable fonts, use the following files to access all styles via the wght axis. This allows you to select intermediate weights not available in static files.

    • RobotoMono-VariableFont_wght.ttf
    • RobotoMono-Italic-VariableFont_wght.ttf

    Static Fonts

    If your application does not support variable fonts, use the individual files located in the static/ directory:

    • static/RobotoMono-Thin.ttf
    • static/RobotoMono-ExtraLight.ttf
    • static/RobotoMono-Light.ttf
    • static/RobotoMono-Regular.ttf
    • static/RobotoMono-Medium.ttf
    • static/RobotoMono-SemiBold.ttf
    • static/RobotoMono-Bold.ttf
    • static/RobotoMono-ThinItalic.ttf
    • static/RobotoMono-ExtraLightItalic.ttf
    • static/RobotoMono-LightItalic.ttf
    • static/RobotoMono-Italic.ttf
    • static/RobotoMono-MediumItalic.ttf
    • static/RobotoMono-SemiBoldItalic.ttf
    • static/RobotoMono-BoldItalic.ttf
  3. Use Inter Variable or Static Fonts

    master

    The Inter font package provides two ways to use the font depending on your application's support for variable fonts:

    1. Variable Font: If your application supports variable fonts, use the single file Inter-VariableFont_slnt,wght.ttf. This file contains all styles and allows you to select intermediate styles along the following axes:

      • slnt (slant)
      • wght (weight)
    2. Static Fonts: If your application does not support variable fonts, use the individual files located in the static/ directory:

      • static/Inter-Thin.ttf
      • static/Inter-ExtraLight.ttf
      • static/Inter-Light.ttf
      • static/Inter-Regular.ttf
      • static/Inter-Medium.ttf
      • static/Inter-SemiBold.ttf
      • static/Inter-Bold.ttf
      • static/Inter-ExtraBold.ttf
      • static/Inter-Black.ttf

    Setup Steps:

    1. Install the desired font files onto your system.
    2. Use your application's font chooser to select the Inter font family and its available styles.
  4. Use Noto Sans JP Variable or Static fonts

    master

    The playsharedui package includes Noto Sans JP in two formats: a single variable font file and a collection of static font files.

    Variable Font

    If your application supports variable fonts, use the single file NotoSansJP-VariableFont_wght.ttf. This file contains all styles via the wght axis, allowing you to select intermediate weights not present in static files.

    Static Fonts

    If your application does not support variable fonts, use the individual files located in the static/ directory:

    • static/NotoSansJP-Thin.ttf
    • static/NotoSansJP-ExtraLight.ttf
    • static/NotoSansJP-Light.ttf
    • static/NotoSansJP-Regular.ttf
    • static/NotoSansJP-Medium.ttf
    • static/NotoSansJP-SemiBold.ttf
    • static/NotoSansJP-Bold.ttf
    • static/NotoSansJP-ExtraBold.ttf
    • static/NotoSansJP-Black.ttf

    Setup Steps

    1. Install the desired font files into your system or application environment.
    2. Use your application's font chooser to select the Noto Sans JP family and the specific style required.
    Files available:
    - NotoSansJP-VariableFont_wght.ttf (Variable)
    - static/NotoSansJP-Thin.ttf
    - static/NotoSansJP-ExtraLight.ttf
    - static/NotoSansJP-Light.ttf
    - static/NotoSansJP-Regular.ttf
    - static/NotoSansJP-Medium.ttf
    - static/NotoSansJP-SemiBold.ttf
    - static/NotoSansJP-Bold.ttf
    - static/NotoSansJP-ExtraBold.ttf
    - static/NotoSansJP-Black.ttf
  5. Use Mono.CSharp.dll for runtime loaded scripts

    master

    The Mono.CSharp.dll provided in this directory is a version of the library found in UnityEditor/2022.3.9f1/Editor/Data/MonoBleedingEdge/lib/mono/4.5. It can be utilized to enable runtime script loading and compilation within the application, a technique commonly used for game modding in Unity environments.

    For detailed technical implementation details on how to use this for modding, refer to the external guide: https://somasim.com/blog/2017/12/27/tech-notes-unity-game-modding/

  6. Use Noto Sans Sinhala variable or static fonts

    master

    The Noto Sans Sinhala font package provides two ways to implement the font depending on your application's capabilities:

    1. Variable Font: If your application supports variable fonts, use the single file NotoSansSinhala-VariableFont_wdth,wght.ttf. This file contains all styles and allows you to pick intermediate styles using the following axes:

      • wdth (width)
      • wght (weight)
    2. Static Fonts: If your application does not support variable fonts, use the individual .ttf files located in the static/ directory. These files cover various widths (ExtraCondensed, Condensed, SemiCondensed, and Regular) and weights (Thin to Black).

    Setup Steps:

    1. Install the desired font files onto your system or include them in your application assets.
    2. Use your application's font chooser to select the Noto Sans Sinhala family and its available styles.
    Variable Font:
    NotoSansSinhala-VariableFont_wdth,wght.ttf
    
    Static Fonts (examples):
    static/NotoSansSinhala_ExtraCondensed-Thin.ttf
    static/NotoSansSinhala_Regular.ttf
    static/NotoSansSinhala_Black.ttf