当前位置 : 主页 > 编程语言 > delphi >

Delphi 2006中的MIDIYOKE

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在使用delphi中的应用程序.我需要使用MIDIYOKE将我的应用程序的输出发送到另一个应用程序.第二个应用是虚拟钢琴键盘. 我安装了所有的软件包并在delphi中获得了MIDI组件. 我尝试使用
我正在使用delphi中的应用程序.我需要使用MIDIYOKE将我的应用程序的输出发送到另一个应用程序.第二个应用是虚拟钢琴键盘.

我安装了所有的软件包并在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.

网友评论