多軌音樂錄製應用程式 — Version 0.1.1
2026-04-13
Musician's Canvas 是一款適用於桌上型電腦的多軌音樂錄製應用程式。它支援從麥克風和線路輸入裝置進行音訊錄製、從鍵盤和控制器進行 MIDI 錄製,並可將所有音軌混音為單一 WAV 或 FLAC 檔案。附屬應用程式 Virtual MIDI Keyboard 提供了一個軟體鋼琴鍵盤,用於傳送 MIDI 音符。
Musician's Canvas 的設計注重易用性,同時提供數位音訊工作站(DAW)中常見的功能:
從建置目錄或安裝位置執行 musicians_canvas 可執行檔:
./musicians_canvas
首次啟動時,應用程式會開啟一個空白專案。您需要在錄製前設定專案目錄。
啟動時,應用程式會套用已儲存的主題(深色或淺色),如果先前使用的專案目錄中包含 project.json 檔案,則會自動載入該專案。
設定專案目錄:在視窗頂部的「Project Location」欄位中輸入或瀏覽至一個資料夾。錄音檔案和專案檔案將儲存在此處。
新增音軌:點選 + Add Track 按鈕。一個具有預設設定的新音軌將會出現。如果它是專案中唯一的音軌且尚未錄製,則會自動啟用錄製待命。
為音軌命名:在「Options」按鈕旁的文字欄位中輸入名稱。此名稱將作為錄製音訊檔案的檔案名稱。

選單列正下方有一個帶有快速存取按鈕的工具列:

專案檔案(project.json)儲存音軌名稱、類型、MIDI 音符、音訊檔案參照及所有專案特定設定。音訊檔案儲存在與 project.json 相同的目錄中,並以其音軌名稱命名(例如 My_Track.flac)。
如果您在有未儲存變更的情況下關閉應用程式,系統會顯示確認對話框,詢問是否要在退出前儲存。
當專案開啟時,您可以從檔案管理員(Windows 檔案總管、macOS Finder、Linux 檔案 管理員等)將一個或多個支援的音訊檔案直接拖放到 Musician's Canvas 視窗上, 將它們新增為新的音訊音軌。
.wav 和 .flac。任何其他格式的檔案會被靜默略過,結束時
會有一個對話框列出哪些檔案被略過。Bass Line.wav 會建立一個名為「Bass Line」的音訊音軌。每個音軌可設定為 Audio(用於麥克風/線路輸入錄製)或 MIDI(用於鍵盤/控制器錄製)。
若要變更音軌類型:
這將開啟「Track Configuration」對話框,您可以在其中選擇輸入來源。

每個音軌列提供以下控制項:
當專案只有一個音軌且該音軌尚未錄製時,它會自動進入錄製待命狀態。這適用於在新專案中新增第一個音軌,以及開啟僅含單一空白音軌的現有專案。
錄製的音訊以 FLAC 檔案格式儲存在專案目錄中,以音軌名稱命名。
在錄製和播放期間,所有互動控制項(音軌按鈕、設定等)都會被停用,以防止意外變更。
音訊音軌在 Options 下方有 效果 按鈕,可開啟 軌道效果 對話方塊,為該音軌的錄音建立 有序效果链:

可加入 殘響、合唱、鑲邊(Flanger)、過載/失真(Overdrive / distortion)、音箱頭與箱體建模(Amp & cabinet)(箱頭類型、箱體、增益、低/中/高頻、空氣感與溼乾比等),以及 顫音(Vibrato / Tremolo)。
顫音(Vibrato / Tremolo) 是 Fender 許多音箱上標示為 “Vibrato” 的經典效果(其實是 音量隨時間週期性起伏 的 tremolo)。使用 Speed 調整起伏速度,使用 Intensity(Depth)調整深度(從細微閃動到強烈斷奏)。
以下為 Amp & cabinet 的介面範例:


效果在 停止錄製 後套用(經一般擷取與重取樣)。設定儲存在 project.json 的 audioEffectChain。
Project → Project Settings → Mix Effects lets you build the same kind of ordered effect chain as Track effects (Reverb, Chorus, Flanger, Overdrive / distortion, Amp & cabinet, Vibrato (Tremolo)), but applied to the entire mixed program: when you press Play to hear all enabled tracks together, and when you export with Mix tracks to file (toolbar or Tools menu). The chain is saved in project.json under projectSettings → mixEffectChain.
Project → Project Settings → Aux / Send Bus configures a shared effect chain fed by each track’s Aux send slider (on the track row). The dry mix of all tracks is summed, each track’s post-gain/post-pan signal is scaled by its Aux level and sent through this bus, then the wet aux output is added back to the dry sum before Mix Effects run. Use it for a single shared reverb/delay while keeping per-track insert effects independent.
To reduce harsh digital clipping when processing pushes peaks toward full scale, the effect engine applies a soft limiter to normalized float samples immediately before conversion to 16-bit PCM. The EffectWidget base class documents guardFloatSampleForInt16Pcm() and softLimitFloatSampleForInt16Pcm() for any new real-time code that writes to 16-bit audio.
Each track row includes a compact mixer strip:
Options → Track Configuration also offers Clip trim (non-destructive): Trim start and Trim end skip that many seconds from the beginning and end of the clip for playback, mix, and export without deleting the underlying recording.
MIDI tracks can carry control change (CC) automation stored in the project and in exported .mid files; offline playback and mix use these events when rendering MIDI to audio.
Edit → Undo / Redo (standard shortcuts) apply to mixer and trim changes made on tracks.
在 時間顯示 右側,錄音時監聽音訊 控制錄製期間是否將 即時輸入 送到 專案的音訊輸出:
此設定儲存在 專案(project.json 的 monitorWhileRecording)。若要避免麥克風回授可關閉。
當錄製新音軌時,如果其他已啟用的音軌已包含音訊或 MIDI 資料,Musician's Canvas 會執行疊錄:現有音軌會混合在一起,並在錄製新音軌的同時即時播放。這讓您可以在錄製新段落時聽到先前錄製的部分。
現有音軌的混音會在擷取開始前準備好,因此錄製和播放幾乎同時開始,保持所有音軌同步。
Musician's Canvas 支援兩種音訊擷取後端:
錄製後端可在 Project > Project Settings > Audio 中針對每個專案進行設定。
Musician's Canvas 以音訊輸入裝置的原生取樣率進行錄製,然後使用高品質重新取樣自動轉換為專案設定的取樣率。這意味著您可以設定任何專案取樣率(例如 44100 Hz 或 48000 Hz),而不受裝置原生取樣率的限制。轉換過程會精確保留音高和時間長度。
某些音訊裝置(例如 USB 網路攝影機麥克風)實際上是單聲道,但被作業系統報告為立體聲。Musician's Canvas 會自動偵測此情況並相應調整聲道數。如果專案設定為立體聲,單聲道訊號會被複製到兩個聲道。
MIDI 音符會以鋼琴捲軸視覺化顯示在音軌上。
Musician's Canvas 內建節拍器,可在錄製期間用於協助保持節奏。點選選單列下方按鈕列上的節拍器按鈕,以開啟節拍器設定對話框:

該對話框提供:
當節拍器啟用時,它會在錄製真正開始後(3 秒倒數計時結束後)開始滴答,並在錄製結束時停止。
點選 Play 按鈕以混音並播放所有已啟用的音軌。按鈕的工具提示會根據是否有音軌處於待命狀態,指示將執行播放或錄製。已停用的音軌(未勾選)會從播放中排除。
播放期間,音訊音軌會從其 FLAC 檔案中解碼,MIDI 音軌會使用內建的 FluidSynth 合成器轉譯為音訊。所有音軌會混合在一起,並透過系統的音訊輸出裝置播放。
點選 Stop 按鈕可隨時結束播放。
使用 Tools > Mix tracks to file(Ctrl+M)將所有已啟用的音軌匯出為單一音訊檔案。對話框可讓您選擇輸出路徑和格式:
混音使用專案設定的取樣率。MIDI 音軌使用設定的 SoundFont 進行轉譯。每軌的 增益、聲像、靜音/獨奏、Aux 送出 與 修剪 與播放時相同套用。
Tools → Export stems to folder 會為參與混音的已啟用音軌各寫出一個 WAV 分軌;每個分軌反映該軌的混音與修剪設定;全專案的 Mix Effects 不會套用在個別分軌上。
使用 Settings > Configuration(Ctrl+,)設定適用於所有專案的全域預設值:

recording_debug.txt 的檔案。這包括擷取後端、裝置名稱、取樣率、聲道數和計時
資料。此選項預設為停用,主要用於排解錄製問題。

.sf2 SoundFont 檔案以進行 MIDI 合成。在 Linux 上,如果已安裝 fluid-soundfont-gm 套件,系統可能會自動偵測 SoundFont。在 Windows 和 macOS 上,您需要手動設定 SoundFont 路徑。

使用 Project > Project Settings(Ctrl+P)為目前專案覆寫全域預設值。這對於需要特定取樣率、SoundFont 或音訊裝置的專案非常有用。專案特定設定儲存在 project.json 檔案中。


The Mix Effects tab is a scrollable list with the same controls as Track effects (Add effect…, drag ≡ to reorder, ✕ to remove). Processing order is top to bottom on the combined mix of all enabled tracks. These effects run during whole-project playback and when mixing to a single WAV or FLAC file; they are not baked into individual track files on disk. An empty list leaves the mixed signal unchanged aside from the mixer's own level handling.
設定 共用 Aux 效果鏈(與音軌插入效果相同類型)。每軌的 Aux 滑桿控制送入此匯流排的量;濕聲回送會在套用 Mix Effects 之前加回乾聲總和。
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Save Project | Ctrl+S | 將目前專案儲存至磁碟 |
| Open Project | Ctrl+O | 開啟現有的專案檔案 |
| Close | Ctrl+Q | 結束應用程式 |
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Project Settings | Ctrl+P | 設定專案(含 Aux / Send Bus) |
| Tempo map | 編輯速度變化(秒與 BPM):節拍器與 MIDI 量化 | |
| Add Demo Data to Selected Track | 為選取的音軌新增範例 MIDI 音符 |
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Undo | Ctrl+Z | 復原混音器/修剪變更 |
| Redo | Ctrl+Shift+Z | 重做 |
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Configuration | Ctrl+, | 開啟全域應用程式設定 |
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Mix tracks to file | Ctrl+M | 將所有已啟用的音軌匯出為檔案 |
| Export stems to folder | 每音軌一個 WAV(增益/聲像/修剪;無主程式 Mix Effects) | |
| Recording options | 音訊 切入錄音;整個專案的 循環播放 | |
| Quantize MIDI | 將 MIDI 音符開頭對齊格線(全部 MIDI 或僅待命音軌) | |
| Add drum track | D | 新增鼓 MIDI 音軌並寫入 .mid(見下文) |
| Virtual MIDI Keyboard | 啟動附屬鍵盤應用程式 |
| 選單項目 | 快捷鍵 | 說明 |
|---|---|---|
| Manual | Alt+M | 開啟目前所選語言的 PDF 使用手冊 |
| About | 顯示版本與應用資訊 |
| 快捷鍵 | 動作 |
|---|---|
| Ctrl+S | 儲存專案 |
| Ctrl+Z | 復原(混音器/修剪) |
| Ctrl+Shift+Z | 重做 |
| Ctrl+O | 開啟專案 |
| Ctrl+M | 混音匯出為檔案 |
| D | 新增鼓音軌(Tools 選單) |
| Ctrl+P | 專案設定 |
| Ctrl+, | 設定 / Configuration |
| Alt+M | 開啟 PDF 使用手冊(Help) |
| Ctrl+Q / Alt+F4 | 結束應用程式 |
Tools → Add drum track(快速鍵 D)會新增 General MIDI 第10通道(通道索引 9)的 MIDI 鼓音軌。預設名稱 Drums(必要時加序號)。
會在專案資料夾立即寫入 .mid(兩小節 4/4:大鼓、小鼓、閉合嗨嗨鑔)。速度:
參考: Audient、MDrummer、Reddit、CS229 PDF。
Virtual MIDI Keyboard 是一款附屬應用程式(virtual_midi_keyboard),提供螢幕上的鋼琴鍵盤,用於傳送 MIDI 音符。它可以從主應用程式的 Tools > Virtual MIDI Keyboard 選單中啟動,也可以獨立執行。

電腦鍵盤對應至跨越兩個八度的鋼琴鍵:
低八度(從目前八度開始):
| 按鍵 | 音符 |
|---|---|
| Z | C |
| S | C#/Db |
| X | D |
| D | D#/Eb |
| C | E |
| V | F |
| G | F#/Gb |
| B | G |
| H | G#/Ab |
| N | A |
| J | A#/Bb |
| M | B |
高八度(高一個八度):
| 按鍵 | 音符 |
|---|---|
| Q | C |
| 2 | C#/Db |
| W | D |
| 3 | D#/Eb |
| E | E |
| R | F |
| 5 | F#/Gb |
| T | G |
| 6 | G#/Ab |
| Y | A |
| 7 | A#/Bb |
| U | B |
| I | C(下一個八度) |
| 9 | C#/Db |
| O | D |
| 0 | D#/Eb |
| P | E |
按下按鍵時,鍵盤會有視覺反應(白鍵變為淺藍色,黑鍵變深)。
開啟 Configuration 對話框(Settings > Configuration,Ctrl+,)以設定 MIDI 和音訊裝置:

.sf2 SoundFont 檔案以供內建合成器使用。| 快捷鍵 | 動作 |
|---|---|
| Ctrl+, | Configuration 對話框 |
| Ctrl+U | 說明 / 使用資訊 |
| Ctrl+Q | 關閉 |
.sf2)。音符顯示在鋼琴捲簾。File > Save Project 會在專案資料夾寫入 .mid 與 project.json。
播放使用設定中的 SoundFont 經 FluidSynth 發聲。請檢查 Settings > Configuration > MIDI(若依專案覆寫則看 Project > Project Settings):必須有有效的 .sf2 路徑。Linux 有時會自動找到系統 SoundFont;Windows 與 macOS 通常需手動選擇 SoundFont。
它們是兩個獨立程式。從 Tools > Virtual MIDI Keyboard 啟動(亦可單獨執行)。若要在錄製 MIDI 時讓螢幕鍵盤送入 Musician's Canvas,作業系統必須把鍵盤的 MIDI 輸出路由到 Musician's Canvas 使用的輸入(例如虛擬 MIDI 線或在兩邊選一致連接埠)。不會自動連線。
Settings > Configuration 設定應用程式的全域預設值(主題、語言、MIDI/音訊裝置、SoundFont 等)。Project > Project Settings 只針對目前專案覆寫部分設定,並存在 project.json。欄位若維持專案預設,則使用 Configuration 的全域值。
僅在已設定專案目錄,且 Musician's Canvas 未在播放或錄製時才接受拖放。支援 .wav 與 .flac;其他副檔名會略過並在對話框列出。每個檔案成為新音訊音軌,名稱取自檔名(不含副檔名)。
音訊存在專案目錄,檔名為 <音軌名稱>.flac(/ \ : * ? " < > | 等字元會改成底線)。專案檔為同資料夾的 project.json。儲存專案時,MIDI 音軌還會寫出 <音軌名稱>.mid(音符亦在 project.json)。
混音或播放時,MIDI 會先在內部渲染成暫存 WAV。若知道專案路徑,Musician's Canvas 也會在專案資料夾寫入快取用 <清理後的音軌名稱>.flac(與其他音軌檔案相同的檔名規則)。名稱依音軌名稱,不是內部 ID。
不行。同一時間只能 Arm 一軌,下一筆錄音只進該軌。請一軌一軌疊錄(overdub 會在錄新軌時播放既有軌)。
不會。啟用時節拍器只從系統音訊播放給您聽,不會混進錄音檔。
在 Windows 上,主程式預期使用 ASIO 驅動以取得可靠、低延遲音訊。若出現啟動或音訊錯誤,請安裝 ASIO4ALL 或介面廠商提供的驅動。
在 .app 套件中,Virtual MIDI Keyboard 執行檔會複製到 Musician's Canvas.app 內(Contents/MacOS/),方便只散佈一個應用程式資料夾。仍可由選單 Tools > Virtual MIDI Keyboard 啟動。
amixer 或您桌面的音效設定來檢查音量。.sf2 檔案)。fluid-soundfont-gm 套件,系統可能會自動偵測 SoundFont。libpipewire-0.3-dev 套件(FluidSynth 合成器與 PipeWire 整合所需)。請參閱 README 以取得 Linux、macOS 和 Windows 的完整建置說明,包括所有必要的相依套件。