hendrix / README.md
jackboyla's picture
Update Hendrix music transcription demo
2115e2f verified
|
Raw History Blame Contribute Delete
3.03 kB
---
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](https://jackboyla-hendrix.static.hf.space/) 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](https://huggingface.co/spaces/jackboyla/hendrix/blob/main/examples/CREDITS.md)
accompany the clips. Prepared notes come from the fixed Hendrix model, not
reference annotations. [GeneralUser GS license](https://huggingface.co/spaces/jackboyla/hendrix/blob/main/soundfonts/LICENSE.txt).
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](https://github.com/jackboyla/hendrix)
The `source/` directory contains the exact app source and prepared audio assets
used for this deployment. To rebuild and publish from that snapshot:
```bash
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.