Skip to content

Research: Evaluate demucs v4 and pyguitarpro GP8 support #4

Description

@carochacs

Related SOTA Research Issues


Research Objective

Evaluate stem separation quality improvements in demucs v4 vs. current v3, and verify Guitar Pro format parsing supports latest GP8 versions without regressions.

Current Approach

  • Stem separation: demucs v3 (Facebook Meta) + Roformer via audio-separator
  • Format parsing: pyguitarpro>=0.10.1 for GP3–GP5, pure Python GPIF parser for GP6/7/8
  • MusicXML: stdlib xml.etree.ElementTree (lightweight, sufficient)

SOTA Alternatives

Option 1: Demucs v4

  • Pros: Improved source separation quality, better vocal/drum isolation, newer models
  • Cons: Different model API, potential performance regression if slower
  • Cost: Dependency bump, minor integration work

Option 2: Roformer (already in use)

  • Status: Competitive with demucs v4 on many benchmarks; no urgent change needed

Option 3: UVR backend variants

  • Status: Redundant given Roformer; not prioritized

Research Methodology

Phase 1: Literature Review (2–4 hours)

  • Papers: Demucs v4 paper/blog post, source separation benchmarks (MUSDB18)
  • GitHub: facebookresearch/demucs (branches, issues, v4 changelog)
  • Benchmarks: MUSDB18 dataset, existing test songs

Phase 2: PoC Setup (4–8 hours)

  1. Install demucs>=4.0.0 alongside v3
  2. Export stems using both versions on test songs
  3. Compare output files (bitrate, duration, quality)
  4. Verify pyguitarpro on latest GP8 files (if available)

Phase 3: Benchmark (8–16 hours)

  • Test corpus: 5–10 diverse songs (rock, pop, acoustic, jazz, electronic)
  • Metrics:
    • Source separation quality (SDR, ISR, SIR on MUSDB18 if applicable)
    • Inference time (seconds per minute of audio, CPU vs. GPU)
    • Output bitrate / file size consistency
    • GP8 parser: verify no errors on real-world GP8 files
  • A/B comparison: Manual listening, frequency-domain plots

Phase 4: Decision (2–4 hours)

  • If demucs v4 SDR improvement > 1 dB AND latency acceptable → adopt
  • If latency regression > 20% → stay on v3
  • For GP8: if parser handles all test files → update docs, no code change needed

Success Criteria

  • Benchmark dataset: 5–10 songs, diverse genres
  • Primary metric: SDR (Source-to-Distortion Ratio) on MUSDB18 subset or custom eval
  • Secondary metric: Inference latency (CPU/GPU time per minute audio)
  • GP8 success: 100% parser pass rate on test files
  • Decision rule: "Upgrade demucs v4 if SDR gain > 1 dB and latency increase < 20%"

References

Metadata

Metadata

Assignees

Labels

researchThis is a theoretical approach that requires extensive research

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions