Esempio n. 1
0
        private void OnEventReceived1(object sender, MidiEventReceivedEventArgs e)
        {
            rx.BackColor = Color.Red;
            var midiDevice = (MidiDevice)sender;
            MidiEventToBytesConverter x = new MidiEventToBytesConverter();

            byte[] data = x.Convert(e.Event);

            /*
             * List<byte> n = new List<byte>();
             * //n.Add(0x01);
             * //n.Add(Convert.ToByte(data.Length + 1));
             * foreach(byte a in data)
             * {
             *  n.Add(0x01);
             *  n.Add(a);
             * }
             * //n.AddRange(data);
             * //n.Add(calculateCRC(data));
             * serialPort1.Write(n.ToArray(), 0, n.Count);*/
            tx.BackColor = Color.LimeGreen;
            serialPort1.Write(data, 0, data.Length);

            //textBox1.AppendText($"Event received from '{midiDevice.Name}' at {DateTime.Now}: {e.Event}" + Environment.NewLine);
        }
 public void Write()
 {
     using (var midiEventToBytesConverter = new MidiEventToBytesConverter())
     {
         Convert(
             midiEventToBytesConverter,
             new NoteOnEvent((SevenBitNumber)0x12, (SevenBitNumber)0x56)
         {
             Channel = (FourBitNumber)0x2
         },
             new byte[] { 0x92, 0x12, 0x56 });
         Convert(
             midiEventToBytesConverter,
             new NoteOffEvent((SevenBitNumber)0x12, (SevenBitNumber)0x00)
         {
             Channel = (FourBitNumber)0x0
         },
             new byte[] { 0x80, 0x12, 0x00 });
         Convert(
             midiEventToBytesConverter,
             new ControlChangeEvent((SevenBitNumber)0x23, (SevenBitNumber)0x7F)
         {
             Channel = (FourBitNumber)0x3
         },
             new byte[] { 0xB3, 0x23, 0x7F });
     }
 }
Esempio n. 3
0
 private static void SendMidi(ProgramChangeEvent programChangeEvent)
 {
     if (connectionStatus == ConnectionStatus.Connected)
     {
         MidiEventToBytesConverter converter = new MidiEventToBytesConverter();
         SendData(converter.Convert(programChangeEvent), (int)code.midi);
     }
 }
        public void Convert_Settings()
        {
            using (var midiEventToBytesConverter = new MidiEventToBytesConverter())
            {
                midiEventToBytesConverter.WritingSettings.TextEncoding = Encoding.UTF8;

                var text  = "Test▶▶▶";
                var bytes = Encoding.UTF8.GetBytes(text);
                Convert(
                    midiEventToBytesConverter,
                    new TextEvent(text),
                    new byte[] { 0xFF, 0x01 }.Concat(DataTypesUtilities.GetVlqBytes(bytes.Length)).Concat(bytes).ToArray());
            }
        }
 public void Convert_MinSize()
 {
     using (var midiEventToBytesConverter = new MidiEventToBytesConverter())
     {
         Convert(
             midiEventToBytesConverter,
             new NoteOnEvent((SevenBitNumber)0x12, (SevenBitNumber)0x56)
         {
             Channel = (FourBitNumber)0x2
         },
             new byte[] { 0x92, 0x12, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
             10);
     }
 }
        private void Convert(MidiEventToBytesConverter midiEventToBytesConverter, MidiEvent midiEvent, byte[] expectedBytes, int minSize = 0)
        {
            var bytes = midiEventToBytesConverter.Convert(midiEvent, minSize);

            CollectionAssert.AreEqual(expectedBytes, bytes, $"Event [{midiEvent}] converted to bytes incorrectly.");
        }