fact-lap/file-converter
0
File Converter
Flask/Docker file converter for images, documents, audio, and music notation.
Music / Notation Lane
Deterministic conversions:
.musicxml/.xml/.mxl/.mscz->.pdf,.mid,.musicxml,.mscz,.wav,.mp3,.flac,.ogg.mid/.midi->.pdf,.musicxml,.mscz,.wav,.mp3,.flac,.ogg
Draft AI transcription:
- audio (
.mp3,.wav,.flac,.aac,.ogg,.m4a,.opus,.wma) ->.mid,.musicxml,.pdf - direct mode runs
basic-pitch - demucs mode runs
demucsfirst, thenbasic-pitch - melody cleanup can collapse noisy transcription to one monophonic line and optionally quantize to 1/8 or 1/16
The audio transcription lane is lossy and should be treated as a draft score for human cleanup.
Stem split:
- audio ->
.zipcontaining separate WAV stems - two-stem mode: vocals + instrumental
- four-stem mode: vocals + drums + bass + other
Runtime Tools
Required system tools:
ffmpegmusescore3or another MuseScore CLI available asMUSESCORE_BINdemucsfor stem split and optional transcription pre-processing
Python dependencies are pinned in requirements.txt, including basic-pitch, demucs, music21, mido, librosa, pretty_midi, torch, and torchaudio.
MuseScore runs headless with:
QT_QPA_PLATFORM=offscreenVerified RunPod Phase 0
Verified on RunPod pod 5k6kk9qklo23l0:
- RTX 4090 / CUDA visible through PyTorch
- MusicXML -> PDF
- MusicXML -> MIDI
- WAV -> MIDI through basic-pitch
- WAV -> MIDI through demucs + basic-pitch
- WAV -> draft PDF through basic-pitch + MuseScore
