示例#1
0
 static void TestSysex()
 {
     // select the LoopBE device
     using (var dev = MidiDevice.Outputs[1])
     {
         dev.Open();
         var buf = new byte[650];
         Console.Error.WriteLine("Press any key to exit...");
         var b = 0;
         while (true)
         {
             if (0xF7 != b)
             {
                 for (var i = 0; i < buf.Length - 1; ++i)
                 {
                     buf[i] = (byte)((b + i) & 0x7F);
                 }
                 buf[buf.Length - 1] = 0xF7;
                 var sysex = new MidiMessageSysex(buf);
                 // send sysex message
                 if (Console.KeyAvailable)
                 {
                     return;
                 }
                 dev.Send(sysex);
                 Thread.Sleep(50);
             }
             ++b;
             if (0x80 == b)
             {
                 b = 0;
             }
         }
     }
 }
示例#2
0
        static void TestSysexStream()
        {
            var b   = 0;
            var buf = new byte[650];

            // select the LoopBE device
            using (var stm = MidiDevice.Streams[1])
            {
                stm.SendComplete += delegate(object o, EventArgs e)
                {
                    if (0xF7 != b)
                    {
                        for (var i = 0; i < buf.Length - 1; ++i)
                        {
                            buf[i] = (byte)((b + i) & 0x7F);
                        }
                        ++b;
                        buf[buf.Length - 1] = 0xF7;
                        var sysex = new MidiMessageSysex(buf);
                        Thread.Sleep(100);
                        // send sysex message
                        stm.Send(new MidiEvent(0, sysex));
                    }
                    if (0x80 == b)
                    {
                        b = 0;
                    }
                };
                stm.Open();
                stm.TimeBase = 480;
                stm.Start();
                Console.Error.WriteLine("Press any key to exit...");
                if (0xF7 != b)
                {
                    for (var i = 0; i < buf.Length - 1; ++i)
                    {
                        buf[i] = (byte)((b + i) & 0x7F);
                    }
                    ++b;
                    buf[buf.Length - 1] = 0xF7;
                    var sysex = new MidiMessageSysex(buf);
                    // send sysex message
                    stm.Send(new MidiEvent(0, sysex));
                }
                Console.ReadKey();
            }
        }