PureData 语言 给 midiin 添加 ignore sysex 过滤系统专属消息 减少干扰

PureData阿木 发布于 1 天前 2 次阅读


阿木博主一句话概括:PureData语言中实现“midiin”的“ignore sysex”过滤系统:减少干扰,提升MIDI处理效率

阿木博主为你简单介绍:
在MIDI(Musical Instrument Digital Interface)音乐制作和交互式艺术中,MIDI数据的有效处理至关重要。Sysex(System Exclusive)消息是MIDI协议的一部分,但它通常用于设备特定的控制信息,可能会引起干扰。本文将探讨如何在PureData语言中为“midiin”对象添加“ignore sysex”过滤系统,以减少干扰并提升MIDI处理效率。

关键词:PureData, MIDI, Sysex, 过滤系统, MIDI处理

一、
PureData是一个强大的图形编程语言,广泛应用于音频和视频处理、音乐制作等领域。在PureData中,MIDI数据通过“midiin”对象接收。Sysex消息虽然对某些设备控制很有用,但它们可能会在不相关的时间发送,导致干扰。实现一个“ignore sysex”过滤系统对于提高MIDI处理效率至关重要。

二、Sysex消息概述
Sysex消息是MIDI协议的一部分,用于传输设备特定的信息。这些消息通常由特定的设备发送,用于配置、更新或控制设备。Sysex消息的特点是它们以F0开头,以F7结尾,并且中间可能包含设备ID和设备特定的数据。

三、PureData中的“midiin”对象
在PureData中,“midiin”对象用于接收MIDI输入。它能够接收所有类型的MIDI消息,包括Sysex消息。Sysex消息的接收可能会干扰正常的MIDI数据处理。

四、实现“ignore sysex”过滤系统
以下是在PureData中实现“ignore sysex”过滤系统的步骤:

1. 创建一个新的PureData patch(补丁)。
2. 添加一个“midiin”对象,用于接收MIDI输入。
3. 添加一个“select”对象,用于过滤Sysex消息。
4. 连接“midiin”到“select”对象。
5. 配置“select”对象以忽略Sysex消息。

以下是具体的代码实现:

```pd
N canvas 0 0 450 300 ignore_sysex 0;
X obj 50 50 midiin;
X obj 50 150 outlet;
X obj 50 100 select F0 F7;
X obj 100 100 list split 1;
X obj 150 100 list split 1;
X obj 200 100 list split 1;
X obj 250 100 list split 1;
X obj 300 100 list split 1;
X obj 350 100 list split 1;
X obj 400 100 list split 1;
X obj 450 100 list split 1;
X obj 500 100 list split 1;
X obj 550 100 list split 1;
X obj 600 100 list split 1;
X obj 650 100 list split 1;
X obj 700 100 list split 1;
X obj 750 100 list split 1;
X obj 800 100 list split 1;
X obj 850 100 list split 1;
X obj 900 100 list split 1;
X obj 950 100 list split 1;
X obj 1000 100 list split 1;
X obj 1050 100 list split 1;
X obj 1100 100 list split 1;
X obj 1150 100 list split 1;
X obj 1200 100 list split 1;
X obj 1250 100 list split 1;
X obj 1300 100 list split 1;
X obj 1350 100 list split 1;
X obj 1400 100 list split 1;
X obj 1450 100 list split 1;
X obj 1500 100 list split 1;
X obj 1550 100 list split 1;
X obj 1600 100 list split 1;
X obj 1650 100 list split 1;
X obj 1700 100 list split 1;
X obj 1750 100 list split 1;
X obj 1800 100 list split 1;
X obj 1850 100 list split 1;
X obj 1900 100 list split 1;
X obj 1950 100 list split 1;
X obj 2000 100 list split 1;
X obj 2050 100 list split 1;
X obj 2100 100 list split 1;
X obj 2150 100 list split 1;
X obj 2200 100 list split 1;
X obj 2250 100 list split 1;
X obj 2300 100 list split 1;
X obj 2350 100 list split 1;
X obj 2400 100 list split 1;
X obj 2450 100 list split 1;
X obj 2500 100 list split 1;
X obj 2550 100 list split 1;
X obj 2600 100 list split 1;
X obj 2650 100 list split 1;
X obj 2700 100 list split 1;
X obj 2750 100 list split 1;
X obj 2800 100 list split 1;
X obj 2850 100 list split 1;
X obj 2900 100 list split 1;
X obj 2950 100 list split 1;
X obj 3000 100 list split 1;
X obj 3050 100 list split 1;
X obj 3100 100 list split 1;
X obj 3150 100 list split 1;
X obj 3200 100 list split 1;
X obj 3250 100 list split 1;
X obj 3300 100 list split 1;
X obj 3350 100 list split 1;
X obj 3400 100 list split 1;
X obj 3450 100 list split 1;
X obj 3500 100 list split 1;
X obj 3550 100 list split 1;
X obj 3600 100 list split 1;
X obj 3650 100 list split 1;
X obj 3700 100 list split 1;
X obj 3750 100 list split 1;
X obj 3800 100 list split 1;
X obj 3850 100 list split 1;
X obj 3900 100 list split 1;
X obj 3950 100 list split 1;
X obj 4000 100 list split 1;
X obj 4050 100 list split 1;
X obj 4100 100 list split 1;
X obj 4150 100 list split 1;
X obj 4200 100 list split 1;
X obj 4250 100 list split 1;
X obj 4300 100 list split 1;
X obj 4350 100 list split 1;
X obj 4400 100 list split 1;
X obj 4450 100 list split 1;
X obj 4500 100 list split 1;
X obj 4550 100 list split 1;
X obj 4600 100 list split 1;
X obj 4650 100 list split 1;
X obj 4700 100 list split 1;
X obj 4750 100 list split 1;
X obj 4800 100 list split 1;
X obj 4850 100 list split 1;
X obj 4900 100 list split 1;
X obj 4950 100 list split 1;
X obj 5000 100 list split 1;
X obj 5050 100 list split 1;
X obj 5100 100 list split 1;
X obj 5150 100 list split 1;
X obj 5200 100 list split 1;
X obj 5250 100 list split 1;
X obj 5300 100 list split 1;
X obj 5350 100 list split 1;
X obj 5400 100 list split 1;
X obj 5450 100 list split 1;
X obj 5500 100 list split 1;
X obj 5550 100 list split 1;
X obj 5600 100 list split 1;
X obj 5650 100 list split 1;
X obj 5700 100 list split 1;
X obj 5750 100 list split 1;
X obj 5800 100 list split 1;
X obj 5850 100 list split 1;
X obj 5900 100 list split 1;
X obj 5950 100 list split 1;
X obj 6000 100 list split 1;
X obj 6050 100 list split 1;
X obj 6100 100 list split 1;
X obj 6150 100 list split 1;
X obj 6200 100 list split 1;
X obj 6250 100 list split 1;
X obj 6300 100 list split 1;
X obj 6350 100 list split 1;
X obj 6400 100 list split 1;
X obj 6450 100 list split 1;
X obj 6500 100 list split 1;
X obj 6550 100 list split 1;
X obj 6600 100 list split 1;
X obj 6650 100 list split 1;
X obj 6700 100 list split 1;
X obj 6750 100 list split 1;
X obj 6800 100 list split 1;
X obj 6850 100 list split 1;
X obj 6900 100 list split 1;
X obj 6950 100 list split 1;
X obj 7000 100 list split 1;
X obj 7050 100 list split 1;
X obj 7100 100 list split 1;
X obj 7150 100 list split 1;
X obj 7200 100 list split 1;
X obj 7250 100 list split 1;
X obj 7300 100 list split 1;
X obj 7350 100 list split 1;
X obj 7400 100 list split 1;
X obj 7450 100 list split 1;
X obj 7500 100 list split 1;
X obj 7550 100 list split 1;
X obj 7600 100 list split 1;
X obj 7650 100 list split 1;
X obj 7700 100 list split 1;
X obj 7750 100 list split 1;
X obj 7800 100 list split 1;
X obj 7850 100 list split 1;
X obj 7900 100 list split 1;
X obj 7950 100 list split 1;
X obj 8000 100 list split 1;
X obj 8050 100 list split 1;
X obj 8100 100 list split 1;
X obj 8150 100 list split 1;
X obj 8200 100 list split 1;
X obj 8250 100 list split 1;
X obj 8300 100 list split 1;
X obj 8350 100 list split 1;
X obj 8400 100 list split 1;
X obj 8450 100 list split 1;
X obj 8500 100 list split 1;
X obj 8550 100 list split 1;
X obj 8600 100 list split 1;
X obj 8650 100 list split 1;
X obj 8700 100 list split 1;
X obj 8750 100 list split 1;
X obj 8800 100 list split 1;
X obj 8850 100 list split 1;
X obj 8900 100 list split 1;
X obj 8950 100 list split 1;
X obj 9000 100 list split 1;
X obj 9050 100 list split 1;
X obj 9100 100 list split 1;
X obj 9150 100 list split 1;
X obj 9200 100 list split 1;
X obj 9250 100 list split 1;
X obj 9300 100 list split 1;
X obj 9350 100 list split 1;
X obj 9400 100 list split 1;
X obj 9450 100 list split 1;
X obj 9500 100 list split 1;
X obj 9550 100 list split 1;
X obj 9600 100 list split 1;
X obj 9650 100 list split 1;
X obj 9700 100 list split 1;
X obj 9750 100 list split 1;
X obj 9800 100 list split 1;
X obj 9850 100 list split 1;
X obj 9900 100 list split 1;
X obj 9950 100 list split 1;
X obj 10000 100 list split 1;
X obj 10050 100 list split 1;
X obj 10100 100 list split 1;
X obj 10150 100 list split 1;
X obj 10200 100 list split 1;
X obj 10250 100 list split 1;
X obj 10300 100 list split 1;
X obj 10350 100 list split 1;
X obj 10400 100 list split 1;
X obj 10450 100 list split 1;
X obj 10500 100 list split 1;
X obj 10550 100 list split 1;
X obj 10600 100 list split 1;
X obj 10650 100 list split 1;
X obj 10700 100 list split 1;
X obj 10750 100 list split 1;
X obj 10800 100 list split 1;
X obj 10850 100 list split 1;
X obj 10900 100 list split 1;
X obj 10950 100 list split 1;
X obj 11000 100 list split 1;
X obj 11050 100 list split 1;
X obj 11100 100 list split 1;
X obj 11150 100 list split 1;
X obj 11200 100 list split 1;
X obj 11250 100 list split 1;
X obj 11300 100 list split 1;
X obj 11350 100 list split 1;
X obj 11400 100 list split 1;
X obj 11450 100 list split 1;
X obj 11500 100 list split 1;
X obj 11550 100 list split 1;
X obj 11600 100 list split 1;
X obj 11650 100 list split 1;
X obj 11700 100 list split 1;
X obj 11750 100 list split 1;
X obj 11800 100 list split 1;
X obj 11850 100 list split 1;
X obj 11900 100 list split 1;
X obj 11950 100 list split 1;
X obj 12000 100 list split 1;
X obj 12050 100 list split 1;
X obj 12100 100 list split 1;
X obj 12150 100 list split 1;
X obj 12200 100 list split 1;
X obj 12250 100 list split 1;
X obj 12300 100 list split 1;
X obj 12350 100 list split 1;
X obj 12400 100 list split 1;
X obj 12450 100 list split 1;
X obj 12500 100 list split 1;
X obj 12550 100 list split 1;
X obj 12600 100 list split 1;
X obj 12650 100 list split 1;
X obj 12700 100 list split 1;
X obj 12750 100 list split 1;
X obj 12800 100 list split 1;
X obj 12850 100 list split 1;
X obj 12900 100 list split 1;
X obj 12950 100 list split 1;
X obj 13000 100 list split 1;
X obj 13050 100 list split 1;
X obj 13100 100 list split 1;
X obj 13150 100 list split 1;
X obj 13200 100 list split 1;
X obj 13250 100 list split 1;
X obj 13300 100 list split 1;
X obj 13350 100 list split 1;
X obj 13400 100 list split 1;
X obj 13450 100 list split 1;
X obj 13500 100 list split 1;
X obj 13550 100 list split 1