예제 #1
0
        public static string MessageToString(IMidiMessage message)
        {
            switch (message.MessageType)
            {
            case MessageType.Channel:
                var cm = (ChannelMessage)message;
                return(cm.Command.ToString() + " Ch: " +
                       cm.MidiChannel.ToString() + " Nr: " +
                       cm.Data1.ToString() + " Value: " +
                       cm.Data2.ToString());

            case MessageType.SystemExclusive:
                var    syx    = (SysExMessage)message;
                string result = "SysEx Message: ";
                foreach (byte b in syx)
                {
                    result += string.Format("{0:X2} ", b);
                }
                return(result);

            case MessageType.SystemCommon:
                var sym = (SysCommonMessage)message;
                return(sym.SysCommonType.ToString() + " Data 1: " +
                       sym.Data1.ToString() + " Data 2: " +
                       sym.Data2.ToString());

            case MessageType.SystemRealtime:
                var rm = (SysRealtimeMessage)message;
                return("Realtime Mesage: " + rm.SysRealtimeType.ToString());

            case MessageType.Meta:
                return("Meta Message");

            case MessageType.Short:
                var sm = (ShortMessage)message;
                return("Short Message");
            }

            return(message.ToString());
        }