Date: 2025-01-XX
Duration: ~6 hours (6 rounds)
Scope: 24 MIDI files โ 22 processed, 5 visual videos
Author: Claude (AI-assisted pipeline optimization)
MIDI ํ์ผ์ ๊ณ ํ์ง ์ค๋์ค(WAV/M4A)๋ก ๋ณํํ๋ ์๋ํ ํ์ดํ๋ผ์ธ์ ์ฒด๊ณ์ ์ผ๋ก ์ต์ ํํ๋ค. ๋ค์ด๋ก๋ ํด๋์ 24๊ฐ ํด๋์ ํผ์๋ ธ MIDI ํ์ผ์ ํ์ฉํด 6๋ผ์ด๋์ ๊ฑธ์ณ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ํ๊ณ , ์๋ ํ์ง ํ๊ฐ ์์ง์ผ๋ก ๊ฐ๊ด์ ์ผ๋ก ๋น๊ตํ๋ค.
MIDI โ fix_midi() โ apply_expression() โ render_fluidsynth() โ master() โ mix_ambient()
(์ฑ๋ ๋ณํฉ, (S-curve velocity, (SoundFontโWAV) (EQ+Comp+ (Ambient loop
CC ์ ๊ฑฐ, phrasing boost) Limiter+ + AAC encode)
์ค๋ณต ์ ๊ฑฐ) Loudnorm)
5๊ฐ ์ฐจ์์ ๊ฐ์คํ๊ท ์ผ๋ก 0-100์ ์ฐ์ถ:
| Dimension | Weight | Perfect Score Criteria | Penalty | |||
| LUFS (Loudness) | 20% | -18 ~ -14 LUFS | ๋ฒ์ ๋ฐ 1dB๋น -10์ | |||
|---|---|---|---|---|---|---|
| LRA (Loudness Range) | 25% | 5 ~ 10 LU | ๋ฒ์ ๋ฐ 1LU๋น -10์ | |||
| True Peak | 15% | โค -1.0 dBTP | ์ด๊ณผ ์ ๊ธ๊ฐ | |||
| Freq Balance | 20% | Hi-Mid ๋๋น -15 ~ -5 dB | ๋ฒ์ ๋ฐ ๊ฐ์ | |||
| Dynamic Variance | 20% | std 1.5 ~ 5.0 (20s window) | ๋ฒ์ ๋ฐ ๊ฐ์ |
8๊ฐ ๋ํ MIDI + faure_84_3 ๊ธฐ์กด ๊ฒฐ๊ณผ:
| # | Track | Score | LUFS | LRA | TP | Freq | DynStd | |||||||
| 1 | clairdelune | **100.0** | -16.0 | 8.3 | -3.1 | -6.2 | 3.36 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | nocturne_op9_1 | 95.0 | -16.0 | 9.3 | -2.3 | -7.5 | 5.40 | |||||||
| 3 | nocturne_13 | **100.0** | -16.0 | 6.8 | -3.5 | -8.9 | 3.47 | |||||||
| 4 | consolation_3 | **100.0** | -16.0 | 8.2 | -6.5 | -7.3 | 2.55 | |||||||
| 5 | barcarolle_26 | 98.2 | -16.0 | 5.5 | -4.1 | -10.2 | 2.18 | |||||||
| 6 | faure_pavane_50 | 79.7 | -16.0 | 2.1 | -6.5 | -14.1 | 1.08 | |||||||
| 7 | dolly_suite_1 | 97.0 | -16.0 | 5.3 | -3.7 | -10.1 | 1.40 | |||||||
| 8 | sicilienne | 90.4 | -16.0 | 8.9 | -1.1 | -6.5 | 5.54 | |||||||
| 9 | faure_84_3 (v4) | **100.0** | -16.0 | 5.3 | -5.9 | -8.2 | 2.01 |
Average: 95.6 | faure_pavane_50์ด ์ต์ (LRA=2.1, ์๋ณธ velocity ๋จ์ผ๊ฐ)
4๊ฐ SoundFont ร 4๊ฐ MIDI = 16 ์กฐํฉ:
| SoundFont | Size | clairdelune | nocturne_13 | consolation_3 | faure_pavane | **Average** | ||||||
| TOH4 | 420MB | 100.0 | 100.0 | 100.0 | 80.2 | 95.1 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| **SGM-V2.01** | **236MB** | **100.0** | **100.0** | **100.0** | **87.5** | **96.9** | ||||||
| FluidR3 | 141MB | 95.0 | 98.2 | 94.2 | 74.6 | 90.5 | ||||||
| GeneralUser | 37MB | 100.0 | 94.6 | 100.0 | 86.0 | 95.2 |
Winner: SGM-V2.01 (+1.8 vs TOH4, ํ์ผ ํฌ๊ธฐ๋ 44% ์์)
ํต์ฌ ๋ฐ๊ฒฌ:
3 EQ ร 3 Comp ร 2 MIDI = 18 ์กฐํฉ:
EQ Presets:
| Name | Low Shelf | 400Hz Cut | 3kHz Boost | 5kHz Boost | Air Shelf | |||||
| Warm | -2dB@200 | -1dB | +3dB | +2dB | +2dB@10k | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Balanced | -3dB@200 | -2dB | +4.5dB | +3.5dB | +4dB@10k | |||||
| Bright | -4dB@200 | -3dB | +6dB | +5dB | +6dB@10k |
Compressor Presets:
| Name | Ratio | Threshold | Attack | Release | Knee | |||||
| Gentle | 1.5:1 | -15dB | 50ms | 400ms | 8 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Moderate | 2.0:1 | -18dB | 30ms | 300ms | 8 | |||||
| Firm | 3.0:1 | -22dB | 15ms | 200ms | 6 |
Results (faure_pavane โ clairdelune๋ ์ ๋ถ 100.0):
| EQ \ Comp | Gentle | Moderate | Firm | |||
| Warm | 86.8 | 86.9 | 86.8 | |||
|---|---|---|---|---|---|---|
| Balanced | **87.5** | 87.3 | 86.9 | |||
| Bright | 87.6 | 87.5 | 87.3 |
Winner: Balanced + Gentle (Bright๊ฐ 0.1์ ๋์ง๋ง ๊ณผ๋ํ ๊ณ ์ญ ๋ถ์คํธ ๋ฆฌ์คํฌ)
ํต์ฌ ๋ฐ๊ฒฌ:
4 presets ร 3 MIDI = 12 ์กฐํฉ:
| Preset | k | Range | clairdelune | nocturne_op9 | faure_pavane | **Average** | ||||||
| **Conservative** | **3.0** | **35-115** | **100.0** | **100.0** | **87.6** | **95.9** | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Moderate | 4.0 | 25-122 | 100.0 | 91.9 | 87.5 | 93.1 | ||||||
| Aggressive | 5.0 | 18-127 | 91.8 | 76.8 | 87.3 | 85.3 | ||||||
| Linear | n/a | 25-122 | 100.0 | 96.0 | 87.5 | 94.5 |
Winner: Conservative (k=3.0, 35-115)
ํต์ฌ ๋ฐ๊ฒฌ (์ด ๋ผ์ด๋์ ๊ฐ์ฅ ์ค์ํ ๊ฒฐ๊ณผ):
6 settings ร 2 MIDI = 12 ์กฐํฉ:
| Setting | clairdelune | faure_pavane | ||
| rain -18dB | 98.0 (TP penalty!) | 87.6 | ||
|---|---|---|---|---|
| **rain -20dB** | **100.0** | **87.6** | ||
| rain -22dB | 100.0 | 87.6 | ||
| wind -20dB | 100.0 | 87.6 | ||
| fire -20dB | 100.0 | 87.6 | ||
| no ambient | 100.0 | 87.5 |
Winner: rain -20dB
ํต์ฌ ๋ฐ๊ฒฌ:
| # | Track | Score | LUFS | LRA | TP | Notes | ||||||
| 1 | clairdelune | **100.0** | -16.0 | 8.2 | -3.2 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | nocturne_op9_1 | **100.0** | -16.0 | 8.6 | -2.8 | |||||||
| 3 | nocturne_13 | **100.0** | -16.0 | 6.8 | -3.4 | |||||||
| 4 | consolation_3 | **100.0** | -16.0 | 8.2 | -6.4 | |||||||
| 5 | barcarolle_26 | **100.0** | -16.0 | 5.4 | -4.3 | |||||||
| 6 | dolly_suite_1 | **100.0** | -16.0 | 5.5 | -3.5 | |||||||
| 7 | siclienn | **100.0** | -16.0 | 8.8 | -1.1 | |||||||
| 8 | pavane | **100.0** | -16.0 | 8.7 | -2.5 | |||||||
| 9 | faure_pieces_84_3 | **100.0** | -16.0 | 5.2 | -5.8 | |||||||
| 10 | faure_pieces_84_5 | **100.0** | -16.0 | 5.5 | -4.5 | |||||||
| 11 | franck_panis | **100.0** | -16.0 | 5.1 | -5.3 | |||||||
| 12 | mozart_ave_verum | **100.0** | -16.0 | 5.6 | -5.3 | |||||||
| 13 | prelude_103_9 | **100.0** | -16.0 | 6.9 | -3.6 | |||||||
| 14 | dolly_suite_2 | **100.0** | -16.0 | 5.2 | -5.7 | |||||||
| 15 | mahler_sym5_1 | **100.0** | -16.0 | 8.3 | -1.1 | 10032 notes | ||||||
| 16 | nocturne_7 | 99.0 | -16.0 | 10.4 | -1.3 | LRA ์ฝ๊ฐ ์ด๊ณผ | ||||||
| 17 | faure_romance | 99.4 | -16.0 | 4.9 | -4.3 | LRA/DynStd ์ฝ๊ฐ ๋ถ์กฑ | ||||||
| 18 | carnival_animals_13 | 93.7 | -16.0 | 7.7 | -1.0 | DynStd=7.09 (๊ณผ๋) | ||||||
| 19 | jekyll_hyde | 89.6 | -16.0 | 3.9 | -3.6 | LRA ๋ถ์กฑ, DynStd=0.89 | ||||||
| 20 | faure_pavane_50 | 87.6 | -16.0 | 5.3 | -5.1 | vel_span=0 (๋จ์ผ velocity) | ||||||
| 21 | dolly_suite_3 | 80.0 | -16.0 | 6.1 | -3.6 | DynStd=20.66 (๊ทน๋จ์ ) | ||||||
| 22 | bruckner_locus | 65.8 | -16.0 | 15.7 | -1.0 | LRA ํญ๋ฐ, DynStd=24.49 |
Summary: 15/22 = 100.0 (68%), Average = 96.4
{
"soundfont": "D:\\VST\\SGM-V2.01.sf2",
"fs_gain": 0.6,
"fs_reverb": 0,
"fs_chorus": 0,
"hpf_freq": 35,
"low_shelf_freq": 200,
"low_shelf_gain": -3,
"mid_cut_freq": 400,
"mid_cut_q": 2,
"mid_cut_gain": -2,
"body_freq": 1000,
"body_q": 1,
"body_gain": 1,
"presence_freq": 3000,
"presence_q": 0.7,
"presence_gain": 4.5,
"bright_freq": 5000,
"bright_q": 1,
"bright_gain": 3.5,
"air_shelf_freq": 10000,
"air_shelf_gain": 4,
"comp_threshold": -15,
"comp_ratio": 1.5,
"comp_attack": 50,
"comp_release": 400,
"comp_makeup": 1,
"comp_knee": 8,
"limiter_limit": 0.84,
"limiter_attack": 5,
"limiter_release": 80,
"lufs_target": -16,
"tp_target": -1.5,
"lra_target": 9,
"vel_scurve_k": 3.0,
"vel_target_min": 35,
"vel_target_max": 115,
"phrasing_boost": 0.2,
"phrasing_window": 5,
"ambient_file": "D:\\VST\\ambient\\rain_nat.mp3",
"ambient_volume": -20
}
| Parameter | v4 (Before) | Optimal (After) | Reason | |||
| SoundFont | TOH4.sf2 (420MB) | SGM-V2.01.sf2 (236MB) | +1.8 avg score, ํ๋ถํ ์ ์ญ | |||
|---|---|---|---|---|---|---|
| comp_ratio | 2.0 | 1.5 | ๋ค์ด๋๋ฏน ๋ณด์กด | |||
| comp_threshold | -18dB | -15dB | ๊ณผ์์ถ ๋ฐฉ์ง | |||
| vel_scurve_k | 4.0 | 3.0 | LRA ํญ๋ฐ ๋ฐฉ์ง (H3) | |||
| vel_target_min | 25 | 35 | ๊ทน๋จ์ pp ๋ฐฉ์ง | |||
| vel_target_max | 122 | 115 | ๊ทน๋จ์ ff ๋ฐฉ์ง | |||
| fs_gain | 0.7 | 0.6 | ํผํฌ ๋ง์ง ํ๋ณด |
1. Score Engine ๊ณ ๋ํ: LUFS ๊ฐ์ค์น ์ถ์(์ด์ฐจํผ ๊ณ ์ ), LRA/Dynamic ์ธ๋ถํ, spectral flatness ์ถ๊ฐ
2. ์ฅ๋ฅด๋ณ ํ๋กํ์ผ: ์ค์ผ์คํธ๋ผ(bruckner) vs ํผ์๋ ธ ๋ ์ฃผ โ ๋ณ๋ comp/expression ์ค์
3. AI Velocity Generation: flat-velocity MIDI์ ์๋ ๋ค์ด๋๋ฏน ๋ถ์ฌ (ML ๋ชจ๋ธ)
4. ์ฒญ์ทจ ํ ์คํธ: ์ค์ ๋ฆฌ์ค๋ A/B ๋น๊ต๋ก score engine ๊ฐ์ค์น ๋ณด์
5. SoundFont ๋ ์ด์ด๋ง: ํผ์๋ ธ + ์คํธ๋ง ๋ณ๋ SoundFont๋ก ๋ฉํฐ ํธ๋ ๋ ๋๋ง
| File | Description | |
| `D:\tmp\optimizer.py` | ํตํฉ ๋ฐฐ์น ํ๋ก์ธ์ | |
|---|---|---|
| `D:\tmp\score_engine.py` | ์๋ ํ์ง ํ๊ฐ ์์ง | |
| `D:\tmp\optimal_config.json` | ์ต์ข ์ต์ ํ๋ผ๋ฏธํฐ | |
| `D:\tmp\round1_results.json` ~ `round6_results.json` | ๊ฐ ๋ผ์ด๋ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ | |
| `D:\PARKSY\...\work\r6_*/` | 22๊ฐ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฌผ (WAV, M4A) | |
| `D:\PARKSY\...\work\r6_*/*_visual.mp4` | ์์ 5๊ฐ ๋น์ฃผ์ผ ๋น๋์ค | |
| `D:\PARKSY\...\outputs\optimization_report.md` | ์ด ๋ฌธ์ |
| # | Track | Duration | Size | |||
| 1 | Debussy - Clair de Lune | 3:16 | 51.6MB | |||
|---|---|---|---|---|---|---|
| 2 | Chopin - Nocturne Op.9 No.1 | 4:20 | 65.3MB | |||
| 3 | Faure - Nocturne No.13 Op.119 | 6:35 | 114.5MB | |||
| 4 | Liszt - Consolation No.3 | 4:38 | 75.6MB | |||
| 5 | Faure - Pavane Op.50 | 5:15 | 80.5MB |