private static void ForwardEvent(MidiEvent midiEvent) { if (MustFilterEvent(midiEvent)) { return; } lastEvent = midiEvent; if ("Midi events to network".Equals(outputDeviceName, System.StringComparison.InvariantCulture)) { try { if (cnx != null) { cnx.SendObject("midiEvent", metobc.Convert(midiEvent)); } else { MessageBox.Show("connection to receiver is not etablished!"); } } catch (CommsException ce) { // TODO when connection is lost, this message always occur and cnx is not closed Console.WriteLine("CommsException occurs : " + ce.Message); } } else { if (outputDevice != null) { outputDevice.SendEvent(midiEvent); } } }
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); }
private static void SendMidi(ProgramChangeEvent programChangeEvent) { if (connectionStatus == ConnectionStatus.Connected) { MidiEventToBytesConverter converter = new MidiEventToBytesConverter(); SendData(converter.Convert(programChangeEvent), (int)code.midi); } }
private int PackShortEvent(MidiEvent midiEvent) { var channelEvent = midiEvent as ChannelEvent; if (channelEvent != null) { return(ChannelEventWriter.GetStatusByte(channelEvent) | (channelEvent._dataByte1 << 8) | (channelEvent._dataByte2 << 16)); } var systemRealTimeEvent = midiEvent as SystemRealTimeEvent; if (systemRealTimeEvent != null) { return(SystemRealTimeEventWriter.GetStatusByte(systemRealTimeEvent)); } var bytes = _midiEventToBytesConverter.Convert(midiEvent, ShortEventBufferSize); return(bytes[0] + (bytes[1] << 8) + (bytes[2] << 16)); }
private int PackShortEvent(MidiEvent midiEvent) { var bytes = _midiEventToBytesConverter.Convert(midiEvent, ChannelEventBufferSize); return(bytes[0] + (bytes[1] << 8) + (bytes[2] << 16)); }
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."); }