Touch Designer 直播挑戰 Vol.1|把披薩圖變成音樂?演算音樂與影像轉換

直播挑戰#1 課程筆記
MONOLAB|藝術 x 科技 x 教育

MONOLAB|藝術 x 科技 x 教育

2025年12月2日 上午 6:16

TD直播課程筆記

課程概覽

本次直播旨在介紹如何利用 TouchDesigner (TD) 軟體,將靜態影像或動態影片中的視覺資訊(如顏色、亮度、像素分佈)轉換為 MIDI 訊號,進而驅動編曲軟體(如 Ableton Live)產生演算音樂(Generative Music)。核心目標是實現「影像即音樂,像素即音符」的創作手法。

  • 主題: TouchDesigner 影像到演算音樂的應用實作。
  • 工具: TouchDesigner (TD) + Ableton Live (編曲軟體) + IAC MIDI Driver (Mac 內建橋接工具)。
  • 預期成果: 能夠成功建立 TD 與 Ableton 的 MIDI 連線,並將 TD 中的影像分析訊號轉換為定時或亂數的音符觸發。

課程大綱 / Agenda

  1. 開場與背景介紹: 說明直播動機及 Monolab.world 品牌理念。
  2. 核心概念與理論:
    • 影像即音樂的國外案例分享(Matthew、紫強 Paperbrick)。
    • 為什麼要結合 TD 與編曲軟體(Ableton)。
  3. 示範案例分析: 分析 PIZZA 演算音樂專案的技術結構。
  4. 步驟教學 (Step-by-Step):
    • 階段一: 設定 TD 與 Ableton 的 MIDI 訊號連線。
    • 階段二: 在 TD 中處理訊號以觸發音符。
    • 階段三: 影像轉 CHOP 訊號的實戰應用。
  5. 總結與問答。

核心概念與理論

1. 影像即音樂 (Image-to-Sound) 概念

  • 靈感來源: 國外藝術家將現實或影像中的分佈特徵轉換成音樂。
    • 例如:將電線桿上的鳥轉換成音符、將河流石頭的分布變成音樂、將高速公路車流或人跳躍的動作轉換成旋律。
  • 關鍵機制: 讀取圖片中特定像素(Pixel)的顏色或亮度變化,將這些數值轉換為音樂參數(如:音高、力度、觸發時機)。
    • 例子: 像素亮 $\rightarrow$ 觸發鼓;像素暗 $\rightarrow$ 觸發鋼琴。

2. 創作者案例分享

  • Matthew: 可能是系統化產出此類作品的始祖。他的作品品質高,關鍵在於:
    1. 成熟樂器: 使用鋼琴、小提琴等已成熟的樂器音色。
    2. 高品質聲響設計: 加入如 Reverb、EQ 等後期特效,避免聲音聽起來過於乾燥或實驗性吵雜。
    3. 結合: 實際影像訊號 + 有品質的聲響設計。
  • 紫強 (Paperbrick): 朋友,曾嘗試用 TouchDesigner 結合 VCV(類比合成器的數位版本)製作實驗性聲音,例如將蛋的位置變成音樂。

3. 為什麼結合 TD 與編曲軟體?

  • TD (TouchDesigner): 擅長即時的視覺運算、訊號產生與處理 (CHOPs),可以將複雜的影像或互動數據即時轉換為數值訊號。
  • Ableton Live (編曲軟體): 擅長聲音設計、音色庫管理、效果處理 (Reverb, EQ)
  • 結合優勢: 達到 TD 提供複雜的「音樂邏輯」和「觸發機制」,Ableton 提供高品質且成熟的「音樂音色」和「後期效果」,使作品更完整。

示範案例分析:PIZZA 演算音樂專案

這個專案的目標是將一個旋轉的 Pizza 圖片轉換成音樂。

  • 影像處理: 讀入旋轉中的 Pizza 圖片。
  • 讀取機制: 像 CD 唱機一樣,從圖片中讀取一條線的像素顏色。
  • 訊號萃取: 將該線上的像素顏色(RGB 值)萃取出來。
  • 訊號分流與映射 (Mapping):
    • 紅色 (R): 觸發鋼琴樂器(中音)。
    • 綠色 (G): 觸發鼓樂器(節奏)。
    • 藍色 (B): 觸發低音貝斯 (Bass) 樂器。
  • 聲音校正: 在 Ableton 中,對傳入的 MIDI 訊號進行音高(和弦)校正,使其聽起來和諧;並調整音符力度,使聲音更有層次感,不至於像「砸鋼琴」。

步驟教學(Step-by-Step)

階段一:TD 與 Ableton 的 MIDI 訊號連線 (Mac 為主)

核心: 透過 MIDI 終界器 (IAC MIDI Driver) 建立 TD 和 Ableton 之間的橋樑。

1. 啟用 IAC MIDI Driver (Mac 系統)

  1. 開啟 Mac 系統的應用程式 $\rightarrow$ 音訊 MIDI 設定 (Audio MIDI Setup)
  2. 在視窗中找到並點擊 $\rightarrow$ 顯示 MIDI 錄音器 (Show MIDI Studio)
  3. 在列表中找到 IAC Driver,確認它已開啟(新增連接部)。

2. 在 Ableton 中設定 MIDI 輸入

  1. 在 Ableton 中建立一個新的 MIDI 音軌,並放入所需的樂器(例如:Vital 合成器)。
  2. 在該音軌的設定中:
    • MIDI From (輸入) 選擇 $\rightarrow$ IAC Driver
    • Channel (頻道) 選擇 $\rightarrow$ 選擇特定的頻道(例如:CH 1CH 2),確保與 TD 輸出對應。

3. 在 TouchDesigner 中設定 MIDI 輸出

  1. 在 TD 介面中,開啟 [Dialogs] $\rightarrow$ [MIDI Device Mapper]
  2. 建立新的 Mapping,將 In (輸入)Out (輸出) 都選擇 $\rightarrow$ IAC Driver
  3. 在 TD 網路中,新增一個 MIDI Out CHOP,將其 Device 選擇為您剛才設定的 MIDI 1 (或其他對應的編號)。

4. 關鍵:MIDI 訊號格式轉換

MIDI 訊號需要特定的命名格式才能被軟體識別為音符或控制訊號。

  • 音符觸發 (Note On/Off): 必須將訊號 CHOP 命名為 CHE N[Note Number]
    • 例如:CH1 N60 (Channel 1, Note 60)。
  • 連續控制 (Control Change): 用於拉桿或旋鈕等連續數值。
    • 例如:CH1 C20 (Channel 1, Control 20)。

階段二:在 TD 中處理訊號以觸發音符

1. 基礎單音觸發

  1. 新增一個 Button CHOP,並連接到 MIDI Out CHOP
  2. Button CHOP 的 Channel 名稱重新命名 (Rename) 為 $\rightarrow$ CH1 N60
  3. 在 Ableton 中,確保該音軌的輸入選為 CH 1
  4. 點擊 Button,即可在 Ableton 中觸發 Note 60 的聲音。
    • 注意: 如果聲音黏住不放,需要手動或使用另一個訊號發送 Note Off(關閉音符)。

2. 連續音階/亂數旋律觸發 (使用 Fan CHOP)

目標: 讓一個連續變動的訊號(如 Ramp 或 Noise)觸發多個不同音高。

建立訊號: 新增一個 Ramp CHOP (斜坡訊號) 或 Noise CHOP (亂數訊號)。

  • 數值映射 (Map):
    • 新增 Math CHOP
    • 將 Range (範圍) 重新映射:From (從) 0 ~ 1 變成 To (到) 40 ~ 60 (對應 MIDI Note 40-60 的音高)。
  • 時間切片:
    • 新增 Time Slice CHOP。這會讓訊號跟著 TD 的時間軸播放,並在每個時間點只輸出一個數值(而非整條曲線)。
  • 轉換為多頻道 (Fan):
    • 新增 Fan CHOP
    • Channel Name 設為 $\rightarrow$ CH1 N[Note Number] (例如:CH1 N40-60)。
    • 機制: Fan CHOP 會根據輸入的數值,將訊號切成多個離散的頻道,這些頻道會被命名為 CH1 N40, CH1 N41... 直到 CH1 N60,從而實現連續音階的觸發。
  • 輸出: 連接到 MIDI Out CHOP

3. 節奏/鼓組觸發 (使用 Count CHOP)

目標: 定時、有規律地觸發鼓聲(例如大鼓 Kick Drum)。

建立計數器: 新增 Count CHOP,設定其計數範圍和速率,產生規律變化的數值。

  • 邏輯判斷:
    • 新增 Logic CHOP,設定為 Value Change 模式。
    • 機制:Count 的數值發生變化時,Logic CHOP 會在瞬間輸出一個 1 的脈衝訊號,這很適合當作鼓的觸發。
  • 頻道分離:
    • 將此訊號連到另一個 MIDI Out CHOP
    • 將 CHOP 重新命名為 $\rightarrow$ CH2 N40 (例如:使用 Channel 2 和 Note 40,確保不與鋼琴混淆)。
  • Ableton 設定: 在 Ableton 中,建立另一個 MIDI 軌道,放入鼓組樂器,並將其 MIDI From 設定為 $\rightarrow$ IAC DriverChannel 2

常見問題 & 解決方案

問題 (Q)解決方案 (A)
Q1: 聲音觸發後會黏住,不會停止?A: MIDI 訊號需要一個 Note Off 才能停止。在使用 Button 時,確保其模式為 Momentary(瞬間),或是在訊號結束時手動/邏輯輸出一個值為 0 的訊號給 MIDI Out。
Q2: MIDI 訊號傳不過去 Ableton?A: 檢查三點:1. Mac 系統的 IAC Driver 是否已開啟。 2. TD 的 MIDI Device Mapper 是否設定為 IAC Driver。 3. TD 的 CHOP 輸出名稱是否符合 MIDI 格式(例如:CH1 N60),且 Ableton 的輸入 Channel 是否與之匹配。
Q3: 為什麼要用 Time Slice CHOP?A:RampNoise 預設是多個數值組成的序列。Time Slice 會根據 TD 的時間軸,從這個序列中切出單一個數值,確保每次觸發 MIDI 音符時,只發送一個確定的音高數值。
Q4: 為什麼使用 Fan CHOP?A: 將單一數值範圍(如 40-60)拆分成多個獨立命名的頻道(如 N40, N41, ... N60),這樣才能讓 MIDI Out 將這些數值識別為獨立的音符,而不是一個連續的控制器數值。

練習任務

  1. 基礎連線測試: 成功使用 LFO CHOP (Square Wave 方波) 驅動一個單音(例如 CH1 N50)每秒觸發一次。
  2. 音階生成: 使用 Ramp CHOPFan CHOP,並搭配 Math CHOP 將音高範圍映射到 6072,製造一個持續上升的音階旋律。
  3. 影像轉訊號探索: 嘗試使用 Movie File In TOP 讀入一張星星的夜空圖片,接著連接到 TOP to CHOP 節點,觀察其輸出的顏色或亮度數據,並將其連接到 Fan CHOP 嘗試製造出基於星空分布的亂數旋律。

總結

本次課程成功展示了 TouchDesigner 與專業編曲軟體 Ableton Live 結合的可能性,利用 TD 強大的訊號處理能力,我們可以輕鬆將視覺世界的數據轉化為音樂的輸入。掌握 IAC MIDI DriverMIDI CHOP 的命名規則CHE Nxx)是實現跨軟體整合的關鍵第一步。未來我們將更深入探索如何從複雜的影像中萃取更有趣的數據來驅動音樂。

邀你一起學習!直播筆記專屬折扣碼「Live600」

輸入折扣碼「Live600」,即可享有600元的課程折扣,學員可享有:

  • TouchDesigner 共學群組,有問題即可直接詢問哲宇老師
  • 可不定期收到 TouchDesigner 小模組直播的製作素材包
  • 小模組直播的許願池,會優先從TD共學群組的需求來教學

點擊連結進行報名,我們TD線上課相見囉!