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 }); } }
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."); }