| 경로 | 역할 |
|---|---|
FE/ |
Next.js 웹·PWA (/attendance/launch, 악보 뷰어, 내 악보) |
BandiBE/ |
Spring Boot API (인증, 악보·세션, 얼굴 캡처 S3, AI 작업 연동) |
BandiAI/ |
FastAPI + GPU 워커 (스템 분리, 편곡, 얼굴·악기 인식) |
| 기능 | 설명 | 주요 경로 |
|---|---|---|
| 스템 분리 | Demucs로 보컬·드럼·베이스 등 분리 | BandiAI/separate_stems.py, bandi_api/pipeline.py |
| 밴드 편곡 | REMI-z / music2music(m2m) 기반 MIDI·PDF 파이프라인 | BandiAI/bandi_score/arrangement/ |
| 코드·비트 | ChordMiniApp 계열(Chord-CNN-LSTM, Beat-Transformer 등) | BandiAI/bandi_score/ChordMiniApp/ |
| 멜로디(실험) | Sheet Sage (선택) | BandiAI/bandi_score/sheetsage/ |
| 얼굴 임베딩 | InsightFace buffalo_l — 등록·출석·PWA 인증 |
BandiAI/bandi_instrument/face_recognizer.py |
| 악기 인식 | OpenCLIP ViT-B-32 제로샷/파인튜닝 | BandiAI/bandi_instrument/classifier.py |
PWA 시작 시: 얼굴 인증 → AI 악기 인식 → 해당 파트 최근 악보 자동 제안 (FE/src/views/attendance/).
중요: 아래는 프로젝트 구성을 이해하기 위한 요약입니다.
상업적 이용·재배포·논문·서비스 공개 시 각 upstream 라이선스 원문과 인용문을 반드시 준수하세요.
특히 Sheet Sage 학습 가중치(CC BY-NC-SA 3.0) 는 비영리 조건이 있을 수 있습니다.
| 프로젝트 | 저장소 | Bandi 저장소 내 위치 |
|---|---|---|
| Demucs | facebookresearch/demucs | BandiAI/separate_stems.py, bandi_api/pipeline.py |
| REMI-z | Sonata165/REMI-z | BandiAI/bandi_score/arrangement/REMI-z/ |
| music2music (m2m) | LongshenOu/music2music 등 | BandiAI/bandi_score/arrangement/music2music_code/ |
| madmom | cpjku/madmom | ChordMiniApp·Sheet Sage 경로 등 |
| Sheet Sage | chrisdonahue/sheetsage | BandiAI/bandi_score/sheetsage/ |
| ChordMiniApp | ptnghia-j/ChordMiniApp | BandiAI/bandi_score/ChordMiniApp/ |
- 저장소: https://github.com/facebookresearch/demucs
- 라이선스: MIT (Meta / Facebook Research)
- Bandi:
BandiAI/separate_stems.py,bandi_api/pipeline.py— 기본 모델htdemucs_6s(BANDI_DEMUCS_MODEL)
인용 (BibTeX):
@inproceedings{rouard2022hybrid,
title={Hybrid Transformers for Music Source Separation},
author={Rouard, Simon and Massa, Francisco and D{\'e}fossez, Alexandre},
booktitle={ICASSP 23},
year={2023}
}
@inproceedings{defossez2021hybrid,
title={Hybrid Spectrogram and Waveform Source Separation},
author={D{\'e}fossez, Alexandre},
booktitle={Proceedings of the ISMIR 2021 Workshop on Music Source Separation},
year={2021}
}- 저장소: https://github.com/chrisdonahue/sheetsage
- 라이선스: 저장소 코드 MIT · 학습 모델·데이터 CC BY-NC-SA 3.0 (Hooktheory 기여 데이터 파생)
- Bandi:
BandiAI/bandi_score/sheetsage/멜로디 전사 - 상업 이용: madmom·Jukebox·Melisma 등 추가 제약 →
sheetsage/README.md「Commercial Use」 참고
인용 (BibTeX):
@inproceedings{donahue2022melody,
title={Melody transcription via generative pre-training},
author={Donahue, Chris and Thickstun, John and Liang, Percy},
booktitle={ISMIR},
year={2022}
}- 저장소: https://github.com/ptnghia-j/ChordMiniApp
- 라이선스: MIT (
ChordMiniApp/LICENSE) - Bandi:
BandiAI/bandi_score/ChordMiniApp/— 코드·모델 디렉터리 포함. (Beat-Transformer, Chord-CNN-LSTM 등 하위 모듈 포함)
인용 (BibTeX):
@misc{phan2026enhancingautomaticchordrecognition,
title={Enhancing Automatic Chord Recognition via Pseudo-Labeling and Knowledge Distillation},
author={Phan, Nghia and Jin, Rong and Liu, Gang and Dong, Xiao},
year={2026},
eprint={2602.19778},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2602.19778}
}- 저장소: https://github.com/Sonata165/REMI-z
- 라이선스: MIT (
arrangement/REMI-z/LICENSE) - Bandi:
BandiAI/bandi_score/arrangement/REMI-z/— 편곡 파이프라인용 MIDI 토큰화·전처리
편곡 모델·학습 코드는 music2music (m2m) 과 함께 사용합니다. 해당 논문 인용은 아래 m2m 절을 참고하세요.
- 코드:
BandiAI/bandi_score/arrangement/music2music_code/ - 관련 저장소: LongshenOu/music2music (논문 실험 코드)
- 라이선스: 저장소 내 코드 MIT · Hugging Face 가중치(
LongshenOu/m2m_*등)는 각 모델 카드 License 준수 - Bandi: m2m 학습·추론 스크립트 + REMI-z 토큰화로 밴드 편곡·PDF 파이프라인 구성
인용 (BibTeX):
@inproceedings{ou2025unifying,
title={Unifying Symbolic Music Arrangement: Track-Aware Reconstruction and Structured Tokenization},
author={Ou, Longshen and Zhao, Jingwei and Wang, Ziyu and Xia, Gus and Liang, Qihao and Hopkins, Torin and Wang, Ye},
booktitle={Proceedings of the 39th Conference on Neural Information Processing Systems (NeurIPS)},
year={2025}
}(동일 논문 arXiv: 2408.15176)
- 저장소: https://github.com/cpjku/madmom
- 라이선스: upstream LICENSE 및 각 릴리스 참고 (ChordMiniApp·Sheet Sage 등에서 비트·다운비트 처리에 사용)
- Bandi:
ChordMiniApp/python_backend/등 경유 간접 의존
인용 (BibTeX):
@inproceedings{madmom,
title={{madmom: a new Python Audio and Music Signal Processing Library}},
author={B{\"o}ck, Sebastian and Korzeniowski, Filip and Schl{\"u}ter, Jan and Krebs, Florian and Widmer, Gerhard},
booktitle={Proceedings of the 24th ACM International Conference on Multimedia},
month={10},
year={2016},
pages={1174--1178},
address={Amsterdam, The Netherlands},
doi={10.1145/2964284.2973795}
}| 구성요소 | 용도 | 라이선스 (요약) | 인용·링크 |
|---|---|---|---|
| Demucs | 스템 분리 | MIT | 위 Demucs 절 |
| Beat-Transformer | 비트·다운비트 (ChordMiniApp 내) | MIT | ISMIR 2022 |
| Chord-CNN-LSTM 계열 | 코드 (ChordMiniApp 내) | MIT | upstream README |
| music2music (m2m) | 밴드 편곡 | 코드 MIT / HF 모델 카드별 | 위 music2music 절 |
InsightFace buffalo_l |
얼굴 임베딩 | Apache-2.0 / 가중치 Model Zoo 약관 | POST /face/embedding |
| OpenCLIP | PWA 악기 인식 | MIT / CLIP 가중치 별도 | POST /classify/instrument |
| Jukebox, Melisma | Sheet Sage 옵션 의존 | 각 upstream | Sheet Sage README |
| 구성요소 | 모델 / 라이브러리 | 용도 | 라이선스 (요약) |
|---|---|---|---|
| 얼굴 인식 | InsightFace buffalo_l |
얼굴 임베딩, 출석·PWA | Apache-2.0 + Model Zoo |
| 악기 분류 | OpenCLIP ViT-B-32 |
이미지→악기 | MIT + CLIP weights |
파인튜닝 .pt |
팀 학습 (선택) | 악기 head | 팀 정책 |
| 연동 | 환경 변수 | 설명 |
|---|---|---|
| 악기 인식 BFF | AI_BASE_URL (FE .env) |
RunPod 등 BandiAI의 /classify/instrument 프록시 |
| 대체 URL | BANDI_AI_INSTRUMENT_URL |
Next 서버 직접 지정(선택) |
| 얼굴·출석 | BASE_URL → BandiBE |
BE가 AI_BASE_URL로 임베딩·작업 위임 |
BASE_URL=http://localhost:8080
AI_BASE_URL=https://your-runpod-or-ai-host
AUTH_SECRET=...AI_BASE_URL=...
AI_FACE_EMBEDDING_PATH=/face/embedding
AI_API_KEY=...
S3_BUCKET=...INSTRUMENT_CHECKPOINT=... # optional .pt
INSTRUMENT_THRESHOLD=0.35
FACE_THRESHOLD=0.4
BANDI_DEMUCS_MODEL=htdemucs_6s# BE
cd BandiBE && ./gradlew bootRun
# FE
cd FE && npm install && npm run dev
# AI (GPU 권장)
cd BandiAI && pip install -r requirements.txt # 프로젝트 의존성 파일 기준
python -m uvicorn bandi_api.main:app --host 0.0.0.0 --port 8000- Bandi 팀이 작성한 FE / BandiBE / BandiAI 애플리케이션 코드의 라이선스는 저장소 루트 또는 각 패키지의
LICENSE파일을 따릅니다. (별도 파일이 없다면 팀·교육 과정 정책을 확인하세요.) - 서드파티 AI 모델·가중치·데이터셋은 위 표의 라이선스를 따르며, Bandi 코드 라이선스와 동일하지 않을 수 있습니다.
- AI 출력(악기 라벨, 악보, 코드, 멜로디)은 참고용이며 정확성을 보장하지 않습니다.
- 얼굴·카메라 데이터는 인증·출석 목적으로 처리되며, 운영 환경에서는 개인정보 처리방침·보관 기간을 별도로 정해야 합니다.
- 상업 서비스·스토어 배포 전 NC 라이선스 모델(Sheet Sage 등) 포함 여부를 법무·라이선스 관점에서 검토하세요.
| 이름 | URL |
|---|---|
| Demucs | https://github.com/facebookresearch/demucs |
| Sheet Sage | https://github.com/chrisdonahue/sheetsage |
| ChordMiniApp | https://github.com/ptnghia-j/ChordMiniApp |
| REMI-z | https://github.com/Sonata165/REMI-z |
| madmom | https://github.com/cpjku/madmom |
| m2m 논문 (arXiv) | https://arxiv.org/abs/2408.15176 |
| ChordMini 논문 (arXiv) | https://arxiv.org/abs/2602.19778 |
| InsightFace | https://github.com/deepinsight/insightface |
| OpenCLIP | https://github.com/mlfoundations/open_clip |
문의·라이선스·인용 수정 제안은 팀 저장소 Maintainer에게 연락하세요.