Title: MP3 Playback Description: Play MP3 files over GhostLink using the Audio app URL: /latest/audio/playback/ Version: latest Section: Audio Search index: /search-index.json # MP3 Playback > Play MP3 files over GhostLink using the Audio app ## On this page - [Requirements](#requirements) - [File Setup](#file-setup) - [Opening the App](#opening-the-app) - [Controls](#controls) - [Playback Behavior](#playback-behavior) - [GhostLink Commands](#ghostlink-commands) - [Troubleshooting](#troubleshooting) --- The Audio app plays MP3 files stored on the SD card and streams them over GhostLink between the two chips in The Banshee. ## Requirements - The Banshee hardware. Its two-chip audio setup uses the Banshee_C5 and Banshee_S3 builds. - A GhostLink connection between the Banshee control/display chip and audio receiver chip. - MP3 files on the SD card in /mnt/ghostesp/audio. - MP3 bitrate under 264kbps. Higher bitrate files are rejected with an on-device toast. - For headphone output, the TLV320DAC3100 route is detected once before playback starts. ## File Setup Create this folder on the SD card: /mnt/ghostesp/audio Copy .mp3 files into that folder. The Audio app scans the folder when it opens and lists the tracks alphabetically. Recommended encoding: - MP3, constant bitrate when possible. - 128kbps or 160kbps for best reliability. - Under 264kbps; 264kbps and higher is not accepted. - Standard sample rates such as 44.1kHz. ## Opening the App On the device UI, open: Apps → Audio If no MP3 files are found, the app shows a toast asking for files in /mnt/ghostesp/audio. ## Controls - Tap a track row to start playback. - Use previous/next to switch tracks. - Use play/pause to pause or resume playback. - Encoder rotation adjusts volume on supported hardware. - Touch-drag inside the track list scrolls the list. The currently selected row is marked SEL. The active track is marked PLAY; paused playback is marked PAUSE. ## Playback Behavior Audio data is sent over GhostLink as a paced stream. The receiver reports its audio buffer fill level and playback time back to the sender so the stream can adapt to real receiver conditions. The app displays: - Current track name. - Elapsed and estimated total time. - Playback state. - Detected bitrate. - Receiver buffer percentage when feedback is available. - Volume percentage. Pause is immediate: the receiver discards buffered audio and resets output so it does not continue playing through the queued buffer. ## GhostLink Commands These commands are used internally by the Audio app and can be useful for debugging: audio start audio stop audio pause audio flush audio state <fill_bytes> <capacity_bytes> <played_ms> audio state is sent by the receiver to report buffer fill and playback clock. The sender uses it for progress display and adaptive pacing. ## Troubleshooting - Audio app is missing: Audio playback is currently Banshee-only. Make sure both Banshee chips are flashed with the correct paired builds. - No files shown: Check that the SD card contains .mp3 files in /mnt/ghostesp/audio. - Bitrate toast appears: Re-encode the file below 264kbps; 128kbps or 160kbps is recommended. - Playback underruns or stutters: Try a lower bitrate file and confirm GhostLink is connected with no other streaming app active. - No headphone output: Reconnect headphones before starting playback so one-shot route detection can select the right output path. - Progress looks wrong: Some VBR files do not expose accurate duration data. CBR files produce more stable estimates.