Logo

A song editor for "Frets On Fire"

IMMERROCK EXPORT GUIDE

Before you export arrangements to play in IMMERROCK, you will want to review the following optional and mandatory steps:

NORMALIZING THE AUDIO

The IMMERROCK development team has suggested normalizing your chart's audio so that the volume is consistent with the in-game bundled content. Recommended settings for doing this include using Audacity's (https://www.audacityteam.org/) "Effect>Volume and Compression>Loudness normalization" function to normalize perceived loudness to -14 LUFS
https://manual.audacityteam.org/man/loudness_normalization.html

CONVERTING BASS ARRANGEMENTS

As of the time of this document’s writing, IMMERROCK supports custom song charts containing one lead guitar arrangement and one rhythm guitar arrangement. Support for bass and other 4 string arrangements is planned in the near future, but you can configure a bass arrangement to export as a 6 string guitar arrangement so that you can play it in IMMERROCK with the current early access build of the game. To do this, change the active track to the bass arrangement in question (Use “Song>Track” and click on the track in question, or use the CTRL+TAB based keyboard shortcuts as listed in “Help>Keys”) and change the track’s string count to 6 (Use “Track>Pro Guitar>Set number of Frets/strings”, click the 6 radio button and click OK). The piano roll should now reflect having 6 strings and the tuning displayed for the track will have changed from EADG (standard tuning for 4 string bass) to BEADGC (standard tuning for 6 string bass):
screen

Since the current early access build won’t allow you to play a bass arrangement, the track will need to be configured as either lead guitar or rhythm guitar by selecting either of those options in the "Track>Rocksmith>Arrangement Type" menu. For the purpose of this example, I’ll choose to define the bass track as a lead guitar arrangement, so the guitar track can still export as the rhythm guitar arrangement. Notice that the tuning now reflects 6 string guitar (EADGBE):
screen

If you are converting a 4 string bass arrangement for use in IMMERROCK, you don't need to make any of the remaining changes described in this section because the default tuning of 4 string bass (EADG) matches the default tuning of 6 string guitar, just one octave lower. For the purposes of playing in game, this octave difference won't matter because the note names will still be the same. If you slow the song down and the game plays a MIDI version of the song, the notes will sound one octave higher in pitch than expected, but this is likely to be the only side effect of playing the bass arrangement as a guitar arrangement.

If you are converting a 5 or 6 string bass arrangement for use in IMMERROCK, you will want to correct the tuning so that the correct note names are displayed in game, and the left edge of the virtual guitar neck reflects the tuning in use. To correct the tuning, use “Track>Pro Guitar>Set Tuning” and edit the tuning to accurately reflect the arrangement. For 6 string standard bass guitar tuning, this will be BEADGC and you can just enter the appropriate negative number for each string's tuning. If you're setting BEADGC tuning, you can click the "Preset" button, select the "Bass tuning" option at the bottom of the list. Otherwise define the tuning of each string either by typing a number into each field or clicking into the first field and pressing the down arrow until the string is tuned down appropriately, pressing Tab to change to the next string and repeating the process until all 6 strings have been set appropriately, ie. for standard tuning:
screen

Click OK to apply the changed tuning. EOF will offer to alter the notes in the track to transpose them, but you do NOT want to do this because the fret values of each note need to remain unchanged. Decline the offer to transpose the notes:
screen

The result should be that the left edge of the piano roll once again shows BEADGC tuning and the fret values of the notes remain the same as before:
screen

The bass track will now be able to be exported for use in IMMERROCK. Remember to save your project in EOF.

DEFINING SECTIONS

IMMERROCK has a “Phrase Refiner” feature that allows the player to define where to start and end a looped playback of a song. In-game it looks like this:
screen

For this optional yet HIGHLY RECOMMENDED feature to work, the chart will need to have sections, which are defined in EOF as “text events”. If you imported chart content from an existing file before getting to this step, the project may already have events defined. To see all of the events in the project, use “Beat>Events>All Events” and EOF will display a list:
screen

From this list, you can easily edit, delete or seek to any of the events in the project. The events that will export to IMMERROCK format as sections are those where the event is formatted as “Section NAME” or “[section NAME]” (how they are formatted when using “Beat>Events>Place Section”) or if there is an S inside of the parentheses next to the event’s timestamp, it indicates it is a Rocksmith section maker (how they are formatted when using “Beat>Rocksmith>Place RS section”). If there are no sections defined yet, or you want to add more, close the “All Events” dialog, seek to where you want the section to begin, click on the beat where the event will be placed and use either the “Beat>Events>Place Section” function and give a name of your choice (the letter case of the section name is up to you, it doesn’t need any particular capitalization), or use the “Beat>Rocksmith>Place RS section” function and pick one of the section names allowed by Rocksmith (leave both of the optional boxes below the list in this dialog unchecked, they are not relevant for IMMERROCK):
screen

If you want to place a section at a position that is not on a beat marker, you can seek to the exact position of where you want the section to be placed (SHIFT+Pg Up/Dn seeks to previous/next note, CTRL+left/right seeks slowly, CTRL+SHIFT+left/right seeks one millisecond at a time) and use "Song>Place floating event" to define the event's text as "[section SECTION_NAME]" without quotation marks, and with "SECTION_NAME" replaced with your section name of choice. Regardless of how you define sections, EOF will automatically export blank sections at 0 seconds and at the end of the chart, which helps ensure Phrase Refiner will process the sections nicely. Remember to save your project in EOF.

ADDING/IMPORTING LYRICS

IMMERROCK can display line-synced lyrics to go with the guitar tablature. It’s not required, but it’s a nice thing to include with a custom chart. There isn’t too much synchronization involved with this format since you only have to time the start and end of a whole line of lyrics at a time, so defining them is pretty simple. Just change to the PART VOCALS track (ie. use “Song>Track” or use the CTRL+Tab shortcuts), place a note where that line begins being sung/spoken, type a line’s worth of lyrics into the box that pops up, lengthen the lyric (click on it to select it, then use the mouse scroll wheel or the [ and ] keys to shorten or lengthen the lyric) to extend to where the singer stops saying/singing the line, then tell EOF that this lyric makes up an entire line of lyrics by itself by using “Note>Lyrics>Lyric Lines>Mark” while this one lyric is still selected. EOF will draw a blue background behind the lyric text to show that it is now in a lyric line, and the new line of lyrics will now appear in the bottom right panel of the program when it’s in effect for the current seek position:
screen

You can define all of the lyrics this way, one line at a time. Alternatively, if you found any timed lyrics, EOF is able to import a wide variety of formats (several rhythm game lyric formats, some karaoke formats and various others). Review the [VOCALS TUTORIAL] for more details about authoring or importing lyrics.

ADDING METADATA

The bare minimum of metadata for the chart is the song title and artist name, which were prompted for if you created a new project from scratch. Or in case you imported a chart, this information is always expected to be defined and should be present after the import, but you can use “Song>Properties” to see various pieces of information for the chart. Other metadata is optional, but more information is better than less, because it gives the player added details. In the case of the genre, IMMERROCK may eventually be updated to allow the player to sort or filter their list of custom songs. The pieces of metadata that you can define in “Song>Properties” that are understood by IMMERROCK are currently:
Song title
Artist
Charter (this is the name or user name you as the chart creator will be credited with in the chart)
Album
Genre (you can define multiple genres, each separated by a comma, such as “Rock, Pop”)
Year (the year the song’s single/album was released)
screen

You can ignore the other fields in Song Properties because they are not relevant to IMMERROCK. This metadata is saved in the Info.txt file during export, and if necessary you can make corrections by opening it in a text editor. Just remember that if you don’t add the corrections to your project in EOF, EOF will write the Info.txt file again without the corrections the next time you have it export the project to IMMERROCK format. Remember to save your project in EOF.

ADDING FINGER DEFINITIONS

The optional Finger Placement feature in IMMERROCK reads note/chord fingering details defined in the chart to show the player a virtual fretting hand positioned accordingly on the virtual fretboard:
screen

The definition of fingerings isn’t covered by “Help>Pro Guitar Tutorial” because this wasn’t a feature in Rock Band 3. It is a feature added to EOF for Rocksmith authoring, so any Rocksmith authoring tutorials you find should explain this in detail. To summarize here though, you can define which fingers are used to press each fretted string in a note or chord by selecting the note and using the “Note>Rocksmith>Edit frets/fingering” function (ie. press the F shortcut key):
screen

The finger numbers are 1=Index, 2= Middle, 3=Ring, 4=Pinky, 5 or T = Thumb. If you define the fingering for a chord and click OK or Apply, EOF will check for any other instances of the same chord that are lacking finger definitions and will offer to apply the definitions you just added. If you press Apply instead of OK, the dialog will stay open and you can click the <- or -> buttons to view/edit the fingering of the previous or next note. Or you can click the << or >> buttons to view/edit the fingering of specifically the previous or next note that doesn’t have fingerings defined yet. To make it easier to identify which notes don’t have fingering defined yet, you can enable “Fingering view” with the “Song>Rocksmith>Fingering view” function. When this feature is enabled, instead of displaying the fret values for notes, the piano roll will display the defined finger values instead. For notes that have their fingers defined completely, the number boxes will be blue, otherwise if the definitions are missing or incomplete, the number boxes will be red. As a bonus feature, you can display a second copy of the track in the second piano roll, which will replace the bottom half of EOF. This way you can see the frets and fingerings at the same time for several notes:
screen

Review the manual’s description of the ["Song>SECOND PIANO ROLL" functions] for more details about this feature. As a way to automate the definition of chord fingerings, EOF has a fairly large database of chord definitions in its chordshapes.xml file, which essentially defines chord shapes as the frets pressed on each string and the finger used to press each. You can use the “Song>Rocksmith>Correct chord fingerings” function to apply finger definitions for any chord whose shape is defined in the chordshapes.xml file. More exotic chords may be undefined, and EOF won’t define fingerings automatically for single notes the way it can for chords, so you will want to use “Song>Rocksmith>Fingering View” or use the “Note>Rocksmith>Edit frets/fingering” function’s << and >> buttons to quickly identify notes that are missing finger definitions. If you don’t want to add finger definitions for single notes, it’s not mandatory. However, the virtual fretting hand of the Finger Placement IMMERROCK feature will be inactive if it reaches a note that is missing finger definitions, so defining them for all notes gives the most professional result. Note that EOF’s automated definitions won’t be as good as ones that are well-chosen by a guitarist who knows how to efficiently play guitar, so if you know how to pick better fingering for a chord, it’s encouraged to define some or all of them as desired. Remember to save your project in EOF.

DESIGNATING RHYTHM AND LEAD ARRANGEMENTS

As of this document’s writing, IMMERROCK can offer the play one lead guitar arrangement and one rhythm guitar arrangement per chart. If you want to make a bass guitar arrangement playable in the current early access version, follow the steps described in the [CONVERTING 4 STRING BASS ARRANGEMENTS] section of this tutorial. Otherwise to define a track as a lead or guitar arrangement, use “Song>Track” or CTRL+Tab related shortcuts to change to the desired track and use “Track>Rocksmith>Arrangement Type” and choose either Rhythm or Lead. While you’re at it, set the difficulty rating for the arrangement with “Track>Set Difficulty” and give it a subjective difficulty from 1 through 5. The difficulty of an arrangement is one of the details shown in the song list in IMMERROCK.

IMMERROCK PANEL

EOF has an IMMERROCK panel that reports on chart's readiness for use in IMMERROCK. To display this tool, use "File>Display>Notes panel>IMMERROCK". Messages will display in red for issues that are mandatory to fix, such as if no arrangements are configured for export as lead or rhythm or the most critical metadata (artist and song name) are undefined. Messages will display in yellow for issues that aren't mandatory to fix, but suggested, such as missing sections, lyrics, album art or finger placements. Messages will display in green for items that are defined appropriately.

MANUALLY EXPORTING ONE ARRANGEMENT

IMMERROCK’s built-in content focuses on presenting the player with complete arrangements instead of offering multiple copies where the arrangement is simplified to give a lower difficulty version. However, as the chart author, it’s entirely up to you and EOF can export any authored difficulty level (static or dynamic) for use in IMMERROCK. Once you have finished importing/editing the arrangement, change to the specific difficulty level you want to export (ie. click on the tabs above the piano roll to change to that difficulty level). Difficulties that include at least one note will include an asterisk *. Then use “File>Export>IMMERROCK” and EOF will create a subfolder in the project folder and place all of the applicable chart contents there:
The arrangement’s MIDI file (will be GGLead.mid or GGRhythm.mid)
Info.txt (metadata for the chart)
Lyrics.txt (if lyrics were defined in the project)
Sections.txt (if sections were defined in the project)
Song.ogg (the chart audio)

The name of the subfolder will include the artist name, song title, arrangement name and the difficulty level being exported. Likewise, the song title metadata in the exported Info.txt will include the difficulty level. The reason for the difficulty level being used this way is so that each difficulty level that you export can exist as a unique chart in the song list in IMMERROCK. If the track being exported has the traditional static difficulty system in effect (the difficulty tabs list the names “Easy”, “Medium”, “Hard” and “Expert”), the difficulty name is used in the subfolder name and song title. If the track being exported has the dynamic difficulty system in effect (the difficulty tabs list numbers), the difficulty level is referenced as “DD #” in the subfolder name and song title. In the case of exporting a dynamic difficulty, the difficulty is “flattened” by having it include all of the notes applicable for that difficulty level (including the notes defined in lower difficulty levels). For an explanation of dynamic difficulties, please read the [ABOUT DYNAMIC DIFFICULTIES] section of this tutorial. If you want to export a handful of dynamic difficulty levels of an arrangement instead of only having the fully complete arrangement available to play in IMMERROCK, you just need to decide which ones to export. To help you decide this, EOF has a function to list all of the dynamic difficulty levels in the active track and give statistics about how many notes each level adds to or replaces from the previous level, and how many the notes the level has in total:
screen

Use this information along with any other considerations you like, such as how complex the chords in a difficulty level are. Ideally, you would want to pick difficulty levels that make sense, such as starting out in the lowest difficulty by playing a single root note for each chord, and then allow chords and techniques to get more complex with each higher difficulty. That may or may not be a simple task depending on how the chart is authored, so if you want to keep the difficulty level selection simple, you could base it on how much of the full arrangement’s notes (as a percentage) a level has. From the above example, you could export level 5 which is 34% of the notes, level 11 which is 66% of the notes, level 16 which is about 90% of the notes and level 22 which is the complete arrangement. You’re not limited in how many of the levels you export, just remember that each one will export to a different subfolder in the project folder, and each subfolder requires its own copy of the chart audio which will take up space on your headset’s storage.

ADDING ALBUM ART

IMMERROCK can display album art for the chart in the song list. It must be in JPEG, PNG or TIFF format and must be named Cover.jpg, Cover.png or Cover.tiff as appropriate for the format. The recommended resolution is 512x512 pixels, but it can be larger or smaller if you desire. During export, EOF will check the project folder to see if any JPEG, PNG or TIFF file with the base name of "cover", "album", "label" or "image" (file names that were commonly used for album art with other rhythm games) is present, and if so, it will copy it to the export folder renamed with the base name of "Cover" so it will display in the song list in IMMERROCK.

AUTOMATICALLY EXPORTING MULTIPLE ARRANGEMENTS DURING SAVE

If you will be making incremental changes to a project and testing between edits, you may find it inconvenient to have to export every arrangement manually each time you want to test changes. EOF has the ability to automatically export designated arrangements to IMMERROCK format every time you save the project in EOF (and as long as you aren’t making major changes to the tracks that would alter their export folder name, each save will overwrite files to the same folders and not create extra, unneeded folders). In order to set up the export during project save, open “File>Preferences>Import/Export”, enable the “Save separate IMMERROCK Files” option and click OK. After that change, when you save the project, EOF will export up to one pro guitar track (configured via “Track>Rocksmith>Arrangement Type”) as a lead guitar arrangement, up to one rhythm guitar arrangement and up to one bass guitar arrangement. As mentioned in the tutorial, the build of IMMERROCK available at the time of this document's writing does not support playing the GGBass MIDI file yet, but EOF will export it in preparation for the day that it is supported. When a track being exported does not have dynamic difficulty, the first four difficulty levels will export for it and each export folder name and song title metadata will reflect the difficulty level. When a track being exported has dynamic difficulty in effect (“Track>Rocksmith>Remove difficulty limit”) during project save, the highest difficulty level is flattened and exported. As this is the expected most common use case, neither the export folder name nor the song title metadata will reflect a difficulty level. Each export folder will contain one MIDI per applicable arrangement and related files such as Info.txt (contains several pieces of metadata), section markers, lyrics and chart audio. If none of the arrangements have notes for a particular difficulty level, that level won't have a folder created. In summary, the automatic export during save will export any defined static difficulties for designated arrangements and the highest dynamic difficulty level for designated arrangements. The project is not required to have all arrangements conform to the same difficulty method (dynamic versus static), so as the chart author you can spend more time on whichever arrangements you choose.

COPYING IMMERROCK CHARTS ONTO YOUR HEADSET

The final step before you can play the exported chart in IMMERROCK is to copy the chart folder onto the headset’s storage. The headset will need to be plugged into your computer so that you can access the file system, browse to the correct IMMERROCK game folder and copy the chart there. I’m not familiar with how to do this except for with a Windows computer, so assuming Windows, you will first need to install the Meta Quest Link application on the computer and do all related setup steps for linking the headset:
https://www.meta.com/help/quest/509273027107091/

When you plug the headset into the computer, wait for the prompt seen in the headset asking whether to allow the computer to access the files on the headset. Allow it:
https://www.meta.com/help/quest/310926493766802/

If the headset doesn't offer to allow the computer to access the headset's file system, I have usually found that it's because the Quest Link application indicates an update is required. Allow the program to update. In my experience, this update can take several minutes, so give it time. If nothing else works, try rebooting your computer and rebooting the headset.

After you allow the file system access (has to be allowed each time you plug the headset into the computer and want to transfer files to/from the headset), you can take the headset off and perform the rest of the steps from the computer. Open File Explorer, browse to the “This PC” item and you should see a Quest device listed with your drive letters:
screen

Double click on the Quest device, and browse folder by folder to get to this path:
This PC\Quest 3\Internal shared storage\Android\data\com.Rockhopper.GuitarGods\files\UnrealGame\GuitarGods\GuitarGods\Content\CustomSongs

If you get to the "Content" folder and there is no subfolder named "CustomSongs" yet, create a folder with that exact name and then browse into it. Open a second File Explorer (ie. SHIFT+click on the File Explorer icon on the taskbar) so you can keep the first File Explorer at to the IMMERROCK custom songs folder. In the second File Explorer instance, browse to where EOF exported the subfolder(s) during IMMERROCK export (this will be in your project folder). Copy all of the export subfolders that you want to play to Windows’s clipboard and then go back to the first File Explorer instance and paste them into the CustomSongs folder on the headset:
screen

Once the paste operation is done, there is no way to demand Windows to eject the storage like you would with a flash drive, so you will just have to unplug it from your computer. Then when you launch the game, if everything worked well your charts will appear in the song list:
screen

Play the song and if you see any problems, bring them to the attention of EOF’s or IMMERROCK’s developers for help in the IMMERROCK Discord server. Please remember that IMMERROCK is still in early access so it is fair to expect that there are bugs to work out and features that aren’t finished being implemented. Be kind and patient. If you are willing, it is also helpful for you to perform any troubleshooting you can, such as determining whether a problem only happens in specific scenarios (ie. the game crashes, but only if a specific feature like lyric display is enabled). Most importantly, have fun!