
A song editor for "Frets On Fire"
Table of Contents
Now let's get into the heart of EOF, editing songs. EOF has several edit modes and each one operates in a different fashion. In order to get the most out of EOF you will want to use an edit mode that you are comfortable with. Before we go there, you will need to have a song opened for editing.
[ Creating Songs ] [ Loading Songs ] [ Saving Songs ] [ Edit Modes ] [ Editor Keys ] [ Recording Input ]
To create a new song, select "File->New" from the menu. See "File->New" for details.
There are two ways to load a song in EOF. The first way applies to songs that were created using EOF. Select "File->Load" and navigate to the "notes.eof" file that is in the folder of the song you want to edit. The second way applies to songs that were created in other editors that you wish to work on in EOF. Select "File->MIDI Import" and navigate to the "notes.mid" file located in the folder of the song you want to edit. It is recommended that you not use MIDI Import if you have a corresponding "notes.eof" as each subsequent load and save will degrade the accuracy of the note positions in the song. Instead, if you are going to work on a project that was started in another editor, use MIDI Import the first time and Load it from "notes.eof" for subsequent edits.
EOF supports loading EOF projects and importing MIDI songs into EOF projects through the command line. You can configure your operating system to associate ".eof" with EOF so that double clicking them will automatically launch EOF and load the project. It is not recommended that you associate EOF with MIDI files as they are a standard music format and should be associated with a proper music player. If you install a new version of EOF in a different location you will need to re-associate ".eof" files if you want this feature to continue working.
To save your work, select "File->Save." When you save your song, EOF saves three files: "notes.eof," "notes.mid," and "song.ini." "notes.eof" is the song data in EOF's native format. The ".eof" format holds the Artist, Title, Frettist, the precise positions of the notes and beat markers, and other project details. "notes.mid" is the FOF compatible notes. "song.ini" is the song information file used by FOF. Additionally, "guitar.ogg" will be created if one does not exist in the folder where the song files are being saved. If you are wondering why EOF doesn't just load and save directly from and to MIDI it is because I wanted to guarantee that the note positions would be exactly the same with each load/save. A lot of calculations are done to create a properly formatted MIDI file and inaccuracies in floating-point math could lead to slight changes in note positions over several editing sessions.
[ Classic Edit Mode ] [ Piano Roll Edit Mode ] [ Hold Edit Mode ] [ RexMundi Edit Mode ] [Guitar Tap Edit Mode ] [Guitar Strum Edit Mode ]
Before I describe the individual edit modes there are a few things that all edit modes (also referred to as "input methods") have in common. Firstly, all editing takes place in the edit pane that is located across the top of the screen. There are four tabs corresponding to the four different difficulty settings in FOF. The tab that is pulled to the front is the one that is currently being edited. To pull another tab to the front just click on the tab you want. Difficulties which contain notes will have an asterisk (*). In all edit modes notes are placed using the "pen." In some modes the "pen" is positioned at the mouse's x position on the screen. In others it is located at the green song position marker. How the pen operates depends on which edit mode you are using.
Classic edit mode is the original edit mode used by early versions of EOF. In this mode the "pen" has note toggles corresponding to the five note colors. To toggle them use the keys 1-5. Right-click to place a note at the position of the pen.
Piano Roll edit mode works similarly to MIDI sequencer programs. The note colors are selected by positioning the mouse where that note color would be on the fret board. To add a note, right-click the position you want to add a note. If there is already a note at the position you right-click the color you click will be toggled within the note that is already there.
Hold edit mode is exactly the same as Classic mode except you don't toggle the note colors. Instead you hold the corresponding number (1-5) and right-click to add the note at the position of the pen.
RexMundi edit mode is exactly like Piano Roll mode except you use the keys 1-5 to toggle notes at the current pen position instead of right-clicking them.
This mode is useful if you have a guitar controller hooked up to your computer and would like to tap out the notes on the fret buttons as the song plays. In this mode you cannot place chords or sustained notes. See the section Recording Input below for details on how to use this input method.
This mode is similar to Guitar Tap except you must strum (assigned to Enter and Backslash keys) in order to place notes. This mode allows chords and will place notes as if you were actually playing the song in FOF. See the section Recording Input below for details on how to use this input method.
EOF allows you to define buttons for and use a keyboard/game controller/etc. to place notes while EOF plays the chart. While this is not really an accurate method to chart, it does allow for some improvisational charting that you can edit to your liking afterward. The guitar frets, two strum keys (one for up, one for down), 4 drum pads and a bass pedal are definable keys to use for inputting notes in PART DRUMS or in any of the guitar or bass guitar tracks. To set up your controller for having EOF accept your input during playback i na guitar/bass track, follow these steps:
- Tune EOF for smooth playing. Especially if you're going to place notes during playback, it is recommended that you have configured EOF's settings so that the AV delay has been configured accurately (See "Setting Up Your AV Delay") and that the buffer size is adequate enough to allow for playback without any stuttering/skipping of the audio. Enable or disable "Disable Vsync" and "Smooth Playback" in EOF's settings as needed so that the chart scrolls smoothly during playback.
- Open EOF's File menu and select Controllers. Click the Guitar button and for each button you want to define/change, select the button, click the Redefine key and then press the key/controller button you want to use. EOF will let you use any game controller or nearly any key on the keyboard, but will not allow you to set the Spacebar to any guitar or drum button because it is used to start/pause chart playback. Pressing Escape will cancel the button definition and undefine that controller button. If EOF doesn't seem to be accepting your game controller's input, verify that it is plugged in and that your Operating System recognizes that it is connected. If you plug the controller in after EOF starts, you may need to restart EOF before it can detect the controller. Defining the strum key is only necessary if you will be using the "Guitar Strum" input method, since the "Guitar Tap" method does not use a strum to record notes during chart playback. If any of the buttons are mapped to use the same key or controller button, EOF will present a warning to bring this to your attention. Make sure all of the strum and fret definitions have a unique button set to them. Once you are finished mapping all of your buttons, click the OK button to return to EOF. Open EOF's Preferences menu and select the Guitar Tap or Guitar Strum input method, none of the other input methods allow you to record guitar notes during playback.
- Open a beat synced chart. You can open one that you or somebody else created if you are certain it is correctly synced, or simply have EOF import the MIDI file for one of the Rock Band charts with decrypted audio. Ensure Grid Snap is turned OFF. Begin playback of the chart and enter notes in time with the music, such as on every drum beat. If you configured everything correctly, you should see notes being placed on the chart while the chart is playing. After you have entered at least a few notes, you can pause playback by hitting the Spacebar. If you are not satisfied with your timing, you can optionally remove the notes you placed, play back the chart and add some more notes.
- While the chart is NOT playing, use Shift+PgUp/PgDn to seek to one of the notes you placed during playback and note the position time (given in minutes:seconds:hundredths of seconds)
- Use PgUp to seek to the beat immediately before the placed note and note the difference in time between this position and the position of the note from the above step.
- Examine multiple other placed notes and note the time difference between where the note is and where it was intended (on a beat line). Average these time differences and use that as your controller delay. The delay is measured in milliseconds instead of hundredths of seconds, so multiple the average time difference you got in step 3 by 10. You can enter this delay value by opening the File menu, selecting Controllers, clicking the Guitar button, clicking the Delay input field and typing the delay value you determined. Click OK to return to EOF.
- With Grid Snap still turned OFF, play the chart again, placing notes in time with the music. If the notes are still not being placed on the beats even though you know you are tapping in the correct rhythm and that the chart is beat synced, increase or decrease the controller delay slightly and repeat this step again. If several of the notes you place are landing on beat lines, then you are finished configuring the controller delay. Controller delay may change from one controller/keyboard to the next, so make sure to check each time you use a different input device to place notes during chart playback. If you use the same set of controllers, you can make a note of which delay each uses and just edit the delay to the correct value each time you change controllers without having to test for the correct delay each time.
Note: PART DRUMS uses the defined "Kick Pedal", "Red Drum", "Yellow Drum", "Blue Drum" and "Purple Drum" keys (defined in File>Controllers>Drums) to place notes when the chart is playing and the drum track is being displayed, even if you aren't using the Guitar Strum or Guitar Tap input methods. This "Drum Record" input method is designed to react like a drum instead of a guitar, such as by not placing sustained notes, allowing you to hold the bass pedal down and only placing a bass drum note when you press the defined button down from a released state. If you are using the same controller (ie. keyboard) for recording drum notes as you are for guitar notes, you can enter the delay you set for the guitar controller delay into the drum controller delay (File>Controller>Drums). Otherwise, mapping the keys to a connected controller and testing to find the correct delay is done the same way as with the guitar controller delay.
When your controllers and their delays are set up, you are ready to use the Guitar Strum, Guitar Tap and "Drum Record" input methods to place notes in your charts. If you are placing notes on a beat synced chart, make sure that you have Grid Snap enabled to your preferred setting. If you have a hard time playing in a really accurate timing, you can use a larger Grid Snap value such as 1/4 or 1/8 and EOF will round your recorded notes up or down to the nearest grid snap position as they are placed. If you have not beat synced the chart, make sure Grid Snap is turned off before having EOF record notes onto the chart during playback, or else the Grid Snap logic will cause the notes to NOT be placed accurately to reflet your input.
In order to effectively use EOF you will need to familiarize yourself with the controls. Below is a list of all the controls you will need to know:
Space Bar:
Play/Pause the music. Hold Control to play at half speed. Hold Shift to play the current catalog entry.
Left/Right:
Use Left/Right to scroll through the song. To scroll faster, hold Shift. To scroll slower hold Control.
Page Up/Page Down:
Seek to the previous/next beat marker.
Right-Click/Insert (notes):
Add a new note to the song.
Left-Click (notes):
Select the highlighted note for editing. Hold Control while clicking to select multiple notes. Hold Shift while clicking to select a range of notes.
Left-Click+Drag (notes):
Move selected note(s).
Mouse Wheel:
Scroll the mouse wheel up/down to change the length of the currently selected notes. Alternately, you can use the '[' and ']' keys to do the same.
1-5:
Does different things with the note colors depending on the current edit mode.
Left-Click (beats):
Select the highlighted beat.
Left-Click+Drag (beats):
Move the beat marker. An anchor is automatically created when you move a beat marker. Surrounding BPMs will be adjusted automatically. An anchor will not move unless dragged (unless a manual BPM Change is added), non-anchored beats will adjust to fit. Hold Shift when dragging a beat to prevent the notes within from being adjusted with the beat markers. Useful if you are beat syncing someone else's songs, for instance.
Right-Click (beats):
Seek to the highlighted beat line.
For another listing of available controls visit "Help->Keys" in the EOF menu.
In EOF songs are made up of Notes and Beat Markers. Each note can contain up to five colors allowing you to place chords as well as single notes. Note positions are stored in absolute time and are accurate to the millisecond. The length of the note is also stored as a duration in milliseconds.
Beat markers appear on each beat throughout the entire song. You don't have to mind the beat markers in order to create a synchronized song but most people find it desirable to do so. EOF takes a different approach to beat markers compared to the other editors as it doesn't force your notes to line up with the beat markers. Instead, you are free to place your notes in sync with the audio and synchronize the beat markers later on. This allows you to quickly make a playable song and leaves it up to you whether or not you want to spend the extra time making the beat lines line up with the notes.
Originally Frets On Fire only allowed you to play one track per song. When Guitar Hero 2 came out FOF added support for playing Bass, Rhythm, and Lead Guitar tracks in addition to the standard Guitar track. EOF allows you to include all of these tracks if you so desire. By default, the Guitar track (PART GUITAR) is selected but you can choose another track by going to "Song->Track" and selecting the track you want to edit. PART DRUM is not currently supported by FOF but there are mods available from the community that allow you to play the drum track. You can add drums to your song without worrying as only FOF versions that support PART DRUM will recognize the track. If you want a mod with full support for PART DRUM, you will probably want to get FoFiX (the most actively developed version of FOF at the time of this writing).
Note that PART_GUITAR_COOP will be displayed as "Lead Guitar" in "Frets On Fire."
EOF provides you with a catalog where you can store your frets for the current song. If, for instance, you have a song that has a repeating guitar part, you simply select all the notes in that part and select "Song->Catalog->Add" from the menu to add them to the catalog. Once you have some notes in the catalog, you can open the catalog ("Song->Catalog->Show") and see the various catalog entries. Use the playback controls to show the various entries and play them back. You can paste notes from the catalog using the "Edit->Paste From->Catalog" menu item. "Paste From->Catalog" will paste the notes from the currently selected catalog entry into the song starting at the beat in which the position line is set.
Some Frets On Fire mods allow you to use additional events in your songs for things such as adding a solo section. EOF allows you to place events at any beat marker in the song by first selecting a beat marker and then going to "Beat->Events" in the menu. From the "Events" dialog box use the "Add," "Edit," and "Delete" buttons to edit your events for the currently selected beat. You can view a list of all events for the entire song in "All Events" dialog ("Beat->All Events").
One neat thing you can do with events is add Practice mode sections to your song. To define a Practice mode section, simply add a text event to the beat where you want the section to start and name it "section whatever" where "whatever" is replaced with the name of the section as you want it displayed in the game.
Text events can also be used to define guitar solos but this method is deprecated (see "Note->Solos" for the correct way to define solo sections). Nonetheless, I will explain how to do so. To mark a solo section you simply add a text event at the start of the solo named "solo_on" and one at the end of the solo named "solo_off." Solos marked this way will appear in the Practice mode listing. Alternately, naming your event "section Guitar_Solo" or something containing the word "solo" will start a solo section. Solo sections defined this way will end when the next text event not containing the word "solo" is reached. You will need to define section markers where your solo sections are if you want them to show up in the Practice Mode listing.