Musician’s Canvas 用户手册

多轨音乐录音应用程序 — Version 0.1.1

2026-04-13

目录

Musician's Canvas 用户手册

简介

Musician's Canvas 是一款适用于桌面电脑的多轨音乐录音应用程序。它支持通过麦克风和线路输入设备进行音频录制,通过键盘和控制器进行 MIDI 录制,并可将所有轨道混合导出为单个 WAV 或 FLAC 文件。配套应用程序 Virtual MIDI Keyboard 提供了一个软件钢琴键盘,用于发送 MIDI 音符。

Musician's Canvas 设计简单易用,同时提供数字音频工作站(DAW)中常见的功能:

快速入门

启动应用程序

从构建目录或安装位置运行 musicians_canvas 可执行文件:

./musicians_canvas

首次启动时,应用程序会打开一个空项目。您需要先设置项目目录才能开始录制。

启动时,应用程序会应用已保存的主题(深色或浅色),如果之前使用的项目目录中包含 project.json 文件,则会自动加载该项目。

设置项目

  1. 设置项目目录:在窗口顶部的"Project Location"字段中输入或浏览到一个文件夹。录音文件和项目文件将存储在此处。

  2. 添加轨道:点击 + Add Track 按钮。一个新轨道将以默认设置出现。如果该轨道是项目中唯一的轨道且尚未录制,它将自动处于录音待命状态。

  3. 命名轨道:在"Options"按钮旁边的文本字段中输入名称。此名称将用作录制音频文件的文件名。

主窗口

按钮栏

菜单栏正下方有一个带有快速访问按钮的工具栏:

按钮栏

保存和打开项目

项目文件(project.json)存储轨道名称、类型、MIDI 音符、音频文件引用以及所有项目特定设置。音频文件与 project.json 存储在同一目录中,以其轨道名称命名(例如 My_Track.flac)。

如果您在有未保存更改的情况下关闭应用程序,将弹出确认对话框询问是否在退出前保存。

轨道管理

添加和删除轨道

通过拖放添加轨道

当项目打开时,您可以从文件管理器(Windows 资源管理器、macOS Finder、 Linux 文件管理器等)将一个或多个受支持的音频文件直接拖放到 Musician's Canvas 窗口上,将它们添加为新的音频轨道。

配置轨道类型

每个轨道可以配置为 Audio(用于麦克风/线路输入录制)或 MIDI(用于键盘/控制器录制)。

要更改轨道类型:

这将打开轨道配置对话框,您可以在其中选择输入源。

轨道配置

轨道控件

每个轨道行提供以下控件:

自动录音待命

当项目中只有一个轨道且该轨道尚未录制时,它会自动进入录音待命状态。这适用于在新项目中添加第一个轨道和打开包含单个空轨道的现有项目两种情况。

轨道可视化

录制

音频录制

  1. 确保已设置项目目录。
  2. 将目标轨道设为录音待命状态(选中"Arm"单选按钮)。
  3. 点击 Record 按钮(红色圆圈)。
  4. 轨道上会出现 3 秒倒计时("Get ready... 3"、"2"、"1"),然后开始录制。
  5. 录制期间,轨道的波形区域会显示实时电平表,以渐变条(绿色到黄色到红色)显示当前振幅,并带有"Recording"标签。
  6. 点击 Stop 按钮结束录制。

录制的音频以 FLAC 文件格式保存在项目目录中,以轨道名称命名。

在录制和播放期间,所有交互控件(轨道按钮、设置等)均被禁用,以防止意外更改。

插入式效果(仅音频轨道)

音频轨道在 Options 下方有 效果 按钮,可打开 轨道效果 对话框,为该轨道的录音搭建 有序效果链

轨道效果对话框

可用效果包括 混响合唱镶边(Flanger)过载/失真(Overdrive / distortion)音箱头与箱体建模(Amp & cabinet)(箱头类型、箱体、增益、低/中/高频、空气感与湿干比等),以及 颤音(Vibrato / Tremolo)

颤音(Vibrato / Tremolo) 是 Fender 许多音箱上标注为 “Vibrato” 的经典效果(实际上是 音量随时间周期性起伏 的 tremolo)。使用 Speed 调整起伏速度,使用 Intensity(Depth)调整深度(从轻微闪动到强烈断奏)。

以下为 Amp & cabinet 的界面示例:

Amp & cabinet 建模 (1)

Amp & cabinet 建模 (2)

效果在 停止录制 后应用(经过常规采集与重采样)。配置保存在 project.jsonaudioEffectChain 字段。

Mix effects (full project)

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 projectSettingsmixEffectChain.

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.

Per-track mixer, mute/solo, trim, and MIDI details

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.jsonmonitorWhileRecording)。为避免麦克风反馈可关闭。

叠录

当录制新轨道时,如果其他已启用的轨道已包含音频或 MIDI 数据,Musician's Canvas 会执行叠录:已有轨道会被混合并实时播放,同时录制新轨道。这样您可以在录制新内容时听到之前录制的部分。

在采集开始前会先准备好已有轨道的混音,因此录制和播放几乎同时开始,保持所有轨道同步。

录制后端

Musician's Canvas 支持两种音频采集后端:

录制后端可在 Project > Project Settings > Audio 中按项目配置。

采样率和设备处理

Musician's Canvas 以音频输入设备的原生采样率进行录制,然后使用高质量重采样自动转换为项目配置的采样率。这意味着您可以设置任意项目采样率(例如 44100 Hz 或 48000 Hz),无论设备的原生采样率是多少。转换过程精确保持音高和时长。

单声道设备检测

某些音频设备(例如 USB 网络摄像头麦克风)物理上是单声道的,但操作系统将其识别为立体声。Musician's Canvas 会自动检测此情况并相应调整声道数。如果项目配置为立体声,单声道信号将被复制到两个声道。

MIDI 录制

  1. 通过 Options 按钮将轨道类型设置为 MIDI
  2. 确保在 Settings > Configuration > MIDI 中配置了 MIDI 输入设备。
  3. 将轨道设为录音待命状态并点击 Record。
  4. 在 MIDI 控制器上演奏音符。
  5. 点击 Stop 结束录制。

MIDI 音符以钢琴卷帘可视化的形式显示在轨道上。

节拍器

Musician's Canvas 内置节拍器,可在录制期间用于帮助保持节奏。点击菜单栏下方按钮栏上的节拍器按钮以打开节拍器设置对话框:

节拍器设置

该对话框提供:

当节拍器启用时,它会在录制实际开始后(3 秒倒计时结束后)开始滴答,并在录制结束时停止。

播放

点击 Play 按钮混合并播放所有已启用的轨道。按钮的工具提示会根据是否有轨道处于录音待命状态而变化,指示将执行播放还是录制。已禁用(未勾选)的轨道不参与播放。

播放期间,音频轨道从其 FLAC 文件解码,MIDI 轨道使用内置 FluidSynth 合成器渲染为音频。所有轨道混合后通过系统的音频输出设备播放。

点击 Stop 按钮可随时结束播放。

混合导出到文件

使用 Tools > Mix tracks to file(Ctrl+M)将所有已启用的轨道导出为单个音频文件。对话框允许您选择输出路径和格式:

混音使用项目配置的采样率。MIDI 轨道使用配置的 SoundFont 进行渲染。

设置

全局设置

使用 Settings > Configuration(Ctrl+,)设置适用于所有项目的全局默认值:

常规设置

General 标签页

Display 标签页

显示设置

Language 标签页

语言设置

MIDI 标签页

MIDI 设置

Audio 标签页

音频设置

项目设置

使用 Project > Project Settings(Ctrl+P)仅为当前项目覆盖全局默认值。这对于需要特定采样率、SoundFont 或音频设备的项目非常有用。项目特定设置保存在 project.json 文件中。

项目 MIDI 设置

MIDI 标签页

Audio 标签页

音频格式设置

项目音频设置

Mix Effects tab

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 / Send Bus tab

Configure the shared aux effect chain (same effect types as track inserts). Each track’s Aux slider on the track row controls how much of that track’s signal is sent through this bus; the wet aux return is summed with the dry mix before Mix Effects are applied.

菜单

File 菜单

菜单项 快捷键 描述
Save Project Ctrl+S 将当前项目保存到磁盘
Open Project Ctrl+O 打开现有项目文件
Close Ctrl+Q 退出应用程序

Project 菜单

菜单项 快捷键 描述
Project Settings Ctrl+P 配置工程设置(含 Aux / Send Bus
Tempo map 编辑速度变化(秒与 BPM):节拍器与 MIDI 量化
Add Demo Data to Selected Track 向选定轨道添加示例 MIDI 音符

Edit 菜单

菜单项 快捷键 描述
Undo Ctrl+Z 撤销混音器/修剪更改
Redo Ctrl+Shift+Z 重做

Settings 菜单

菜单项 快捷键 描述
Configuration Ctrl+, 打开全局应用程序设置

Tools 菜单

菜单项 快捷键 描述
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 启动配套键盘应用程序

Help 菜单

菜单项 快捷键 描述
Manual Alt+M 打开当前所选语言的 PDF 用户手册
About 显示版本与应用信息

键盘快捷键

快捷键 操作
Ctrl+S 保存项目
Ctrl+Z 撤销(混音器/修剪)
Ctrl+Shift+Z 重做
Ctrl+O 打开项目
Ctrl+M 混合导出轨道到文件
D 添加鼓音轨(Tools 菜单)
Ctrl+P 项目设置
Ctrl+, 设置 / 配置
Alt+M 打开 PDF 手册(Help)
Ctrl+Q / Alt+F4 退出

添加鼓音轨

Tools → Add drum track(快捷键 D)会添加 General MIDI 第10通道(通道索引 9)的 MIDI 鼓轨。默认名称 Drums(必要时加序号)。

会在项目文件夹立即写入 .mid(两小节 4/4:底鼓、军鼓、闭镲)。速度选择:

参考链接: AudientMDrummerRedditCS229 PDF

Virtual MIDI Keyboard

Virtual MIDI Keyboard 是一款配套应用程序(virtual_midi_keyboard),提供屏幕上的钢琴键盘用于发送 MIDI 音符。可以从主应用程序的 Tools > Virtual MIDI Keyboard 菜单启动,也可以独立运行。

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

按下时按键会产生视觉高亮效果(白键变为浅蓝色,黑键变暗)。

配置

打开配置对话框(Settings > Configuration,Ctrl+,)以设置 MIDI 和音频设备:

Virtual MIDI Keyboard 配置

MIDI 标签页

Audio 标签页

Language 标签页

Virtual MIDI Keyboard 快捷键

快捷键 操作
Ctrl+, 配置对话框
Ctrl+U 帮助 / 使用信息
Ctrl+Q 关闭

常见问题(FAQ)

如何录制 MIDI 轨道?

  1. 设置项目目录(保存所必需)。
  2. 添加或选择轨道,打开 Options(或点击轨道类型图标)。
  3. 将轨道类型设为 MIDI,关闭对话框。
  4. Settings > Configuration > MIDI 中选择 MIDI 输入(硬件端口或虚拟连线)以及用于稍后播放的 SoundFont.sf2)。
  5. 武装(Arm)该轨道(同一时间只能武装一条轨道)。
  6. 点击 Record,倒计时结束后在控制器上演奏,然后点击 Stop

音符显示在钢琴卷帘中。File > Save Project 会在项目文件夹中写入 .midproject.json

为什么回放时 MIDI 轨道没有声音?

回放使用设置中的 SoundFont 通过 FluidSynth 发声。请检查 Settings > Configuration > MIDI(若按项目覆盖则查看 Project > Project Settings):必须配置有效的 .sf2 路径。Linux 上有时会自动找到系统 SoundFont;Windows 和 macOS 上通常需要手动选择 SoundFont 文件。

Virtual MIDI Keyboard 与 Musician's Canvas 是什么关系?

它们是两个独立程序。通过 Tools > Virtual MIDI Keyboard 启动(也可单独运行)。若要在录制 MIDI 轨道时让屏幕键盘进入 Musician's Canvas,需要由操作系统将键盘的 MIDI 输出路由到 Musician's Canvas 使用的输入(例如虚拟 MIDI 线缆或在两个程序中选择一致的端口)。两者不会自动连接。

Configuration 与 Project Settings 有何区别?

Settings > Configuration 设置应用程序的全局默认值(主题、语言、MIDI/音频设备、SoundFont 等)。Project > Project Settings针对当前项目覆盖部分设置,并保存在 project.json 中。若某字段保持项目默认,则使用 Configuration 中的全局值。

为什么拖放无法添加音频文件?

仅在已设置项目目录,且 Musician's Canvas 未在播放或录制时才能接受拖放。支持的格式为 .wav.flac;其他扩展名会被跳过并在对话框中列出。每个文件会成为一个新的音频轨道,名称取自文件名(不含扩展名)。

录音保存在哪里?

音频保存在项目目录中,文件名为 <轨道名>.flac/ \ : * ? " < > | 等字符会替换为下划线)。项目文件为同目录下的 project.json。保存项目时,MIDI 轨道还会生成 <轨道名>.mid(音符数据也会写入 project.json)。

混音时渲染 MIDI 使用什么文件名?

混音播放时,MIDI 会先在内部渲染为临时 WAV。若已知项目路径,Musician's Canvas 还会在项目文件夹中写入缓存用的 <清理后的轨道名>.flac(与其他轨道文件使用相同的文件名清理规则)。名称依据轨道名,而非内部 ID。

可以同时录制两条轨道吗?

不可以。同一时间只能 Arm 一条轨道,下一段录音只录到该轨道。通过逐条叠加录制来制作(叠录 overdub 会在录制新轨道时播放已有轨道)。

节拍器会录进轨道吗?

不会。启用后节拍器仅通过系统音频播放给您听,不会混入录音文件。

Windows 上为何提示需要 ASIO?

在 Windows 上,主程序期望使用 ASIO 驱动以实现可靠、低延迟的音频。若出现启动或音频错误,请安装 ASIO4ALL 或声卡/接口厂商提供的驱动。

在 macOS 上 Virtual MIDI Keyboard 在哪里?

.app 应用程序包中,Virtual MIDI Keyboard 可执行文件会被复制到 Musician's Canvas.app 内部(Contents/MacOS/),便于只分发一个应用文件夹。仍可通过菜单 Tools > Virtual MIDI Keyboard 启动。

故障排除

无音频输出

MIDI 轨道无声

录制声音失真或音高错误

Virtual MIDI Keyboard 无音频

从源代码构建

有关 Linux、macOS 和 Windows 的完整构建说明(包括所有必需的依赖项),请参阅 README