SkillAgentSearch skills...

BACH

A Music GenAI (ICASSP 2026 Paper, Accepted)

Install / Use

/learn @WtxwNs/BACH
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="right"> <details> <summary >🌐 Language</summary> <div> <div align="center"> <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=en">English</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=zh-CN">简体中文</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=zh-TW">繁體中文</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=ja">日本語</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=ko">한국어</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=hi">हिन्दी</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=th">ไทย</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=fr">Français</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=de">Deutsch</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=es">Español</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=it">Italiano</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=ru">Русский</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=pt">Português</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=nl">Nederlands</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=pl">Polski</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=ar">العربية</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=fa">فارسی</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=tr">Türkçe</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=vi">Tiếng Việt</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=id">Bahasa Indonesia</a> | <a href="https://openaitx.github.io/view.html?user=WtxwNs&project=BACH&lang=as">অসমীয়া</ </div> </div> </details> </div> <p align="center"> <img src="https://raw.githubusercontent.com/WtxwNs/BACH/main/tokenpair.png" width="85%"/> <br><br> <i>Watch how BACH turns raw tokens into structured music—step by step.</i> </p>

BACH: Bar-level AI Composing Helper

<p align="center"> <a href="https://arxiv.org/abs/2508.01394"> <img src="https://img.shields.io/badge/arXiv-2508.01394-b31b1b.svg" alt="arXiv"/> </a> <a href="https://github.com/WtxwNs/BACH/blob/main/LICENSE"> <img src="https://img.shields.io/github/license/WtxwNs/BACH" alt="License"/> </a> <img src="https://img.shields.io/github/repo-size/WtxwNs/BACH" alt="Repo Size"/> <img src="https://img.shields.io/github/stars/WtxwNs/BACH?style=social" alt="Stars"/> </p>

> "Via Score to Performance: Efficient Human-Controllable Long Song Generation with Bar-Level Symbolic Notation"
> ICASSP 2026 Submission – Accepted


🎼 One-sentence Summary

BACH is the first human-editable, bar-level symbolic song generator:
LLM writes lyrics → Transformer emits ABC score → off-the-shelf renderers give minutes-long, Suno-level music.
1 B params, minute-level inference, SOTA open-source.


📦 What is inside this repo (preview release)

| Path | Description | |------|-------------| | README.md | This file | | code/ | inference code | | example.mp3 | an example song | | fig/ | Architecture figure |


🏗️ Model Architecture (one glance)

User prompt Qwen3 — lyrics & style tags BACH-1B Decoder-Only Transformer ABC score (Dual-NTP + Chain-of-Score) ABC → MIDI → FluidSynth + VOCALOID Stereo mix

| Component | Key idea | |-----------|----------| | Dual-NTP | Predict {vocal_patch, accomp_patch} jointly every step | | Chain-of-Score | Section tags [START:Chorus] ... [END:Chorus] for long coherence | | Bar-stream patch | 16-char non-overlapping patches per bar |


🧪 Quick start (CPU friendly)

# 1. Clone
git clone https://github.com/your-github/BACH.git
cd BACH

# 2. Install
pip install -r requirements.txt        # transformers>=4.41 mido abcpy fluidsynth

# 3. Generate ABC
python bach/generate.py \
    --prompt "A rainy-day lo-fi hip-hop song about missing the last train" \
    --out_abc demo/rainy_lofi.abc

# 4. Render audio

🎧 Listen now

example.mp3 is ready for you, it's a whole song. You can compare it with Suno🙂

Full release upon related paper acceptance

  • Complete training set (ABC + lyrics + structure labels)
  • BACH-1B weights (Transformers format)
  • Training scripts (multiphase + multitask + ICL)
  • Complete Code

📎 Citation

Paper is released on Arxiv,

@misc{wang2025scoreperformanceefficienthumancontrollable,
      title={Via Score to Performance: Efficient Human-Controllable Long Song Generation with Bar-Level Symbolic Notation}, 
      author={Tongxi Wang and Yang Yu and Qing Wang and Junlang Qian},
      year={2025},
      eprint={2508.01394},
      archivePrefix={arXiv},
      primaryClass={cs.SD},
      url={https://arxiv.org/abs/2508.01394}, 
}
View on GitHub
GitHub Stars148
CategoryDevelopment
Updated3d ago
Forks15

Languages

Python

Security Score

80/100

Audited on Mar 31, 2026

No findings