COMMAND LINE TOOL FOR CLONE HERO

PASTE A SPOTIFY LINK.
GET A CLONE HERO CHART.

SongHero downloads the track, analyzes the audio, and builds a chart with 4 difficulty levels in one command. You don't need to know how to chart.

amplifier: songhero
~ $ songhero https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b --gemini --video
Downloading Bohemian Rhapsody...
Analyzing beats, pitch & song structure...
Gemini refining note patterns...
Saved to ~/Desktop/Clone Hero/Queen - Bohemian Rhapsody (SongHero AI)/

From link to chart folder

No MIDI editing and no manual charting. You give it a Spotify link and run one command.

Spotify to chart

Paste a Spotify track URL and SongHero finds the audio, downloads it, and generates a chart. It needs no API keys for Spotify, only the link.

Gemini section mapping

With the --gemini flag, Google Gemini 2.0 Flash maps song sections (verses, choruses, bridges) and suggests note patterns for each one.

4 Difficulty Levels

Easy, Medium, Hard, and Expert, each with its own note grid. Orange fret and chords appear from Hard up, scaled to the song's intensity.

Music video background

With the --video flag, SongHero also downloads the music video and saves it as the video background Clone Hero expects.

Beat-Accurate Timing

librosa extracts onsets, tempo, and pitch curves from the audio, so each note is placed on a detected beat.

Ready-to-play folder

The output is a Clone Hero song folder with notes.chart, song.ini, album art, and audio. Move it to your Songs folder and play.

Four steps, one command

From a Spotify URL to a chart folder you can play.

01

Resolve

Extracts song title, artist, album art, and metadata from the Spotify URL using public info, so no login is required.

02

Download

Fetches the highest-quality audio and optional music video from YouTube via yt-dlp and ffmpeg.

03

Analyze

librosa detects beats, onsets, and pitch. Gemini maps song sections and suggests note patterns per difficulty.

04

Generate

Builds a .chart file with all 4 difficulties, writes metadata, and packages everything into a ready-to-play folder.

From Easy to Expert

Every chart includes all four difficulty levels.

Difficulty Note Density Orange Fret Chords Style
EASY 25% No No Simple single notes on strong beats
MEDIUM 50% No No Faster single notes, varied patterns
HARD 70% Yes Yes Orange notes, some chords, faster sections
EXPERT 90% Yes Yes Dense patterns, full chords, all notes mapped

Install in one command

Works on macOS and Linux. Windows via WSL.

$ curl -sSL https://raw.githubusercontent.com/jackwallner/portfolio/main/docs/songhero/install.sh | bash
Prerequisites: brew install yt-dlp ffmpeg · pip3 install librosa soundfile numpy scipy

What you get

Each chart is saved as a Clone Hero song folder. Copy it into your Songs directory.

~/Desktop/Clone Hero/
└── Queen - Bohemian Rhapsody (SongHero AI)/
    ├── notes.chart  All 4 difficulties
    ├── song.ini      Metadata (artist, album, length)
    ├── song.opus    High-quality audio
    ├── album.jpg    Album cover art
    └── video.mp4    Music video background

Stop charting by hand.

Paste a link. Get a chart. Play the song.