Songs - performous/performous GitHub Wiki

Performous currently supports songs in UltraStar (singing), Frets on Fire (singing, instruments) and StepMania (dancing) formats.

Finding songs

  • Some free songs are available on our homepage.
  • USDB has a lot of songs in UltraStar format, due to copyright issues only the timecodes are provided, you need to find the corresponding audio/video file yourself.
  • Search the homepage/wiki/forum of other games; e.g. there are some guitar-only songs on the Frets on Fire website.
  • Use a search engine to search for songs in a specific format, e.g. UltraStar or FoF.
  • For dance songs you can use stepmania-online's huge repository.
  • Additionally, Performous comes with a tool that can be used for extracting your SingStar DVDs.

Installing songs

Performous looks for songs in the following paths:

  • DATADIR/songs
  • ~/.ultrastar/songs
  • /usr/local/share/performous/songs
  • /usr/local/share/games/ultrastar/songs
  • /usr/local/share/games/fretsonfire/data/songs
  • /usr/share/performous/songs
  • /usr/share/games/ultrastar/songs
  • /usr/share/games/fretsonfire/data/songs

where DATADIR is all of Performous' data folders, including the installation directory and

  • C:\Users\USERNAME\AppData\Roaming\performous (Windows Vista/7)
  • C:\Documents and Settings\USERNAME\Application Data\performous (Windows XP/2000)
  • ~/.local/share/games/performous (Most Linux distributions)
  • ~/.local/share/performous (Gentoo from ebuild)

Note that the actual paths to Performous datadirs can vary, because they are modified by different platforms and distributions to suit their particular conventions. Also, if you are compiling the game from source, CMake variables CMAKE_INSTALL_PREFIX and SHARE_INSTALL affect the directories, e.g. user datadir is ~/.local/SHARE_INSTALL (unless XDG_DATA_HOME environment variable is set, in which case it is XDG_DATA_HOME/SHARE_INSTALL). You can see where Performous tries to find songs by launching it from a terminal with argument --log songs and observing the output.

You can freely mix different formats in same songs-folder. In addition, Performous scans recursively, so a predefined folder structure is not required. Symbolic links are also followed, so it is possible to just create a link from one of Performous' dir to your real song folder.

Adding own song folders

Via the GUI

You can add your songs in the GUI via the main menu: "Configure" -> "Paths". Then navigate to a folder you want to add and select "Add Path". Paths can be removed in a similar manner.

Folders may also be added via less direct methods, as per below.

Option 1

Give song folders as command line arguments.

  1. Open a terminal
  2. Type in: performous /path/to/my/songdir
  3. Hit enter
  4. Go to the song browser to verify that you didn't mistype the path (songs appear)
  5. Go to Configuration screen (from main menu) and hit Ctrl+S to save the setting

This writes the needed XML automatically and the next time you can start Performous from a shortcut or whatever, no need to specify the path again. For convenience, Windows users can use ConfigureSongDirectory.bat script that saves opening a terminal and navigating to Performous' directory.

Option 2

Add folders directly to the config.xml (create it first by pressing Ctrl+S in the Configuration screen).

  1. Find the configuration file:

    • ~/.config/performous/config.xml (*nix)
    • C:\Users\USERNAME\AppData\Roaming\performous\config.xml (Windows Vista/7)
    • C:\Documents and Settings\USERNAME\Application Data\performous (Windows XP/2000)
  2. Open it in a text editor of your choice

  3. Add the following entry between the -tags:

<entry name="paths/songs" type="string_list">
  <stringvalue>/first/path/to/add</stringvalue>
  <stringvalue>/perhaps/an/another/path</stringvalue>
</entry>

Of course, modify the paths to suit your needs. So in the end, your config.xml should look a little like this:

<?xml version="1.0" encoding="UTF-8"?>
<performous>
  <entry name="paths/songs" type="string_list">
    <stringvalue>/my/very/own/song/folder</stringvalue>
  </entry>
  <entry name="audio/playback" type="string_list">
    <stringvalue>rate=44100,frames=512@pulse</stringvalue>
  </entry>
  <entry name="audio/round-trip" type="float" value="0.16"/>
</performous>

The amount and type of other -tags varies between users depending on their configuration.

Mac OS X

Performous on Mac looks for songs inside (among other places) Performous package from folder /Contents/share/games/performous/Songs. You might need to create the Songs folder. You can open the package by right-clicking on the Performous logo and selecting "Show package contents". Placing all songs in this location allows the program to import songs.

Making songs

Composer is an application made by Performous developers and can be used to author and edit singing notes in various formats.

UltraStar format songs can be modified with a text editor (StepMania too) or with one of the many available editors such as YASS. FoF format songs can be modified and created with a MIDI sequencer like Rosegarden, but there are also many custom editors. See Frets on Fire Wiki for more information plus tutorials and guides.

It is recommended to use an existing song as a template when making a new one. With all formats, you need audio tracks (background with or without vocals and preferably a separate track for each instrument) in MP3 or other supported format and it is also good to have a cover image and a background video or image.

Here is a list of tools that can aid in the creation of songs: [Creation tools](Creation tools "wikilink")

Visuals and song files

Cover pictures, background images and music videos and instruments can be added in the way each format describes them. In addition, Performous can guess suitable files to use if the entries are missing or broken in the song metadata. This also allows you to simply drop media to the song folder so that it gets used without touching the songs themselves.

The general song is played along with all present instrument songs. When playing an instrument the according song (if present) is muted when missing notes.

File name rules

All rules are case-insensitive (See also SongParser::guessFiles() in game/songparser.cc)

Type Filename Extension
Cover cover, album, label, banner png, jpeg, jpg, svg
Background bg, background png, jpeg, jpg, svg
Video any name avi, mpg, mpeg, flv, mov, mp4, mkv, m4v
MIDI notes mid
Guitar guitar mp3, ogg, aac
Bass rhythm mp3, ogg, aac
Drums drums mp3, ogg, aac
Keyboard keyboard mp3, ogg, aac
Coop Guitar guitar_coop mp3, ogg, aac
Rhythm Guitar guitar_rhythm mp3, ogg, aac
Lead Vocals vocals mp3, ogg, aac
Generic/Background song mp3, ogg, aac
⚠️ **GitHub.com Fallback** ⚠️