hendrix / README.md
jackboyla's picture
Update Hendrix music transcription demo
2115e2f verified
|
Raw History Blame Contribute Delete
3.03 kB
metadata
title: Hendrix
emoji: 🎹
colorFrom: purple
colorTo: pink
sdk: static
app_file: index.html
fullWidth: true
short_description: Music to MIDI on your device. Your audio stays local.
tags:
  - music
  - automatic-music-transcription
  - audio-to-midi
  - onnx
  - webgpu
custom_headers:
  cross-origin-embedder-policy: require-corp
  cross-origin-opener-policy: same-origin
  cross-origin-resource-policy: cross-origin

Hendrix

Hear a recording, see its notes, and turn it into MIDI.

Explore 14 music clips: full-band mixes, guitar performances, electronic music, rock, folk, pop, hip-hop, and instrumental tracks. Each clip comes with prepared Hendrix predictions, so you can listen and download MIDI right away. Press play and drag the Original ↔ MIDI slider to blend the recording with its transcription. Seek through the waveform or mute individual instrument parts. MIDI plays with sampled instruments from GeneralUser GS by S. Christian Collins.

Choose a file or record with your microphone to transcribe your own audio. Decoding and inference run on your device; the app does not upload your recording. The first live transcription downloads 195.3 MB of model graphs and the browser runtime. WebGPU is preferred, with a WebAssembly CPU fallback. Start with two seconds on slower devices. The example library needs no model download.

Open the app directly for the full listening view. Microphone access depends on browser permissions. Predictions can miss notes, choose the wrong instrument, or give poor note endings.

The example audio comes from Free Music Archive, GuitarSet, and Slakh2100 under CC BY licenses. Clips are cropped to at most 12 seconds and converted to mono 16 kHz audio. Full creator, source, license, and crop credits accompany the clips. Prepared notes come from the fixed Hendrix model, not reference annotations. GeneralUser GS license.

The 46.5M-parameter model derives from YPTF-MoE+Multi. models/fp32/manifest.json records the source checkpoint and checked FP32 graph hashes. deployment.json records the app source and file hashes. This static Space needs no server-side inference or GPU.

Source, methods, results, and deployment commands

The source/ directory contains the exact app source and prepared audio assets used for this deployment. To rebuild and publish from that snapshot:

cd source
npx --yes pnpm@10.20.0 --dir demo/web install --frozen-lockfile
hf auth login
uv run --no-project --with huggingface_hub==0.36.2 python \
  scripts/deploy_huggingface_space.py --graph-dir ../models/fp32 --upload

Omit --upload to build and check a local package. Each run prints the staging directory. The script checks the model and example hashes and refuses to change an existing Space's visibility or SDK.