I released this a bit ago on the Ren'Py Discord, but never had the chance to post it here so here it is! I'm proud to present to you all Ren'Py Universal Player!
Ren'Py Universal Player is a improved music room that allows users to play your projects' soundtrack outside of the game's story along with any other music the user would add to a track specific folder.
- MP3 and OGG Playback from a folder, RPA, and APK!
Sadly I don't have a Mac to test iOS but if anyone does want to do so, you are free to do so and give feedback!
- Metadata support for tracks.
- Music Player controls.
- Dynamic Font Scaling for Titles (somewhat).
- Sorting support.
Ren'Py Universal Player's UI code in screens.rpy and gui.rpy is based off the Ren'Py auto-generated template. You will have to adjust this code to fit your projects' layout.
Not all song names will be able to be read by the default font, especially Japanese. Songs with a UTF-8 cover (common in iTunes) will default to a generic player cover art due to limitations.
Additional screenshots can be seen here.
1. Drop all the contents in this ZIP file to your projects' game folder.
2. Open screens.rpy and add this line somewhere after line 292 under the screen navigation(): block.
Code: Select all
textbutton _("Music Room") action [ShowMenu("music_room"), Stop('music', fadeout=2.0), If(preferences.get_volume("music") == 0.0, true=SetVariable("ost.music_muted", True), false=SetMute('music', True)), Function(ost.refresh_list)]
Code: Select all
5. Run your project and enter the Music Room!
Q1: How do I manually define a song?
A1: manualtracks.rpy has a small template to define songs manually if you need to do so. You have the following options to define these tracks.
- name | Name of Track
- full_name | Full Name of Track
- path | Path to the file from the game folder
- priority | Priortization of track on the list.
- author | Artist
- description | Track description, comments, etc.
- cover_art | Path to the track's cover art (JPG/PNG Only)
A2: Enable the numbered list icon in the music room and set the song priority by a value. 0 is the highest priority you can make a song be while 1, 2, etc. will be prioritzed lower in the list. i.e. 0 > 1 > 2 > ...
Q3: How do I organize the list alphabetically?You may also enable this by setting organizePriority to True within ost.py.
A3: Enable the AZ icon in the music room or set organizeAZ to <u>True</u> within ost.py.
Q4: Why is there a python-packages folder in the ZIP file?
A4: This folder stores the python files that handle the functions of the music room player and the metadata of songs sideloaded or included in the game.
Q5: How do I add metadata info?
A5: Right-click your song, Select Properties, go to Details, and fill the blank boxes you can. Alternatively, use MusicBee or a similar music player, or MusicBrainz Picard and find your song. Refer to this for more information.