지휘자별 클래식 음악 해석의 미세한 차이를 Boston Dynamics Atlas 캐릭터의 카툰 애니메이션 (모션·표정)으로 시각화하는 연구 프로젝트.
Visualize subtle differences in classical music conducting through stick-figure animation driven by audio-derived emotion (Russell V/A + GEMS), with synchronized mel-spectrogram comparison.
git clone https://github.com/<your-username>/AtlasGroove.git
cd AtlasGroove
pip install -r requirements.txt저작권 문제로 음원 파일은 저장소에 포함되지 않음. 사용자가 직접 준비:
- 합법적으로 보유한 클래식 녹음 (CD 리핑·iTunes Store 구매 DRM-free 파일).
- 또는 Internet Archive 등에서 퍼블릭 도메인 역사 녹음 다운로드 (Mengelberg 1926 Mahler 5 등).
audio/ 폴더에 .mp3 / .wav 등 배치.
python3 analysis/add_recording.py audio/your_recording.mp3 \
--id bernstein \
--label "Bernstein / NYP / 1973" \
--work "Mahler 5 Adagietto" \
--default_start "9:00"위 명령이 자동 실행:
- 음향 특징 추출 (librosa)
- 감정 좌표 매핑 (Russell V/A + GEMS)
- stick-figure 모션 키프레임 생성
- mel-spectrogram PNG 렌더링
data/manifest.json갱신
두 번째 음원도 같은 방법으로 등록하면 비교 가능.
python3 -m http.server 8000브라우저: http://localhost:8000/web/
동일 악구를 지휘자별로 해석할 때 발생하는 템포·다이내믹·아고긱·프레이징의 미세한 차이를 정량 추출하고, 이를 Atlas 캐릭터의 동작·표정 파라미터에 매핑하여 직관적으로 비교 가능한 시각화 자료를 제작함.
후기 낭만주의 대편성 작품 위주로 선정. 감정 진폭·템포 변동·해석 차이가 크게 나타나는 악구를 우선함.
- 교향곡 5번 4악장 Adagietto — 지휘자별 연주 시간 7~12분 변동. 가장 표준적 비교 사례.
- 교향곡 9번 4악장 Adagio 종결부 — ersterbend 점진적 소멸 처리.
- 교향곡 2번 5악장 합창 진입 직전 — 대규모 템포·다이내믹 전환점.
- 교향곡 6번 1악장 도입부 행진곡 — 악센트 처리 차이.
- 교향곡 4번 4악장 Passacaglia — 30개 변주 각각 템포·아고긱 차이 명확. 정량 분석 표본.
- 교향곡 1번 4악장 도입부 Più Andante — 알프호른 주제, Adagio→Allegro 전환부.
- 교향곡 3번 3악장 Poco allegretto — 미세 루바토·프레이징.
- 교향곡 7번 2악장 Adagio 클라이맥스 — 심벌즈 타격 유무 (Haas vs. Nowak 판본 논쟁).
- 교향곡 8번 3악장 Adagio — 긴 호흡 프레이징, "Bruckner Pause".
- 교향곡 9번 3악장 Adagio 종결부 — 불협화 클라이맥스 빌드업.
iTunes Store에서 DRM-free AAC 개별 구매 권장 (Apple Music 스트리밍은 FairPlay DRM 보호로 분석 불가).
| 작품 | 지휘자 A (대조군) | 지휘자 B (대조군) | 비교 포인트 |
|---|---|---|---|
| Mahler 5번 Adagietto | Bernstein / VPO | Boulez / VPO | 극단적 템포 차 (느림 ↔ 빠름) |
| Brahms 4번 4악장 | C. Kleiber / VPO | Klemperer / Philharmonia | 변주별 아고긱 |
| Bruckner 7번 2악장 | Karajan / BPO | Celibidache / MPO | 클라이맥스 빌드업, 심벌즈 |
| Brahms 1번 4악장 | Furtwängler / BPO | Toscanini / NBC | 도입부 템포 형성 |
| Mahler 9번 4악장 | Bernstein / BPO | Karajan / BPO | 종결부 소멸 처리 |
| Bruckner 8번 3악장 | Wand / NDR | Celibidache / MPO | "Bruckner Pause" |
분석 워크플로우 검증 및 비교군 확장 목적.
- Internet Archive (archive.org) — 퍼블릭 도메인 역사 녹음.
- Mengelberg / Concertgebouw — Mahler 5번 Adagietto (1926)
- Bruno Walter / VPO — Mahler 9번 (1938)
- Furtwängler / BPO — Brahms 4번 (1948), Bruckner 7번 (1949)
- Musopen (musopen.org) — CC 라이선스 음원.
- IMSLP (imslp.org) — 악보 및 일부 퍼블릭 도메인 녹음.
Atlas 모션·표정 매핑의 타깃 감정 공간 정의. 음악심리학에서 가장 표준적으로 사용되는 GEMS (Geneva Emotional Music Scale) 9개 범주(Zentner, Grandjean & Scherer, 2008)를 1차 분류로 채택하고, 연속 매핑을 위해 Russell 원형 모델(1980, valence × arousal 2D)을 보조 좌표계로 사용함.
| 범주 | 한국어 | 핵심 정서 | 심포니 대표 악구 |
|---|---|---|---|
| Wonder | 경이 | 감탄·경외·놀라움 | Mahler 8번 1악장 도입부, Bruckner 8번 4악장 코다 |
| Transcendence | 초월 | 영적 고양·황홀 | Mahler 9번 4악장 종결, Bruckner 7번 2악장 클라이맥스 |
| Tenderness | 애정 | 사랑·다정함·친밀함 | Mahler 5번 Adagietto (빠른 해석), Brahms 3번 3악장 |
| Nostalgia | 향수 | 그리움·회상·아련함 | Brahms 4번 1악장 도입부, Mahler 4번 3악장 |
| Peacefulness | 평온 | 안온·고요·정적 | Brahms 2번 2악장, Bruckner 6번 Adagio |
| Power | 힘 | 위압·웅장·압도 | Bruckner 8번 1악장 클라이맥스, Mahler 6번 1악장 |
| Joyful Activation | 활기 | 흥분·기쁨·약동 | Beethoven 7번 4악장, Brahms 4번 3악장 Allegro giocoso |
| Tension | 긴장 | 불안·예측 불가·전율 | Mahler 6번 4악장 망치 타격, Shostakovich 5번 1악장 전개부 |
| Sadness | 비애 | 슬픔·우울·애수 | Mahler 5번 Adagietto (느린 해석), Tchaikovsky 6번 4악장 |
Atlas 모션 파라미터의 부드러운 보간을 위해 2차원 연속 공간으로 재투영함.
- Valence (정서가) — 부정 ↔ 긍정 축
- Arousal (각성도) — 저에너지 ↔ 고에너지 축
High Arousal
│
Tension ───────┼─────── Joyful Activation
(− valence) │ (+ valence)
│
Low Valence ────────┼──────── High Valence
│
Sadness ───────┼─────── Tenderness
Nostalgia │ Peacefulness
│
Low Arousal
GEMS의 Wonder·Transcendence·Power는 valence·arousal 모두 높은 영역에 분포하며, 카타르시스적 정점에 해당함.
| 감정 차원 | 신체 파라미터 | 표정 파라미터 |
|---|---|---|
| Valence (+) | 어깨 펴짐, 가슴 열림, 시선 위 | 입꼬리 상승, 눈매 부드러움 |
| Valence (−) | 어깨 처짐, 몸 웅크림, 시선 아래 | 미간 좁힘, 입꼬리 하강 |
| Arousal (+) | 동작 속도·진폭 증가, 말단(손끝) 강조 | 눈 크게, 호흡 빠름 |
| Arousal (−) | 동작 속도·진폭 감소, 호흡 길게 | 눈 반쯤 감김, 정적 |
| Tenderness 특화 | 손이 가슴 쪽으로 수렴 | 미소, 시선 살짝 아래 |
| Power 특화 | 자세 곧음, 발 단단히 디딤 | 결연한 시선 |
| Tension 특화 | 근육 긴장, 미세 떨림 | 동공 확대, 굳은 표정 |
| Transcendence 특화 | 시선 상방, 팔 위로 펼침 | 눈 감김, 입 살짝 벌림 |
- Zentner, M., Grandjean, D., & Scherer, K. R. (2008). Emotions evoked by the sound of music: Characterization, classification, and measurement. Emotion, 8(4), 494–521.
- Russell, J. A. (1980). A circumplex model of affect. Journal of Personality and Social Psychology, 39(6), 1161–1178.
- Hevner, K. (1936). Experimental studies of the elements of expression in music. American Journal of Psychology, 48(2), 246–268.
- Juslin, P. N., & Västfjäll, D. (2008). Emotional responses to music: The need to consider underlying mechanisms. Behavioral and Brain Sciences, 31(5), 559–575.
- Eerola, T., & Vuoskoski, J. K. (2013). A review of music and emotion studies: Approaches, emotion models, and stimuli. Music Perception, 30(3), 307–340.
audio/*.mp3
↓ analysis/extract_features.py (Stage 1-1) ✅ 완료
data/features/*.json (RMS, centroid, tempo, onsets)
↓ analysis/map_emotion.py (Stage 1-2) ✅ 완료
data/emotion/*.json (V, A, GEMS label per frame)
↓ analysis/generate_motion.py (Stage 1-3) ✅ 완료
data/motion/*.json (12 joints + 3 face + breath, 10 Hz)
↓ web/index.html, player.js (Stage 2) ⏳ 진행 중
HTML5 Canvas 애니메이션 (30 fps cubic spline 보간)
세부 가정·공식·검증 결과는 analysis/README.md 참조.
- Bowen, J. A. (1996). Tempo, duration, and flexibility: Techniques in the analysis of performance. Journal of Musicological Research, 16(2), 111–156.
- Cook, N. (2013). Beyond the Score: Music as Performance. Oxford University Press.
- Sapp, C. S. (2008). Hybrid numeric/rank similarity metrics for musical performance analysis. ISMIR Proceedings.
- Repp, B. H. (1992). Diversity and commonality in music performance: An analysis of timing microstructure in Schumann's "Träumerei". JASA, 92(5), 2546–2568.
- Luck, G., & Toiviainen, P. (2006). Ensembles' synchronization with the conductor's gestures: An automated feature-extraction analysis. Music Perception, 24(2), 189–200.
- Wöllner, C. (2008). Which part of the conductor's body conveys most expressive information? A spatial occlusion approach. Musicae Scientiae, 12(2), 249–272.
AtlasGroove/
├── README.md
├── CLAUDE.md # LLM 작업 지침
├── audio/
│ ├── README.md # 음원 메타데이터·예측·실측
│ ├── Bernstein(1973)_*.mp3
│ └── Mengelberg(1926)_*.mp3
├── analysis/
│ ├── README.md # 파이프라인 설계·가정·검증
│ ├── extract_features.py # Stage 1-1
│ ├── map_emotion.py # Stage 1-2
│ └── generate_motion.py # Stage 1-3
├── data/
│ ├── features/ # Stage 1-1 산출
│ ├── emotion/ # Stage 1-2 산출 (V·A·GEMS)
│ └── motion/ # Stage 1-3 산출 (관절·표정·호흡)
└── web/ # Stage 2 (예정)
├── index.html
├── player.js
└── atlas.js
- 상업 음원은 개인 학술 분석 목적으로만 사용. 결과물 공유 시 음원 직접 포함 금지.
- 시각화 결과(파라미터 곡선, 애니메이션)는 자체 생성물로서 자유 배포 가능하나, 음원과 동기화된 데모는 페어 유즈 범위 내에서 제한적 공개.
- 퍼블릭 도메인 역사 녹음은 자유 활용 가능.