歌曲分析器¶
在音樂創作與編曲過程中,常需要回答僅靠閱讀樂譜難以掌握的全局問題:
- 這首曲子的旋律到底有多高?歌手唱得上去嗎?
- 樂曲的真實調性是什麼?中途有沒有離調或轉調?
- 歌曲的時間長度是多少?各段落的長度比例與樂器編配密度是否平衡?
TMD 歌曲分析器(Inspector) 是音樂特徵分析診斷系統。它不改變原始樂譜,而是展開播放時間軸,提供即時數據分析;目前整合於網頁版 TMD Studio、VS Code 擴充套件與 CLI 工具(tmd inspect)。
音高與人聲音域分析¶

對於包含旋律音符的樂軌(特別是人聲 Vocal 軌),Inspector 會自動提取發聲音符並統計:
音域極值與跨度¶
- 最低音(Lowest Note) 與 最高音(Highest Note):以標準科學音高記號(例如
C4、A5)及 MIDI 音高編號標示,並精確指出極值音符出現在哪一個段落、哪一小節與經過秒數。 - 音域跨度(Pitch Span):計算最高音與最低音之間的半音差距(Semitones)與八度數(例如 19 個半音,相當於 1 個八度加完全五度)。
- 平均音高(Average Pitch):計算旋律線條的音高重心。
演唱難易度評估¶
系統根據音域跨度提供難易度分級:
- 輕鬆(Easy):跨度在 12 個半音(1 個八度)以內。
- 適中(Moderate):跨度在 13 至 16 個半音之間。
- 具挑戰性(Challenging):跨度在 17 至 20 個半音之間。
- 困難(Difficult):跨度達到 21 個半音以上。
建議人聲聲部分類¶
將分析音域與國際標準聲樂聲部範圍比對,自動建議演唱聲部:
- 女高音(Soprano):C4 ~ A5(MIDI 60~81 左右)
- 次女高音(Mezzo-Soprano):A3 ~ F5(MIDI 57~77 左右)
- 女低音(Contralto):F3 ~ D5(MIDI 53~74 左右)
- 男高音(Tenor):C3 ~ A4(MIDI 48~69 左右)
- 男中音(Baritone):A2 ~ F4(MIDI 45~65 左右)
- 男低音(Bass):E2 ~ E4(MIDI 40~64 左右)
Note
若旋律最高音超過目標歌手的舒適音域,可直接降低樂譜開頭的 ?=(例如從 ?= G 降至 ?= E),不改音符即可平移音域!
曲調與調性推論¶

創作者可能只用首調簡譜 1 2 3 5 6 記下旋律,或設定首調基準 ?= C,但歌曲聽起來可能偏向小調(如 A 小調)、五聲音階或帶有離調色彩。Inspector 會根據音符與和弦數據,推算歌曲的調性。
推論原理:Krumhansl-Schmuckler (K-S) 認知演算法¶
歌曲分析器採用音樂認知心理學的 Krumhansl-Schmuckler (K-S) 調性演算法:
- 收集 12 個半音的累積時值權重(Pitch-Class Weight):
- 系統將旋律中出現的每一個音,依據它的實際物理音高歸納到十二個半音(C, C#, D, D#, E, F, F#, G, G#, A, A#, B)中。
- 時值加權:一個四分音符算 1 拍,全音符算 4 拍,音符持續越久、出現次數越多,該音級的權重就越高。
- 和弦參與評分:伴奏中的和弦也會按組成音參與計分(根音權重 1.0、三音與五音 0.8、七音與延伸音 0.6)。
- 與 24 個調性心理學特徵模型進行比對:
- 認知心理學研究表明,人類聽覺對於「大調」和「小調」有穩定的音級重要性排序(例如大調中最常出現主音 Do、屬音 Sol、下屬音 Fa)。
- 系統準備了 24 種可能的調性範本(12 個大調 + 12 個自然小調)。
- 將樂曲統計出的音級分布,與這 24 個模型逐一計算皮爾森相關係數(Pearson Correlation)。
- 判定調性與穩定度:
- 相關係數最高者即為推論調性(Inferred Tonality)。
- 同時比對第一名與第二名的差距(Margin),評估調性穩定度(Stability):
- 高(High):領先差距顯著,主調明確穩定。
- 適中(Moderate):調性特徵清晰,但可能存在關係大小調(如 C 大調與 A 小調)的競爭。
- 模糊(Ambiguous):樂曲頻繁離調、和聲游離,或資訊量不足以明確斷定單一調性。
- 五度圈軌跡與轉調追蹤:
- Inspector 會為每個獨立段落(
intro、verse、chorus等)單獨評估調性。 - 繪製出樂曲在五度圈(Circle of Fifths)上的位移路徑。當相鄰段落出現穩定的大小調切換時,自動判定為轉調事件(Modulation)。
演算法的限制與邊界¶
K-S 演算法雖適合流行歌曲與傳統古典調性音樂,仍有以下限制:
以「大調 / 小調模型」為基礎,未完整支援複雜中古調式¶
- 目前演算法的基準模型以大調(Major)與小調(Minor)為主(這已能涵蓋 95% 以上的流行歌曲)。
- 對於現代流行音樂中常見的多利安調式(Dorian)、密克索呂底亞調式(Mixolydian)、弗里吉安(Phrygian)或藍調音階(Blues Scale),系統會將其視為「帶有離調色彩的大調或小調」,並以調式色彩(Modal Color)或較低的自然音純度(Diatonic Purity)標示,而不會直接輸出專屬調式名稱。
關係大小調的先天模糊性¶
- 例如 C 大調 與 A 小調 使用完全相同的七個自然音(C, D, E, F, G, A, B)。
- 如果一首歌大量落在 La(A)與 Do(C)之間,且缺乏明確的屬七和弦終止式(如 G7 ➔ C 或 E7 ➔ Am),演算法可能在 C 大調與 A 小調之間產生接近的相關係數,此時系統會保守回報為「適中」或「模糊」,避免武斷臆測。
「推論調性」不等於樂譜開頭的 ?= 或 key=¶
?=是首調音高平移(Key Offset):代表簡譜唱名1對齊哪個音。就算你寫了?= C,你依然可以寫出一首憂傷的 A 小調歌曲。key=是樂譜調號標記:代表你想在五線譜開頭印幾個升降記號。- 推論結果是「聽覺證據」:Inspector 是依據實際音符發聲統計的結果,它絕不會主動修改你寫的樂譜或改變任何音高,僅供創作者參考。
純打擊樂與極短動機難以推論¶
- 若樂譜中只有無固定音高的打擊樂(如第 10 軌爵士鼓
Drums),或者整首歌只有 1~2 小節的零碎音符,系統會判定為 「證據不足(Insufficient Evidence)」,不會勉強給出猜測。
歌曲結構時間線與編曲密度¶
Inspector 也能分析樂曲結構:
- 時間軸精確計算:
- 總演奏時間(換算至秒數)與全曲總小節數。
- 各段落的起始小節、四分音符拍位、持續小節數與所佔時間比率。
- 編曲樂器密度(Arrangement Density):
- 各段落實際有發聲的樂器軌道數量。
- 最高同時發聲軌道數(Peak Concurrency):找出整首歌曲情緒最飽滿、樂器編配最密集的段落。
- 和弦詞彙統計(Harmonic Vocabulary):
- 彙整全曲所有出現過的不重複和弦符號清單(如
[1],[6m],[4],[5],[Cmaj7]),便於評估和聲的豐富度。
- 彙整全曲所有出現過的不重複和弦符號清單(如
如何在各環境中使用歌曲分析器¶
TMD Studio¶
- 編輯樂譜時,右側側邊欄的歌曲分析器會自動即時分析。
- 支援切換下拉選單檢視不同樂軌的音域。
- 提供視覺化調性圖表,可點擊 SVG 下載五度圈雷達圖,或點擊 Report 在新視窗開啟完整 HTML 報表。
VS Code 擴充套件¶
- 點擊左側活動列的 TMD 圖示 ➔ 開啟 歌曲分析器 側邊欄。
- 亦可在命令面板中執行
TMD: Open Song Inspector。
命令列 CLI¶
在終端機中執行: