TuneTrack:使用 tunetrack MCP 工具創作遊戲音樂
TuneTrack 是使用者自己的音樂工作站。您以音符、和弦、模式和 CC 曲線來創作音樂;TuneTrack 會透過真實樂器(使用者的 VST3 插件和已儲存的預設、SFZ 音色庫或內建的 Faust 合成器)播放它們,並進行混音、母帶處理,最終渲染出可循環的檔案。您無法聽見,因此需要依據樂理、工具的分析報告和鋼琴卷簾圖像來工作。每一個決定都應經過深思熟慮。不做無意義的填充循環,不做空洞的即興演奏。
如果工具缺失,表示未註冊 MCP 伺服器:claude mcp add --scope user tunetrack -- C:\Users\Owner\Documents\TuneTrack\.venv\Scripts\tunetrack-mcp.exe。
1. 首先了解專案
在寫下任何音符之前,先找出音樂的用途:
- 閱讀遊戲專案:README、設計文件、故事/場景描述、場景/關卡名稱、美術風格(檢視一些圖片)、UI 主題顏色、現有音訊資料夾和檔案命名、引擎(Godot 的
project.godot、Unity 的Assets/、Unreal 的.uproject、網頁專案)。 - 確定以下項目:類型/音色、情緒(2-3 個形容詞)、能量、速度、調性/調式、提示類型、長度、循環形式、交付格式和路徑。 如果使用者已給出意圖(例如「黑暗合成波選單,100 bpm」),則以此為優先,無需自行推斷。僅當專案未提供任何線索時才提問。
- 記錄下來:
project_new(name, tempo, key, time_sig, brief={genre, mood, use, game, references, notes})。
2. 檢查樂器庫
status() 會列出 VST3 樂器、預設(一個插件加上一個已儲存的聲音,附帶標籤)、SFZ 樂器和內建合成器。
- 原聲/管弦樂部分需要真實的音色:使用
patch:<id>(例如 HALion、BBC Symphony Orchestra、Spitfire LABS 預設)或sfz:<path>。內建合成器非常適合電子、合成波、晶片音樂、氛圍和低保真音樂,也可作為支撐層使用。 - 像 HALion Sonic 和 Groove Agent 這樣的 VST3 樂器會空載:沒有預設時它們會渲染出靜音(渲染時會發出警告)。 MODO DRUM 無需預設即可使用。
- 如果簡要需求中缺少某種音色(例如需要管弦樂弦樂但沒有弦樂預設或 SFZ),請明確說明並提供:(a) 使用者自行捕捉預設(
patch_capture會開啟插件視窗;僅在使用者於電腦前時才能運作),(b) 安裝免費音色庫(README 列出了一些),或 (c) 風格化的合成器版本。不要用合成器冒充管弦樂。 audition("patch:<id>")檢查樂器是否能發出聲音,並報告其明亮度。sfz_info顯示音域和按鍵切換。- 帶有
dynamics_cc(1 或 11)的預設,其音量由該 CC 控制,而非力度:務必為它們編寫cc()曲線。
3. 規劃形式(在音符之前)
使用 markers() 設定段落,並使用 project_set(loop="5:1-21:1") 設定循環區域。典型形式:
| 提示類型 | 長度 | 形式和備註 |
|---|---|---|
| 主選單 | 45-120 秒循環 | 可選的 2-4 小節前奏(僅播放一次),接著是 A(8) B(8) 或 A A' B A 循環。令人難忘的主題動機,中等密度,為 UI 音效留出空間。 |
| 探索 / 大地圖 | 1.5-3 分鐘循環 | 較長的段落,稀疏的織體,有呼吸空間,和聲進行緩慢(每 1-2 小節一個和弦)。 |
| 城鎮 / 商店 | 40-90 秒循環 | 溫暖、有節奏感、小型編制、抓耳。 |
| 戰鬥 | 60-120 秒循環 | 130-170 bpm,驅動性的固定音型,強烈的貝斯,重音和打擊,短樂句;B 段提升強度。 |
| Boss | 90-180 秒循環 | 較暗的調式,更重的低頻,一個從主旋律扭曲而來的動機。 |
| 勝利 / 失敗提示音 | 2-8 秒,一次性 | 勝利:上行線條至明亮的大調和弦 + 鈸聲。失敗:下行線條至小調或減和弦,淡出。loop="off"。 |
| 氛圍背景音 | 1-3 分鐘循環 | 墊底音/持續音,緩慢進行,無強烈脈衝,少量旋律。 |
| 製作人員名單 | 2-4 分鐘,一次性 | 遊戲中各個動機的混合曲。 |
循環規則:循環必須是整數小節;其最後一小節必須能銜接回第一小節(屬和弦,或進入第一個旋律音的引導音)。不要讓音符越過循環結束點,除非您有意為之。釋放和殘響尾巴會由 render(loop="auto") 自動折疊到循環起始處。
自適應音樂:將所有圖層放在同一個調性、速度和長度下,為音軌標記 layer(base、tension、combat),並以 layers=True 渲染出垂直分層的分軌,供遊戲進行交叉淡變。
4. 創作音樂
順序:動機,然後是和聲、貝斯、旋律樂句、對位聲部和內聲部、節奏組、力度變化,最後是變奏。
旋律
- 基於一個 1-2 小節的動機,並具有可辨識的節奏和輪廓。透過重複、模進(上移二度)、倒影、節奏增值等方式發展它。將樂句結構構建成提問(結束在 2 級或 5 級,保持開放)和回答(結束在 1 級)。
- 每個段落有一個明確的高潮(最高音、最強拍)。以級進為主,偶爾有跳進;跳進後應反向級進解決。保持旋律可唱性(大約一個八度加五度),除非是器樂炫技段落。
- 留出空間:休止符和長音能賦予樂句形狀和呼吸空間。不是每個拍點都需要音符。
- 強拍上多用和弦音;弱拍上可用經過音和鄰音。長音上的不協和音是刻意為之。
和聲
chords()會為您進行聲部連接。選擇能服務情緒的和弦進行。變化和聲節奏:每小節一個和弦,在終止式處加快。- 有用的進行:小調 i-VI-III-VII(史詩/英雄感),i-iv-VII-III(懷舊感),大調 I-V-vi-IV(明亮),ii-V-I 和 IVmaj7-iii7-vi7(爵士/舒適感),bVI-bVII-I(勝利感),利底亞 I-II(驚奇/魔法感),弗利幾亞 i-bII(威脅感),多利亞 i-IV(冒險、民謠感),變化和弦(大調中的 bIII、bVI 大三和弦)以獲得電影色彩,持續低音上變換和弦以製造緊張感。
- 以真正的終止式結束段落(V-i、iv-V、bVI-bVII-I)。副屬和弦(
V/V、V7/vi)能增加前進的動力。
貝斯
- 根音在強拍上,五音和經過音(級進或導音)進入和弦變化。賦予其與大鼓鎖定的節奏。保持在 C3 以下,並在其音域內獨立存在。
編曲
- 音域:貝斯低於 C3,和聲在 C3-C5 之間,旋律明顯高於伴奏或與之清晰分離。低於 C3 的小於五度的音程聽起來會渾濁(分析會標記此問題)。
- 每次只有一個焦點元素;對位聲部在旋律的休止處回應(問答形式)。
- 透過添加和移除圖層來構建段落。B 段應與 A 段形成對比:不同的音域、密度、節奏或和聲色彩。
- 管弦樂:旋律在小提琴(由長笛高八度或圓號低八度重疊以增加溫暖感),和聲在中提琴/大提琴/圓號,貝斯在低音提琴/大提琴。圓號在中音區以五度和八度音效最佳;小號用於號角般的巔峰;定音鼓在樂句結尾演奏根音和五音。在音軌上使用
role以便進行音域檢查。theory(range="horn")。 - 鼓:每 4 小節變化的律動,並在段落變換處(第 8 小節的最後一兩拍)加入填充。新段落的強拍使用撞擊鈸。鬼音(
o)和搖擺能增加活力。
力度和感覺
- 塑造每個樂句:使用
notes_edit(op="velocity", ramp_from, ramp_to)來做漸強,使用>來做重音。 - CC 控制的管弦樂預設:在長音上使用
cc(track, 1, start, end, 40, 100, shape="swell"),並為每個段落設定基礎音量。 - 對於原聲樂器部分,使用
notes_edit(op="humanize", timing_ms=5-15, velocity=4-8)。保持晶片音樂和緊湊電子部分的量化。 - 斷奏(
')和連奏(notes_edit(op="legato"))能極大改變個性。有目的地使用它們。
避免複製貼上的單調重複:使用 arrange(op="copy") 複製一個段落,然後對複製的內容進行變化(新的對位聲部、八度移位、重新和聲的終止式、放開的鼓組)。
5. 類型調色盤(內建合成器名稱在括號內;當類型是原聲時,優先使用真實預設)
| 類型 | 速度 | 調式/和聲 | 調色盤和節奏 |
|---|---|---|---|
| 管弦樂幻想 / 冒險 | 80-120 | 大調/多利亞/利底亞,i-VI-III-VII | 弦樂、圓號、木管、豎琴琶音、定音鼓;[pluck]、[bell] 用於色彩 |
| 史詩 / 戰鬥 | 130-170 | 小調、弗利幾亞、i-bVI-bVII | 八分/十六分音符的弦樂固定音型、銅管刺擊、太鼓/筒鼓、合唱墊音;混合使用 [brass_synth]、[reese_bass] |
| 舒適 / 村莊 / 種田 | 85-110 | 大調、add9 和 maj7 和弦 | 尼龍弦/撥奏、電鋼琴、木琴、輕柔沙錘;[nylon_pluck]、[epiano]、[mallet] |
| 合成波 / 復古 | 90-118 | 小調(自然小調/多利亞) | [supersaw] 墊音、[analog_bass] 八分音符貝斯、[lead]、門控小鼓、大殘響 |
| 晶片音樂(NES 風格) | 120-180 | 大調或小調、快速琶音代替和弦 | 正好 2 個 [chip_pulse]/[chip_square] 聲部、1 個 [chip_triangle] 貝斯、[chip_noise] 鼓;無殘響或極少量;量化 |
| 恐怖 / 緊張 | 50-80 或無脈衝 | 半音音簇、三全音、持續音 | [dark_pad] 持續音、稀疏的高音 [bell] 音符、低音脈衝、將沉默作為工具 |
| 氛圍 / 太空 | 60-90 | 利底亞、sus 和弦、緩慢變化 | [pad]、[dark_pad]、[bell]、長殘響發送、緩慢音量自動化 |
| 低保真 / 放鬆 | 70-90,搖擺 | ii7-V7-Imaj7、m9 和弦 | [epiano]、帶 0.3-0.5 搖擺的柔和鼓組、主軌上的 [saturator] 和 [filter] |
| 動作 / EDM | 120-150 | 小調、四拍地板節奏 | [drums] 或一組鼓、[reese_bass]/[analog_bass]、[saw_pluck] 琶音、[supersaw] 主旋律、側鏈風格的音量自動化 |
| 解謎 / 休閒 | 100-130 | 大調、俏皮的半音經過音 | [mallet]、[pluck]、撥奏預設、斷奏貝斯 |
6. 混音和母帶
- 音量設定:將音軌起始音量設在 -6 到 -12 dB 左右;旋律在最上層,墊音在其下方。渲染報告會顯示每軌的音量。
- 在總線上添加共享的殘響(
track_add("Reverb", kind="bus", fx=["builtin:reverb"])或使用 VST3 如 ValhallaSupermassive,Mix 設為 100%),並將每個音軌發送到該總線。音樂快速或忙碌時使用較乾的設定,氛圍音樂時使用較濕的設定。 - 所有非貝斯或大鼓的聲音都進行高通濾波(
builtin:eqhpf 100-200 Hz),如果報告顯示聲音渾濁,則在墊音上衰減 250-500 Hz。 - 進行聲像調整以獲得寬度(豎琴在左,第二小提琴在右,Hi-hat 稍微偏離中心)。保持貝斯和大鼓在正中。
- 音量:主軌會被歸一化到
target_lufs(預設 -16)。背景/選單提示通常設在 -18 到 -20;戰鬥音樂設在 -14 到 -16。 - 使用者的 VST3 效果器(SSL、TDR Nova、Waves、Valhalla)可以透過
fx_add添加到音軌、總線或主軌上;使用顯示文字來設定參數名稱(例如{"Mix": "100 %", "LowCut": "200 Hz"})。
7. 始終執行審查循環
- 使用
notes_read(track)檢查您的線條是否為 TTN 格式。analyze()提供調性/音域/重疊/渾濁度檢查,以及鋼琴卷簾 PNG。閱讀該 PNG 以檢查形式、密度和音域分佈。 - 執行
render()。處理每一個警告:靜音音軌(未載入預設)、渾濁、高頻沉悶或刺耳、峰值、限制器工作過度、循環接縫。未更改的音軌會被快取,因此可以自由迭代。 - 使用
listen()來聆聽:這會衡量渲染後的音訊,而不是音符本身,能捕捉到音符無法顯示的內容:energy_arc、sections、bar_lufs:每個段落是否達到了其形式設定的目標?B 段應在音量、明亮度、密度或主導樂器上與 A 段不同(tracks_db、most_present);構建應逐小節提升;循環的最後一小節應順暢流入第一小節。masking:每個音軌在其主要頻段的vs_rest_db。保持主導音軌在 0 或以上。低於約 -10 的部分幾乎聽不見:需要提升它們,對covered_by音軌進行 EQ 衰減,移動音域,或將其刪除。pairs顯示在一個頻段上衝突的部分(例如 63 Hz 的大鼓 vs 貝斯:讓其中一個佔據低頻,或在打擊點上進行閃避)。verify:對每個部分使用的每個音高進行探針渲染。這能顯示無聲或音量低得多的音高(超出樂器音域)、聽起來移調的部分、短音符上的慢起音、有音符但無聲音的小節(CC 為 0?),以及drum_notes:每個鼓音符真實的聲音以及同等力度下的音量。請信賴這些結果,而非預設名稱和描述。 修正、重新渲染、再次聆聽,直到每個警告都被解決或確認為有意為之。首次運行會對每個樂器進行探針渲染(每個插件音軌耗時數秒,之後會被快取)。reference="<file>"可將混音與使用者希望比對的音軌進行比較。
- 告知使用者您創作了什麼以及如何構建的(形式、調性、速度、樂器、動機),提供檔案路徑,並提供
play()或編輯器(ui_open())讓他們聆聽。他們的最終判斷來自自己的耳朵,因此詢問需要更改什麼。
8. 交付
使用 render(out="<game>/<音訊目錄>/<名稱>.<ogg|wav>", loop="auto"),並匹配專案的資料夾結構和命名。
- Godot:使用
.ogg。在導入設定中設定循環;對於前奏+循環,使用.loop.json中的loop_offset=loop_start_sec。 - Unity:使用
.ogg或.wav。在 AudioSource 上啟用循環標誌;前奏+循環則使用兩個片段或根據.loop.json進行計劃播放。 - Unreal:使用 16-bit 48 kHz 的
.wav(bits=16);WAV 檔案攜帶smpl循環塊。 - 網頁:使用
.ogg和.mp3。 對於自適應系統,使用stems=True/layers=True;使用midi=True將編曲交付給 DAW(Cubase)。
TTN 記譜法(用於 write)
D4:q!mf F4 A4:h | (D3 A3 F4):w | r:h C5:e. B4:s A4:q' G4:q> | E4:h~ E4:q r:q
音高 C4 = 中央 C(MIDI 60),F#3、Bb5,或 r 表示休止符。和弦 (C4 E4 G4)。
時值 w h q e s t(全音符到三十二分音符),附點 q.,三連音 e3,拍數 1.5 或 3/2,時值相加 h+e;設定後會保持。
力度 !pp !p !mp !mf !f !ff 或 !0-127,設定後會保持。' 斷奏,> 重音,~ 連線到下一個相同音高的音符。
| 小節線,會根據拍號進行檢查(不符時會返回警告,所以請修正它們)。
@6.5 將游標移動到書寫範圍的第 6.5 拍,用於在同一次呼叫中輸入第二聲部。或者使用 mode="merge"。
模式符記(用於 pattern):和弦音級 1 3 5 7 9,8 10 12 表示高八度,5-/3+ 表示八度移位,b7/#4 表示根音上的變化音級,. 休止,- 保持,1> 重音。範例貝斯:"1 - - 1 . 1 5- ."(流行),"1 . 1 . 1 . 1 ."(八分音符,合成波),"1 - 5- - 8 - 5- -"(行走感)。琶音:"1 5 8 10 12 10 8 5"、"1 3 5 8",速率 0.25 表示十六分音符。