我正在使用delphi中的应用程序.我需要使用MIDIYOKE将我的应用程序的输出发送到另一个应用程序.第二个应用是虚拟钢琴键盘. 我安装了所有的软件包并在delphi中获得了MIDI组件. 我尝试使用
我安装了所有的软件包并在delphi中获得了MIDI组件.
我尝试使用MidiOutputPort1和MidiInput1组件.
我试过播放一个MIDI.代码如下:
procedure TForm3.Button1Click(Sender: TObject); var outputPort : TMidiOutputPort; begin outputPort := TMidiOutputPort.Create (Nil); try outputPort.PortId := -1; outputPort.Active := True; outputPort.PatchChange(0, 127, 0); // Gunshot outputPort.NoteOn (1, 20, 127); // Play note at full volume Sleep (1000); outputPort.NoteOff (0, 60, 0); finally outputPort.Free end end;
我想在我的应用程序和虚拟钢琴键盘之间建立联系.如何使用MidiOutputPort1和MidiInput1进行两者之间的连接.
如果两个应用程序都支持MIDI同步,则可以使用MIDI同步.在这种情况下,MIDIYOKE是主设备,Vpk是从设备.同步由以下命令处理:mc_MIDI_Timing_Clock = $F8; mc_MIDI_Start = $FA; mc_MIDI_Continue = $FB; mc_MIDI_Stop = $FC;
我在很久以前就用它,所以我的知识有点生疏.我可以从我的代码中收集到的是它的工作方式如下:将slave设置为slave / sync receive /无论它被称为模式.接下来将$FA发送到您选择的频道.一些(并非所有)奴隶要求您收听特定频道.
在每个时钟滴答声,首先发送$F8.接下来发送消息,前面是$FB消息(两个数据字节都为零).当你准备好发送$FC.