关于MidiOutOpen与MidiOutClose中“device”术语含义的技术问询
关于MidiOutOpen/MidiOutClose中"device"的说明
- "device"的本质:它是Windows MIDI输出子系统识别的输出端点,不止包含物理设备,还涵盖各类虚拟/软件层面的输出目标。
- 物理设备类型:指实实在在的硬件,比如外接的MIDI合成器、带MIDI输出的声卡接口、电子琴等,这类设备会把MIDI信号转换成音频或者发送给其他硬件乐器。
- 虚拟/软件设备类型:
- 常见的比如系统自带的软件合成器,属于纯软件实现的MIDI发声设备。
- 你提到的MIDI stream,它不是堆内存里的普通对象,而是MME API提供的虚拟输出通道:它负责缓存、调度你发送的MIDI事件,再把这些事件转发到实际的播放设备(比如软件合成器)。系统会为它分配专门的资源来处理数据流的时序和传输,确保MIDI事件能按正确顺序输出,避免丢包或错乱。
在你之前用Delphi处理MIDI和弦的场景里,不管是选物理设备还是MIDI stream,本质都是指定一个能接收并处理MIDI事件的输出端点,MIDI stream更适合连续发送大量和弦事件的场景,能优化时序控制。
内容的提问来源于stack exchange,提问作者new-to-so
相关产品推荐
相关产品推荐

