阿木博主一句话概括:PureData 语言与 MIDI 设备连接与消息解析技术探讨
阿木博主为你简单介绍:
PureData 是一款开源的图形化编程语言,广泛应用于音频处理、音乐制作和实时交互等领域。MIDI(Musical Instrument Digital Interface)是一种数字接口标准,用于电子乐器和其他音乐设备之间的通信。本文将探讨如何使用代码编辑模型在 PureData 中实现 MIDI 设备的连接与消息解析,包括 note-on 和 CC(Control Change)值的读取。
一、
PureData 的强大之处在于其简洁的图形化编程界面和丰富的音频处理功能。而 MIDI 设备的连接与消息解析是音乐制作和实时交互中不可或缺的一环。本文将详细介绍如何在 PureData 中实现 MIDI 设备的连接与消息解析,并通过代码示例进行说明。
二、PureData 与 MIDI 设备连接
1. 安装 PureData
确保您的计算机上已安装 PureData。可以从 PureData 官网下载并安装最新版本。
2. 连接 MIDI 设备
在 PureData 中,可以通过以下步骤连接 MIDI 设备:
(1)打开 PureData,创建一个新的 patch;
(2)在 patch 中添加一个 [midiin] 对象,用于接收 MIDI 输入;
(3)将 [midiin] 对象的 outlet 连接到其他对象,如 [print] 对象,用于显示 MIDI 消息。
3. 检查 MIDI 设备
在连接 MIDI 设备后,可以通过以下步骤检查设备是否正常工作:
(1)打开一个 MIDI 设备,如电子琴或合成器;
(2)在 PureData 中,发送一个 note-on 消息,例如按下键盘上的一个键;
(3)观察 [print] 对象的输出,确认 MIDI 消息是否正确显示。
三、MIDI 消息解析
1. MIDI 消息格式
MIDI 消息由三个字节组成:状态字节、数据1字节和数据2字节。
- 状态字节:表示消息类型,如 note-on、note-off、CC 等;
- 数据1字节:表示 MIDI 通道(1-16);
- 数据2字节:表示具体值,如音符值、CC 值等。
2. 解析 note-on 消息
以下是一个解析 note-on 消息的代码示例:
```
// 创建一个 patch
[ midiin ] [ print ];
// 添加一个子 patch,用于解析 note-on 消息
[ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd 0 0 0 ] [ pd
Comments NOTHING