🎵 CUSTOM TRACK MANAGEMENT MASTERCLASS

How to Add Songs to Frets on Fire: Library Directory Manual

Want to expand your tracklist past the stock tutorials? The true power of Frets on Fire lies in its limitless custom chart library framework. Whether you are adding individual custom community tracks, bulk loading multi-tiered Guitar Hero track packs, or archiving legacy charts, you must inject them into the precise file tree nodes. Learn the native structural routing rules to bypass profile indexing errors completely.

📂 Absolute Target Destinations

Before downoading custom assets, open your file system browser and locate the absolute root deployment path assigned to your operating system flavor:

Windows (Portable / Full Installer)
[Your_Game_Folder]\data\songs\
Linux / Unix Standard Source Layout
/usr/share/games/fretsonfire/data/songs/

📌 Strict Library Ingestion Rules

The client engine checks song indices during initial booting loops. Violating these constraints will lead to invisible tracks inside the UI picker:

  • No Nested Double Folders: When extracting a downloaded tracker archive, ensure the files (notes.mid, etc.) sit directly inside /songs/[songname]/, not wrapped inside a redundant duplicate subfolder layer.
  • Lower-Case String Sanity: Avoid non-alphanumeric special characters in your song folder names to ensure cross-platform string parser compatibility.
  • Case Sensitivity: Linux setups enforce case matching rules on data file extensions. Verify all file attachments run lowercase trailing scripts (.ogg / .mid / .ini).

🛠️ Anatomy of a Frets on Fire Chart Folder

Every individual track sub-directory operates as a standalone runtime pack. To load successfully inside the song picker menu, the directory must contain these exact case-sensitive assets.

Required File Asset Strict Format System Engine Operational Role
notes.mid Standard MIDI Contains the structural coordinate layout array for note tracks, difficulty triggers, and synchronization timing offsets.
guitar.ogg Ogg Vorbis Audio The main instrument layer audio stream. The client mutes or quietens this track in real-time frame sequences if you miss a note.
song.ini Plain Text Configuration The metadata blueprint holding track identity arrays including Artist name, Song Title, Album info, and custom scoring markers.
song.ogg (Optional) Ogg Vorbis Audio Background accompaniment stream (bass, drums, vocals). Plays consistently regardless of fretboard precision performance.
label.png (Optional) PNG Image Renders the graphical layout wrapping asset directly onto the physical virtual cassette tape art representation inside the UI menu.

🚀 Step-by-Step Injection Execution Protocol

Step 1: Extract the Track Archive Base

Unpack your downloaded archive (.zip/.rar/.7z). Open the extracted file output cluster to confirm that notes.mid and guitar.ogg sit directly inside the root tier of that folder layout block.

Step 2: Transfer to Target File Tree Nodes

Cut or copy the entire parent folder, then navigate directly to your local data\songs\ directory node. Paste the directory here. If your custom song is called “Master of Puppets”, your resulting track file architecture should mirror: data\songs\master_of_puppets\notes.mid.

Step 3: Boot Client & Trigger Cache Re-Index

Launch the game executable. Enter the main song picker list array. The internal core engine will track the new directory addition, parse the metadata located inside song.ini, and append your custom chart block to the gameplay rotation loop instantly.

METADATA ENGINE ARCHITECTURE

📜 Mastering the song.ini Configuration Matrix

Is your custom track showing up as “Unknown Artist” or breaking the client UI? Take direct control of the engine’s information tags with precision string keys.

The song.ini initialization file is a structural plain-text script that dictates how the internal game directory scanner renders the track information on screen. If this asset script is missing or contains damaged parameter brackets, the client engine will fall back to using raw directory folder strings, ruining the immersion of your collection database.

📋 Standard song.ini Boilerplate Blueprint
[song]
name = Master of Puppets
artist = Metallica
album = Master of Puppets
year = 1986
genre = Thrash Metal
cassettecolor = #541c1c
scores = 
delay = 120
tracks = guitar
💡 Tip: You can create a new blank text document, paste the block above, edit the strings, and save it exactly as song.ini to repair broken custom tracks.

🔍 Core Parameter Mapping Guide

  • [song]
    The structural header block declaration. Must sit on line 1 with zero leading whitespace spaces.
  • name / artist
    Controls the primary display text rendered on the virtual audio cassette sticker layout.
  • cassettecolor
    Accepts standard HEX color codes to customize the background shell asset color scheme inside modern mod templates.
  • delay
    Defines millisecond operational offsets ($120 = 120\text{ms}$) to manually force track synchronization adjustments if your midi markers drift out of audio sync alignment frames.
CROSS-PLATFORM CHART COMPATIBILITY

🔄 Importing Guitar Hero Packs & Chart Conversions

Bridge the gap between modern rhythmic ecosystems. Convert legacy .chart assets into structural engine-compliant MIDI note streams seamlessly.

⚠️ Understanding .chart vs. notes.mid Protocols

Many modern rhythm community databases distribution platforms archive files in the native FeedBack .chart format rather than a standard MIDI compilation file track. Because the raw Frets on Fire core app client architecture only parses standardized notes.mid map sequences, placing a raw standalone .chart document into your songs tree will render that track entirely unplayable.

To structuralize your files back to optimal operational parameters, follow the official conversion blueprint below to map note tracking arrays to the standard MIDI index grid.

🛠️ Standard Chart Recalibration Execution Manual

The EOF Compiler Route

Most Reliable

Utilize the open-source utility EOF (Editor on Fire) to process compilation assets with maximum alignment safety:

  1. Launch the EOF interface and go to File → New to hook your music wrapper.
  2. Navigate to File → Import → Feedback Chart (.chart) and select your layout asset.
  3. Execute a standard save sequence. EOF will auto-compile a flawlessly mapped notes.mid file directly into that operational work folder.

Automated Game Link Layer

Built-In Tooling

If you run expanded base installations like FoFiX (Frets on Fire Extended mod branches):

  1. Drop the raw directory clusters containing original game files directly inside your songs array folder node.
  2. Boot up the engine framework and enter the Tools / Options control dashboard menu.
  3. Trigger the internal “Import Guitar Hero Songs” system loop script to compile tracking values and audio splits into structural binary configurations natively.