Exemple #1
0
        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));
        }
Exemple #5
0
        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.");
        }