Compiling Guitar Hero World Tour Style Songs

After you’ve made your World Tour compatible MIDI file, it is now time compile it! I wanted this process to be as simple as possible, so I created a compiler similar to Magma, where you can add your metadata, audio, and game data to make a song quickly.

Prerequisites:

You must have either SoX or FFmpeg installed in order to fully compile a song with the lame MP3 DLL file in their respective root folders.

You will need to add the contents of this zip file to your SoX and/or FFmpeg root folder.

If you don’t have SoX installed, you may get a warning pop up when starting the program. This can be ignored.

If you do have SoX installed and you get that warning, you will need to add your SoX folder to the PATH environment variables.

To do so, please follow these steps (this also applies to FFmpeg if you are getting an error with compilation):

  1. Open the start menu and search for “Environment Variables”, then select “Edit the system environment variables”.
  2. In the System Properties window that appears, click the “Environment Variables” button.
  3. In the Environment Variables window, under the “System variables” section, look for the variable named “Path” and select it, then click “Edit”.
  4. In the Edit Environment Variable window, click “New” and then paste the full path to the directory that contains the SoX of FFmpeg executable you want to add to the Path.
  5. Click “OK” on all the windows to save the changes. You will need to restart the Toolkit for the change to take effect.

With that out of the way, let’s get onto the Toolkit Guide!

Open up the toolkit, and choose the option to compile a WT song (in this current version, it’s option 1):

This will open up a GUI to get you started immediately. There are 4 tabs that will show up, and each will allow you to place data in them to build your song.

Metadata

The metadata tab is used to input the song’s information you see in-game

  • Title – The song’s title
  • Artist Text – The little bit of text that displays in-between the title and artist. Currently only “By” and “As Made Famous By” are included. There is an option to add your own, but it is not functional yet (songs with a custom text will just use “By” instead)
  • Artist – The song’s artist
  • Year – The year the song was recorded
  • Cover Year – The year the song was covered (check the “Cover” box to enable this field)
  • Cover Artist – The artist who covered the song (check the “Cover” box to enable this field)
  • Genre – The genre of the song. In World Tour, there aren’t many genres to choose from. This field mainly determines the pool of premade band mates you get
  • Checksum – A string of characters representing the song in-game. This should be a word representing the song using letters and numbers. It’s usually the song title lowercase and without spaces or other special characters.
    • If you do not make your own, one will be generated based on the song title
  • Chart Author – The name of the person who authored this chart

Audio

The audio tab is used to tell the compiler where all of your audio is. If you have separated tracks, you can fill them all in. You can either copy/paste the filepath, or click the button next to the input to select a file. Drag and drop is not yet supported.

If you do not have audio for a particular part, leave it blank. If you do not have separate instruments at all, place your audio into the backing track.

The “Encrypt Audio” checkbox is optional for WTDE, but you can encrypt the audio if you wish. In the future, customs for Warriors of Rock will always be encrypted.

The preview time lets you set the time in the audio used for the preview in the setlist. Preview Start determines where the preview starts.

You can either enter in the length of the preview as shown in the image, or you can click the “Set End Time” box and you can set the point in the song you wish the preview to end. You can switch back and forth between the two at any time, and the data is converted over.

Song Data

The song data tab lets you choose your game files to be included.

Global Settings

  • MIDI File – The filepath to your GHWT-ready MIDI file
  • Perf Override (optional) – Insert a filepath to a qb file (or a text version of that file decompiled with my qb2text option) to override the performance array of the main output. This is useful if you’ve already created a performance array and do not wish to copy it in manually. This can be a full song qb file as the compiler will only grab the performance array portion.
  • SKA Files (Optional) – Insert a filepath to a folder containing all SKA files you wish to include in this custom. The SKA files must already be in the World Tour format as the compiler will not convert them for you at this point. Luckily, the ska_converter option of the toolkit can convert an entire folder of SKA files at once
  • Song Script (optional) – Insert a filepath to a qb file (or a text version of that file decompiled with my qb2text option) to add a song_scripts file to the compiled song. A song scripts file can define custom band clips, for example.
  • Count Off – The sound sample the game plays when the count-off note is encountered in the drums_notes array.
  • Drum Kit – The soundbank the game uses for the drum sounds you hear when playing your drum kit during a drum fill section
  • Vocal Gender – The gender of the singer in the song. If set to None, there will not be a singer in this song
  • Vocal Scroll Speed – Adjust the speed of the vocal track. Useful if the singer sings too fast that the notes don’t line up with the lyrics.
  • Overall Volume – Adjust the volume of the song. This adjustment is made by the game itself and will not change how the compiler makes the audio. Make the value negative to decrease the volume, and positive to increase the volume.
    • Be careful with increasing the volume, as this can cause clipping.
  • Tiers – Not used at the moment, but when WoR compilation is ready, this will insert the tier values there. Goes from 1-10, and 0 is no part.

WTDE Settings

  • Sorting – Type in the Game Icon and Game Category settings. Please see this page for all available options.
  • Skeleton Types – Set the skeleton types for each band member. If you are converting from another game, you can use this to make sure the animations fit.
  • Guitar/Bass Mic – Enable the microphone for the guitarist and bassist. You still need to set the microphone to be visible in your performance array to see them.
  • Use New Clips – Check this to enable GHM and later mocap. This will allow each band member to have independent mocap if needed. If unchecked, only one band clip can be active at any time.

Compile

The compile tab has a few compiler settings and is used to compile the song.

  • HOPO threshold – The distance between two notes to make them a hammer-on/pull-off (HOPO). This compiler uses the Harmonix values for its calculations. Default is 170 and that means any note faster than an 8th note triplet (1/12th note) will become a HOPO. The NS value is for your information only and will be used once compiling to GH3 with the GUI is enabled.
  • HOPO Mode – The mode to use for Hammer Ons and Pull Offs. Each mode changes the logic of compilation slightly. Rock Band mode should be the default for most MIDIs you find or make, but if you are converting a song, it may be useful to change this setting.
    • Rock Band – This mode will calculate HOPOs based on the distance between each note, and then apply forcings, either on or off. If a chord and a single note follows containing the lowest note of the chord and it’s within the HOPO threshold, this will NOT be a HOPO unless forced.
    • HMX/NS Hybrid – This mode will calculate HOPOs based on the distance between each note, and then apply forcings, either on or off. If a chord and a single note follows containing the lowest note of the chord and it’s within the HOPO threshold, this will be a HOPO unless forced off (this mode is not based on any game’s logic, it’s a combo of RB and GH3).
    • Guitar Hero 3 – This mode will calculate HOPOs based on the distance between each note. If a “force on” note exists on a note in the MIDI, it swaps the HOPO status. If a chord and a single note follows containing the lowest note of the chord, this will be a HOPO unless swapped. “Force off” are ignored.
    • Guitar Hero World Tour+ – This mode will NOT calculate HOPOs based on the distance between each note. Only notes that are forced on will become HOPOs.
  • Beat Lines BPM – The tempo at which subdivisions of beat lines appear. Although able to be set, it is not functional at this time.
  • Platform – Once 360 compilation becomes available, you can choose whether to compile for PC or 360 (games that are not on PC will have the PC option disabled)
  • Compile Folder – The folder to compile to. If compiling for WTDE, set this to your MODS folder. It will create the subfolders as needed and you can play right away!
    • If this folder is not set before saving, it will use the folder where your project file is located.
  • Project File – Save a project file that can be loaded later to continue from where you left off. It’s required to make a file to compile.
  • Compiling – You can compile the full package, or just the PAK.
    • Compiling the full song will create audio and compile the PAK data, as well as the ini file for WTDE.
    • Compiling the PAK will only create the PAK and ini files (much faster than compiling the audio each time)
  • Force FFmpeg – Because SoX is the preferred audio converter, checking this will force the compiler to use FFmpeg if both are installed on your system. If you check this and FFmpeg is not installed, audio compilation will fail. It is not needed to check if you only have FFmpeg installed.

After compilation, your files will be in the folder you selected for compilation. If playing WTDE, this should be immediately playable! If WT customs are available on 360 (they are not as of the writing of this guide), you can copy over the PAK file into your 360 STFS package.

Converting to Warriors of Rock

Go to the main page of the compiler and select GHWoR, change the other settings as needed (different genres and drum samples are available to you!)

You may notice the checksum field clearing when selecting WoR, don’t worry, your WT checksum is safe. The program has two slots for the checksum, and that is because the WoR checksum must start with “dlc”. You don’t have to come up with your own, as we are going to use Onyx to generate it for you.

First, download any custom (Clone hero, Rock Band, it doesn’t matter) and load it into Onyx:

Change the title and artist to what your song’s title and artist are (you do not need any other fields, this RB custom just happened to be the same song). Go to the GH: WoR tab and click “Create Xbox 360 LIVE file”. Do this even if you want to make a PS3 custom:

Using C3 Tools or any other STFS file editor, open up the new ghwor file and look at the title:

The highlighted numbers will be your checksum with “dlc” appended to the front:

In the Song Data tab, make sure you select your new ghwor SFTS file in the “WoR STFS File” field:

Go to the compile tab and compile. If this is the first time compiling to WoR, you’ll need to compile the full song, otherwise, just compile the PAK file.

This will create a new folder where your .ghproj file is:

Go to your STFS editor and replace all the files. In C3 Tools, you can right click the files and click “Replace selected file”:

After that you are done if you’re playing on 360! Just add it to your customs cache and play the song.

Creating a PS3 Custom

If you’d like to make a PS3 version, you will need the latest command line version of Onyx: https://github.com/mtolly/onyxite-customs/releases

This is the zip file that starts with “onyx-command-line”:

Extract the command line version to a folder. Go into your command line and navigate to the Onyx command line folder. Type in onyx port-gh-ps3 and then drag in or type the name of your new STFS file:

This will create a folder with the same name as the STFS file. Click into that folder and keep going into folders until you see this:

Go back to the folder you made with the compiler, and grab the files that start with “adlc”. This is the audio. Copy it into the previous folder, rename them to .FSB.PS3 and delete the files that ends with .REPLACEME:

Go back to your command line, type onyx pkg {package_id} {folder} where {package_id} is a unique ID you created that follows the pattern UP0002-BLUS30487_00-MYPACKAGELABEL and {folder} is the folder Onyx originally made (whose subfolder you added files to):

Replace “MYPACKAGELABEL” with something that represents your custom. In this case I chose “BILLYTALENTFAL”.

This will make a pkg file that you can add to your custom cache and play on PS3.