public void Convert_Bytes_Offset_Length()
        {
            using (var bytesToMidiEventConverter = new BytesToMidiEventConverter())
            {
                var bytes = new byte[] { 0x92, 0x12, 0x56, 0xB3, 0x23, 0x7F };

                Convert_Bytes_Offset_Length(
                    bytesToMidiEventConverter,
                    bytes,
                    0,
                    3,
                    new NoteOnEvent((SevenBitNumber)0x12, (SevenBitNumber)0x56)
                {
                    Channel = (FourBitNumber)0x2
                });
                Convert_Bytes_Offset_Length(
                    bytesToMidiEventConverter,
                    bytes,
                    3,
                    3,
                    new ControlChangeEvent((SevenBitNumber)0x23, (SevenBitNumber)0x7F)
                {
                    Channel = (FourBitNumber)0x3
                });
            }
        }
 public void Convert_Bytes()
 {
     using (var bytesToMidiEventConverter = new BytesToMidiEventConverter())
     {
         Convert_Bytes(
             bytesToMidiEventConverter,
             new byte[] { 0x92, 0x12, 0x56 },
             new NoteOnEvent((SevenBitNumber)0x12, (SevenBitNumber)0x56)
         {
             Channel = (FourBitNumber)0x2
         });
         Convert_Bytes(
             bytesToMidiEventConverter,
             new byte[] { 0x90, 0x12, 0x00 },
             new NoteOffEvent((SevenBitNumber)0x12, (SevenBitNumber)0x00)
         {
             Channel = (FourBitNumber)0x0
         });
         Convert_Bytes(
             bytesToMidiEventConverter,
             new byte[] { 0xB3, 0x23, 0x7F },
             new ControlChangeEvent((SevenBitNumber)0x23, (SevenBitNumber)0x7F)
         {
             Channel = (FourBitNumber)0x3
         });
     }
 }
        public void Convert_Bytes_SilentNoteOnAsNoteOn()
        {
            using (var bytesToMidiEventConverter = new BytesToMidiEventConverter())
            {
                bytesToMidiEventConverter.ReadingSettings.SilentNoteOnPolicy = SilentNoteOnPolicy.NoteOn;

                Convert_Bytes(
                    bytesToMidiEventConverter,
                    new byte[] { 0x92, 0x12, 0x00 },
                    new NoteOnEvent((SevenBitNumber)0x12, (SevenBitNumber)0x00)
                {
                    Channel = (FourBitNumber)0x2
                });
                Convert_Bytes(
                    bytesToMidiEventConverter,
                    new byte[] { 0xB3, 0x23, 0x7F },
                    new ControlChangeEvent((SevenBitNumber)0x23, (SevenBitNumber)0x7F)
                {
                    Channel = (FourBitNumber)0x3
                });
            }
        }
Example #4
0
        private void serverThread()
        {
            while (true)
            {
                try
                {
                    //Get the other IP, read data
                    IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                    Byte[]     receiveBytes     = udpServer.Receive(ref RemoteIpEndPoint);
                    byte[]     data             = new byte[receiveBytes.Length - 1];
                    Array.Copy(receiveBytes, 1, data, 0, receiveBytes.Length - 1);
                    string returnData = Encoding.ASCII.GetString(data);

                    Console.WriteLine(RemoteIpEndPoint.Address.ToString()
                                      + ":" + returnData.ToString());

                    switch (receiveBytes[0])
                    {
                    case 10:
                        //If midi, play it
                        BytesToMidiEventConverter converter = new BytesToMidiEventConverter();
                        MidiEvent tmpevent = converter.Convert(data);
                        PlayMidi(tmpevent);
                        break;

                    case 20:
                        //Reacts
                        if (returnData.ToString() == "IsAnybodyThere")
                        {
                            if (connectionStatus != ConnectionStatus.Connected && connectionStatus != ConnectionStatus.Connecting)
                            {
                                address = RemoteIpEndPoint.Address.ToString();

                                MethodInvoker inv = delegate
                                {
                                    Connect(true);
                                };
                                Invoke(inv);
                            }
                            else
                            {
                                //Answers
                                SendData(Encoding.ASCII.GetBytes("YesThereIs"), (int)code.connectionData);
                            }
                        }
                        else if (returnData.ToString() == "YesThereIs")
                        {
                            //Connection is established
                            connectionStatus = ConnectionStatus.Connected;
                        }
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception)
                {
                    connectionStatus = ConnectionStatus.Disconnected;
                    break;
                }
            }
        }
        private void Convert_Bytes_Offset_Length(BytesToMidiEventConverter bytesToMidiEventConverter, byte[] bytes, int offset, int length, MidiEvent expectedMidiEvent)
        {
            var midiEvent = bytesToMidiEventConverter.Convert(bytes, offset, length);

            CompareEvents(expectedMidiEvent, midiEvent);
        }
        private void Convert_Bytes(BytesToMidiEventConverter bytesToMidiEventConverter, byte[] bytes, MidiEvent expectedMidiEvent)
        {
            var midiEvent = bytesToMidiEventConverter.Convert(bytes);

            CompareEvents(expectedMidiEvent, midiEvent);
        }
        private void Convert_StatusByte_DataBytes(BytesToMidiEventConverter bytesToMidiEventConverter, byte statusByte, byte[] dataBytes, MidiEvent expectedMidiEvent)
        {
            var midiEvent = bytesToMidiEventConverter.Convert(statusByte, dataBytes);

            CompareEvents(expectedMidiEvent, midiEvent);
        }