CRYSTAL FOCUS X
Beginner Guide Series
AUDIO TRACKS
Tracks folder · Music player · iSaber mode · Idle audio

Audio Tracks & Music Player

A practical guide to track files, music playback, iSaber mode, idle ambience, track gestures, and the music player configuration on Crystal Focus X.

What you will learn
  • The difference between global, font-local, and idle tracks
  • Where track files go and how they must be named
  • Which WAV format to use
  • How to play, pause, skip, and control tracks
Main locations
Global tracks
tracks/
Font-local tracks
<font>/tracks/
VU meter art
extra/VUMETER/
Best used for
  • Character themes and soundtrack clips
  • Ambient idle audio
  • Per-font music playlists
  • Shared track libraries across multiple fonts

What Are Audio Tracks?

The CFX has a built-in music player that can play WAV audio files such as background music, character themes, ambient soundscapes, or any other audio you want. Tracks play through the saber speaker alongside normal saber sounds.

TypeFilename PatternLocationPurpose
Global trackstrack1.wav, track2.wav, ...tracks/Shared across all fonts
Font-local trackstrack1.wav, track2.wav, ...<font>/tracks/Specific to one sound font
Idle tracksidle1.wav, idle2.wav, ...<font>/tracks/Auto-play ambient audio for a font

A special file named cantina.wav can also live in the global tracks/ folder for quick serial access.

Where Track Files Go

Global Tracks

SD Card Root/
└── tracks/
    ├── track1.wav
    ├── track2.wav
    ├── track3.wav
    └── cantina.wav

Global tracks are shared across all fonts, but they require iSaber mode to be active.

Font-Local Tracks

1-MyFont/
├── hum.wav
├── clash1.wav
├── ...
└── tracks/
    ├── track1.wav
    ├── track2.wav
    ├── idle1.wav
    └── idle2.wav

Font-local tracks belong to one sound font only. When you change fonts, the local track library changes too.

Themed Tracks

0-Jedi/
└── tracks/
    ├── track1.wav
    └── track2.wav

When themes are active, global tracks go in the theme’s tracks/ folder. Font-local tracks still live inside the font folder within that theme.

Track Audio Format

For the best compatibility, keep your track files in this format:

TL;DR: WAV, 16-bit PCM, mono, 44.1 kHz recommended or 22.05 kHz.
SettingRecommended value
File type.wav
Encoding16-bit PCM
ChannelsMono
Sample rate44.1 kHz recommended, 22.05 kHz also supported

Using this format helps avoid playback issues and keeps behavior consistent across regular tracks, idle tracks, and themed track folders.

File Naming Rules

Important: If you skip a number, files after that gap will not be found. For example, if you have track1.wav and track3.wav but no track2.wav, only track1.wav will be detected.

Global Tracks vs. Font-Local Tracks

The CFX handles two separate track pools. Font-local tracks are always available when the current font has a tracks/ subfolder. They work immediately with no extra setup. Global tracks require iSaber mode to be active.

Tip: If your fonts do not have their own tracks/ subfolders, you need to activate iSaber mode through the vocal menu before the player can use global tracks.

Playing Tracks

Tracks play only when the blade is OFF. If a track is playing and you ignite the blade, the track stops automatically.

Double-Click the Activator

This only works when tracks are available.

Long-Press the Activator

When trackgest=0, holding the activator while the blade is off skips to the next track.

Twist Gestures

When trackgest=1 is enabled, you can skip by twisting the saber while holding the activator.

When track gestures are enabled, the long-press skip method is disabled.

Idle Tracks

Idle tracks are ambient audio files that play automatically when the saber is idle and the blade is off. They are always font-specific and must live inside the font’s tracks/ subfolder.

Use case: Idle tracks are great for breathing sounds, ambient environments, or subtle background audio while the saber is resting.

Playback Behavior

What Happens When a Track Ends

Track Playback While the Blade Is Active

Tracks do not play while the blade is on. If a track is playing and you ignite the blade, the track stops immediately. This is by design so the audio system stays focused on saber effects.

Configuration Settings

shuffle=

ValueModeDescription
0RandomPure random, with repeats allowed
1SequentialTracks play in order and wrap around
2Random without repeatsAll tracks play in random order before any repeat
3ExpressiveMore varied random-style behavior
shuffle=2

loop=

ValueBehavior
0Auto-advance to the next track
1Loop the current track continuously
loop=0

pause=

ValueBehavior
0Pause stops and rewinds to the beginning
1Pause freezes in place and resumes from the same position
pause=1

trackgest=

ValueBehavior
0Track gestures off, long-press skip enabled
1Track gestures on, twist navigation enabled
trackgest=1

Vocal Menu — Tracks / iSaber Entry

In the vocal menu’s font list, the last entry after all your sound fonts is the Tracks item. Its selection sound and display image come from the global tracks/ folder. Selecting it activates iSaber mode, which tells the music player to use global tracks instead of font-local ones.

When you go back and select a regular font, iSaber mode is disabled again and the player switches back to that font’s local tracks, if available.

OLED Display — VU Meter

When tracks are available, the OLED can show a VU meter page that visualizes audio levels in real time during playback. The background image comes from vumeter.bmp in either the active theme’s extra/VUMETER/ folder or the root /extra/VUMETER/ folder.

The VU meter page appears in the OLED page rotation and can be cycled with the AUX button while the blade is off.

Serial Commands

CommandAction
w-trackPlay next track
w-track=NPlay track number N
w-ptrackPlay previous track
w-ltrack=NPlay local font track number N
w-pltrackPlay previous local font track
w-itrack=NPlay global iSaber track number N
w-pitrackPlay previous global iSaber track
w-dltrack=NPlay idle track number N
w-stoptrackStop track playback
w-pausetrackToggle pause or resume
Important: Track numbers in serial commands are 0-based. That means w-track=0 plays track1.wav, w-track=1 plays track2.wav, and so on.

SD Card Layout Examples

Minimal Setup — Font-Local Tracks Only

SD Card Root/
└── 1-MyFont/
    ├── hum.wav
    ├── clash1.wav
    └── tracks/
        ├── track1.wav
        └── track2.wav

No special config is needed. Double-click the activator with the blade off to start playback.

Global Tracks for All Fonts

SD Card Root/
├── tracks/
│   ├── track1.wav
│   ├── track2.wav
│   ├── track3.wav
│   └── font.bmp
├── 1-Jedi/
│   └── ...
└── 2-Sith/
    └── ...

Use the vocal menu’s Tracks entry to activate iSaber mode, then double-click the activator to play.

Mixed Setup — Both Global and Font-Local

SD Card Root/
├── tracks/
│   ├── track1.wav
│   └── track2.wav
├── 1-Jedi/
│   ├── hum.wav
│   └── tracks/
│       ├── track1.wav
│       ├── idle1.wav
│       └── idle2.wav
└── 2-Sith/
    ├── hum.wav
    └── tracks/
        └── track1.wav

Themed Setup

0-Jedi/
├── config.txt
├── tracks/
│   ├── track1.wav
│   └── track2.wav
├── 1-Guardian/
│   └── tracks/
│       ├── track1.wav
│       └── idle1.wav
└── 2-Sentinel/
    └── ...

Quick Reference

TaskHow
Play or pause a trackDouble-click activator with blade off
Skip to next trackHold activator 1 to 2 seconds with blade off when trackgest=0
Skip forwardTwist right while holding activator when trackgest=1
Skip backwardTwist left while holding activator when trackgest=1
Use global tracksSelect the Tracks entry in the vocal menu
Use font-local tracksSelect a normal font in the vocal menu
Set shuffle modeshuffle=0/1/2/3 in config.txt
Enable loopingloop=1 in config.txt
Enable pause-in-placepause=1 in config.txt
Enable twist navigationtrackgest=1 in config.txt
Stop track via serialSend w-stoptrack

Tips