TMD 音樂/樂隊電腦語言¶
In memory of Chen, Chih-Han / aguai (阿怪, 1974–2019)

TMD 是:
- 一種用來標示旋律的簡譜語法
- 這套語法的相關工具,包括編輯環境、格式轉換工具與語法檢查工具
- 讓心中旋律透過文字與 AI 協作,成為可試聽 MIDI 與樂譜的工作流
- 讓您寫出第一首歌的環境
Tip
想開始寫第一首歌,可前往 TMD Studio 章節。
給心中有旋律的人的 AI 中介語言¶
Suno、Udio、Google Flow Music…等用文字 prompt 直接產生音樂的 AI 工具已相當普及,但都有一個共同問題—這些工具根據機率直接產生歌曲的波形,內容難以預測,而且—用的不是你的旋律。
當心中已有一段旋律,無法要求這些工具照著旋律發展音樂。產生歌曲後,也很難進行細部調整,例如保留副歌、重寫主歌,每次都只能產生全新內容。也不能要求 AI 合併兩首歌曲,成為規模更大的作品。
文字型 AI,如 Gemini、ChatGPT、Claude 等,都能撰寫旋律與和弦。只要將旋律轉成文字 prompt,AI 模型就能協助完成樂譜。在 TMD 編輯環境中,可以手動或哼唱輸入旋律,轉換成 TMD 語法、即時試聽,再轉換成 MIDI 或樂譜。
TMD 最早由創作《三天三夜》的音樂人陳志翰(阿怪)於 2016 年為自己記譜而設計(原始專案)。TMD 意指 Timebased Markdown 或 Textual Music Description。在阿怪來不及看到的 AI 時代中,TMD 有了新的意義—人與 AI 間的理想音樂協作語言。
人類與 AI 的協作¶
我們想要的,不只是用 AI 做出東西,而是人機協作的結果。
人機協作除了 AI 模型本身的能力,還需要人類使用 prompt 的能力,以及驗證 AI 結果的自動化檢查工具。前者讓 AI 更理解人類意圖,後者確保 AI 輸出符合期望。
三者缺一不可,也需要共同語言。一件作品會經歷多次修改,人類修改 AI 產生的內容,再用工具驗證,讓三者形成 loop。在 TMD 工作流中—
| 角色 | 職責 |
|---|---|
| 人類 | 除了掌握基本風格參數外,也掌握核心的旋律 |
| AI 模型 | 協助人類繼續發展旋律與和弦 |
| 自動化檢查工具 | 用來驗證 AI 的輸出,如語法、格式是否正確,並且可以做音高、調性的自動檢測 |
接手阿怪 TMD 格式的開發者並非專業音樂工作者,開發這套工具的原因之一,是他常受「耳蟲」困擾:腦中不斷浮現旋律,直到記下旋律、完成作品並聽過,才能停止。開發 TMD 工具的初衷,除了紀念阿怪這位朋友,也是解決自己遇到的問題。
和其他記譜文字格式比較¶
TMD 的特色是使用相對音高、將歌曲段落模組化,並內建簡化的轉調命令。這能大幅壓縮資訊量,用簡短文字描述歌曲;在 AI 時代,還能節省 token,避免生成錯誤內容。
MusicXML、LilyPond、ABC notation 等純文字記譜語法已相當成熟,AI 也能產生這些格式;TMD 無法取代它們所擅長的領域。
這些格式誕生時,人機互動的對象往往是印表機:樂曲完成後,印出精確樂譜供樂手閱讀與演奏。在 AI 時代,人機互動則變成與 AI 模型互動。MusicXML、LilyPond 與 ABC notation 為樂手服務,TMD 則記錄最初的作曲意圖,也能透過工具轉換成上述格式。
MusicXML 與 LilyPond 雖然嚴謹,也有大量樂譜採用,但語法複雜。創作初期輸入心中旋律時負擔較大,AI 產生樂譜後,人類也較難修改。
ABC notation 雖然語法較簡單,但最初是為記錄固定音高的單軌旋律、再轉成五線譜而設計。遇到多個樂器時,必須分別記錄每個樂器的每個小節;若樂器從中途才進入,很容易產生大量休止符。對 AI 而言,這些休止符會造成語法干擾,容易計算錯誤,使樂器進入時間不正確。
在 TMD 中,樂譜可切成多個段落;某段未使用某種樂器時,可以完全不寫,讓 AI 專注於需要注意的地方。
與音樂 Live Coding 的差異¶
近年來,以程式碼即時演奏的 Live Coding(如 Sonic Pi、TidalCycles、Strudel、FoxDot 等)在電腦音樂圈相當活躍。同樣是「用文字寫音樂」,TMD 與 Live Coding 在核心哲學、語法抽象層次與使用情境上定位不同:Live Coding 直接使用可執行的程式語言播放音樂,TMD 則維持在音樂 DSL 的範圍內:
| 比較維度 | TMD (Timebased Markdown) | 音樂 Live Coding (Sonic Pi / TidalCycles 等) |
|---|---|---|
| 核心定位 | 記譜與作曲筆記 | 即時演出與音訊合成 |
| 思維模型 | 宣告式結構(Declarative):段落、小節、音符、和弦進程 | 演算法與程序式(Procedural):Pattern 運算、音訊 DSP、合成器參數與迴圈 |
| 音高系統 | 簡譜相對音高(首調思維),專注於旋律記憶與調性轉移 | 絕對音高(MIDI 數值 / 音名)或頻率控制,強調音色調變 |
| 人機協同 | 對 人與 AI 語言模型 的互動友善 | 為 人與音訊引擎 的現場即興演奏設計 |
| 產出結果 | 結構化樂譜、MIDI、MusicXML、簡譜,供後續編曲或打譜使用 | 即時音訊串流、即興聲響展演 |
- Live Coding 著重即時聲音生成:透過程式控制合成器、取樣與音訊效果,適合現場即興、電子音樂表演與演算法聲響實驗。
- TMD 著重旋律與結構的記錄:以輕量的文字語法記下動機、旋律與段落,方便人與 AI 編寫,再交由 DAW 或製譜軟體製作。
使用文字創作音樂¶
使用純文字記譜,除了能與 AI 協作,還能帶來
- 完整掌握、永久保存資料:即使日後 TMD 停止開發,純文字樂譜仍可用一般文字編輯器開啟,不受特定軟體限制
- 跨平台:任何 PC 只要有編輯器就能編寫 TMD;我們也提供 Web 編輯環境,有瀏覽器即可使用。
- 極致輕量:一首樂曲可能只有幾十行文字,除了儲存在磁碟,也能輕易保存於各種網路筆記本軟體
- 複製貼上:搬移或複製旋律就像編輯文件一樣,也能合併不同歌曲的段落或章節,組成完整作品
- 搜尋:在相關段落加上簡單註解,就能快速找到想試聽或修改的段落
- 註解:可在樂譜中加入註解,方便自己或他人理解各段落的用途或注意事項
- 音樂生成:會寫程式的用戶只要撰寫文字生成程式,就能自動生成音樂
- 版本控制:搭配 git 等版本控制系統,追蹤每次修改,方便回溯與管理
- 多人協作:多位創作者可同時編輯同一份樂譜,透過版本控制系統協調修改,提升協作效率—大家可以對一首歌發 PR
快速開始與文檔導覽¶
想體驗 TMD,可以從以下章節開始:
- TMD Studio:網頁版編輯環境,支援瀏覽器即時試聽、AI 協同寫歌、哼唱轉譜與多種格式匯出。
- VS Code 套件:語法高亮、即時小節錯誤診斷、側邊欄歌曲分析器與 GitHub Copilot AI 整合。
- CLI 工具:命令列樂譜解析、小節長度校驗、音訊預覽、轉檔與 AI Agent/MCP 整合。
- 歌曲分析:歌手音域(Vocal Tessitura)、K-S 調性認知演算法與五度圈分析。
- AI 協同寫歌:五大人機協同模式、即時試聽除錯閉環與實用提示詞模板。
- Web MCP 設定:瀏覽器端 Model Context Protocol 服務、雙向編輯器同步與即時試聽整合。
- 動機與變奏:電影感主導動機(Leitmotif)與四種場景氛圍變奏。
- 創作大型作品:「分而治之」工作流,從場景腳本、動機發展到全曲拼裝。
- 後期製作:串接 MuseScore、GarageBand、Logic Pro、REAPER 與頂級虛擬音色庫。
- 演算法生成:TMD 巨集語言、費氏數列旋律、馬可夫鏈和弦與生命遊戲節奏。
- 奇思妙想:用生日、名字、詩詞平仄、RSA 加密與 Git Hash 激發靈感。
- 語法規格:相對音高、段落宣告、拍號速度、轉調與打擊樂語法規格。
- 開發者指南:npm 套件
tmdlang、TypeScript API、AST、多格式匯出器與 MCP/LSP 整合。 - 常見問答:倍率
<4*>/<8*>常見失誤、小節校驗抓蟲與 AI 自動修復技巧。