Code Monkey home page Code Monkey logo

renpy-universal-player's Introduction

Ren'Py Universal Player (Ren'Py UOST-Player)

ko-fi

Current Version: 1.6

Ren'Py-Universal-Player or (Ren'Py UOST-Player) is a enhanced music room for Ren'Py projects that allows users to play tracks outside the game's story along with sideloaded songs.

Credits

  • Nikso - Original DDLC Music Player Developer
  • Sam Kujo#9403 - Original DDLC Music Player Design and Beta Tester
  • Staryxz#3613 - Original DDLC Music Player Beta Tester
  • Tom Rothamel - Feedback
  • RyzekNoavek#0624 - Adjustable Play Bar Code
  • khaase (Pixabay) - Refresh Icon (UOST-Player 1.0 - 1.2)
  • eugenialcala (Pixabay) - Replay Icon (UOST-Player 1.0 - 1.2)
  • raphaelsilva (Pixabay) - Shuffle Icon (UOST-Player 1.0 - 1.2)
  • Josy_Dom_Alexis (Pixabay) - Volume Icon (UOST-Player 1.0 - 1.2)
  • Google - Noto Sans SC Font (Author/Description Tag) and Icons (UOST-Player 1.3 onwards)
  • Ren'Py Discord - Feedback on Ren'Py Universal Player Features
  • Weiss Schnee - Support (Weiss :D)

Features

  1. MP3, OGG/OPUS, and WMA Playback from a folder or inside a RPA/APK file.
  2. Metadata support for tracks.
  3. Music player controls.
  4. Dynamic Font Scaling for Titles (some-what).
  5. Sorting support.
  6. Based off the Ren'Py auto-generated template screen.
  7. Music unlock support.
  8. RPA/APK Playback and Metadata Support

    You will need to enable Developer Mode in order to make the metadata of songs in the track RPA folder generate for distribution.

  9. Android Support!

What do I need to run this?

  1. A Ren’Py project (new or existing).
  2. The recent version of Ren'Py UOST-Player.

How do I install this?

  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 291 under the screen navigation(): block.
textbutton _("Music Room") action [ShowMenu("music_room"), Function(ost.get_music_channel_info), 
                                 Stop('music', fadeout=2.0), Function(ost.refresh_list)]
  1. (Optional) Add some music to the track folder.
  2. Run your project and enter the Music Room!

What can I customize in Ren'Py UOST-Player?

Pretty much anything. This is based off the auto-generated Ren'Py template so everything is good for you to use as-is. Just change the settings under music_screen.rpy.

How do I manually define a song?

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 the track
path | File path to the track from the game folder
priority | Priortization of track on the list.
author | Artist of the song
description | Track description, comments, etc.
cover_art | Path to the track's cover art (JPG/PNG Only)
unlocked | Allows a song to be shown to the player or not.

How do I priortize a song or make a song the first one?

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 > ...

You may also enable this by setting organizePriority to True within ost.py.

How do I make songs locked from the player?

As of now, the way to make a song unlock is by manually defining a song in manualtracks.rpy. You can see a example on how this works in within the RPY file and under the How do I manually define a song? section of this Readme.

How do I add metadata info?

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.

  • For MusicBee: Right-Click your song within the player, select Edit and edit away the info you want, then click Apply then OK.
  • For MusicBrainz Picard: Add your song to Picard, select it, right-click the rectangle box that has 3 columns, select Add New Tag, select the tags you want to add like Title, Artist, Comment, Album, etc. There should be a blank box in the box area below, double-click it and edit away the info you want to add, then click Save and press the Save button near Info.

Why did you do this?

I wanted to expand the original project I made with (DDLC-OSTPlayer) to everyone else in Ren'Py. Originally made to see RWBY songs play within the Ren'Py engine. (Yang :P)

renpy-universal-player's People

Contributors

bronya-rand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dotjavafile

renpy-universal-player's Issues

Player crash: Audio channel is unknown.

Basically, player would crash without registration of music channel.

Steps to reproduce the behavior:

  1. go to music room
  2. exit from it
  3. change your script
  4. reload
  5. go to music room
  6. see error

player should not give any error,
https://imgur.com/yqUrG6F.png
the topic is translated like: an exception occurred.

OS: Windows 10, PC.

Additional context
it fixable with

renpy.music.register_channel("music_room", mixer="sound", loop=None, stop_on_mute=True, tight=False, file_prefix='', file_suffix='', buffer_queue=True)

added to music_screen.rpy on a lines between init python and if renpy,variant (50-51 lines for me)
but if you do that, the volumt bar will not work due to mixer being not connected to it i conclude. and i do not know how to fix this one, i am a newbie ueu)b

so please you do! thanks!

Music room is weird when songs are defined manual in manualtracks.rpy.

I have defined two songs with the template and the songs start, but I can only play 3 seconds and the pause button does not work.

If I put the songs in the tracks folder, everything works as it should. I just want to define them manually because I want to unlock the songs one by one during the game.

TinyTag doesn't work in Ren'Py 8.1

Hello! I hope this project is not dead...

With new changes in renpy.loader.rpy renpy/renpy#3423, getting audio duration with the TinyTag library from this project became impossible.

I'm sorry, but an uncaught exception occurred.
  File "game/01functions.rpy", line 15, in get_filename_duration
    data = tinytag.TinyTag.get_renpy(filename, image=False)
AttributeError: 'RWops' object has no attribute 'peek'

Ren'Py 8.1 Prerelease

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.