A Python3/Tkinter GUI application designed to aid in creating/extracting .sng container files for Clone Hero, YARG, and other rhythm games, using SngCli by mdsitton.
Warning
This application is currently in beta, so bugs and issues will probably occur, especially on Windows where I have yet to test this. There's a decent amount of work to be done in order to optimize this tool.
Please make backups if possible. I am not responsible for any data loss that may happen.
"Why not just use Onyx?"
Because, at least in my experience, Onyx's .sng conversion process seems to do something to the chart data, resulting in a different song hash in games like YARG. This affects the in-game score saving for songs compiled to .sng using Onyx.
The goal of this application will be to offer an easy way to use mdsitton's SngCli tool, hopefully without having to mess with command-line arguments and stuff. (PyInstaller builds coming soon™)
- The latest SngCli release
- Python 3.13 or newer (if running directly from source code)
- Linux or Windows
If running directly from the source code (download/clone this repository), you'll need to install some packages from pip, preferably in a virtual environment, with the requirements.txt file:
pip install -r requirements.txt
To launch the application:
python sngconverter.py
- Choose the
SngCli[.exe]executable path by clicking the Choose file button on the top row and browsing to where you haveSngCli[.exe]downloaded. - Select a folder containing chart folders and/or
.sngfiles by clicking Choose folder on the second row and browsing to your desired folder. - Click Scan folder for songs, and wait patiently while the folder is scanned for songs. This could take a while with large numbers of songs and/or slower hardware.
- If you would like to extract
.sngfiles instead of building them, you can change the conversion mode to Extract. - Select your output folder. This defaults to a folder called
outputwithin the app's current working directory. - You have two options for converting songs:
- You can manually select a few songs to convert by clicking on the resulting song entries in the table view (toggles selection of each song), and then clicking Convert selected song(s) individually. Note: this will currently run
SngClionce for every song entry selected, which is incredibly inefficient, so make sure to only select a few songs with this method! - (preferred method for entire song libraries/setlists) You can process the entire folder with the Convert entire folder button.
- You can manually select a few songs to convert by clicking on the resulting song entries in the table view (toggles selection of each song), and then clicking Convert selected song(s) individually. Note: this will currently run
- Converting songs by manual selection is slow due to the current method of running
SngClifor every selected song - The "More options" dialog has yet to be implemented, but it will include additional options for video background exclusion, opus encoding, application dark/light mode, and more.
Like I said, this application is experimental, so let me know of any bugs, preferably on Discord @ yoshibyl
- mdsitton : Creator of the
.sngfile format used by Clone Hero - ttkbootstrap : The tkinter/ttk library for added UI features (such as themes)
- PyInstaller : Used for building ready-to-launch binaries
I'm kind of tired right now...