Example #1
0
        void GotMidiEventD(MsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, bool rse)
        {
            switch (t)
            {
            case MsgType.MetaStr:
                lve.AddItem(c4, MeasureBarTick(ppq), ppq.ToString(), MetaHelpers.MetaNameFF(imsg), GetMetaString(offset), SmfStringFormatter.byteToString(GetMetaStringValue(offset)));
                break;

            case MsgType.MetaInf:
            case MsgType.System:
                lve.AddItem(GetEventColor(imsg, cR), MeasureBarTick(ppq), ppq.ToString(), MetaHelpers.MetaNameFF(imsg), GetMetaSTR(offset), SmfStringFormatter.byteToString(GetMetaValue(offset)));
                break;

            default:
                if (rse)
                {
                    lve.AddItem(GetRseEventColor(Colors["225"]), MeasureBarTick(ppq), ch, GetRseEventString(offset), chRseV(offset), SmfStringFormatter.byteToString(GetRseEventValue(offset)));
                }
                else
                {
                    lve.AddItem(GetEventColor(Colors["225"]), MeasureBarTick(ppq), ch, GetEventString(offset), chV(offset), SmfStringFormatter.byteToString(GetEventValue(offset)));
                }
                break;
            }
        }
Example #2
0
        void GotMidiEventE(object sender, MidiMessageEvent e)
        {
            switch (e.MsgT)
            {
            case MsgType.MetaStr:
                lve.AddItem(c4, MeasureBarTick(e.Ppq), "", MetaHelpers.MetaNameFF(e.IntMsg), GetMetaString(e.Offset), SmfStringFormatter.byteToString(GetMetaStringValue(e.Offset)));
                break;

            case MsgType.MetaInf:
            case MsgType.System:
                lve.AddItem(GetEventColor(e.IntMsg, cR), MeasureBarTick(e.Ppq), "", MetaHelpers.MetaNameFF(e.IntMsg), GetMetaSTR(e.Offset), SmfStringFormatter.byteToString(GetMetaValue(e.Offset)));
                break;

            default:
                if (e.IsRse)
                {
                    lve.AddItem(GetRseEventColor(Colors["225"]), MeasureBarTick(e.Ppq), ch, GetRseEventString(e.Offset), chRseV(e.Offset), SmfStringFormatter.byteToString(GetRseEventValue(e.Offset)));
                }
                else
                {
                    lve.AddItem(GetEventColor(Colors["225"]), MeasureBarTick(e.Ppq), ch, GetEventString(e.Offset), chV(e.Offset), SmfStringFormatter.byteToString(GetEventValue(e.Offset)));
                }
                break;
            }
        }
Example #3
0
        //
        // META STRING
        // ---------------
        #region Meta STRING Helpers

        /// <summary>
        /// Return a string value per meta-event or throw exception.
        /// </summary>
        /// <param name="trk"></param>
        /// <param name="pos"></param>
        /// <returns></returns>
        public string GetMetaSTR(int offset)
        {
            int flag = SmfFileHandle.Get16BitInt32(SelectedTrackNumber, offset);

            switch ((MetaMsgU16FF)flag)
            {
            //0xff00
            case MetaMsgU16FF.SequenceNo:
                return(MetaHelpers.meta_FF00(
                           SmfFileHandle[SelectedTrackNumber, offset + 3],
                           SmfFileHandle[SelectedTrackNumber, offset + 4]
                           ));

            //0xff20
            case MetaMsgU16FF.Chanel:
                /*SmfStringFormatter.meta_FF20( trk, pos+3 )*/
                return(SmfFileHandle[SelectedTrackNumber, offset + 3].ToString());

            //0xff51
            case MetaMsgU16FF.Tempo:
                return(MetaHelpers.meta_FF51(Convert.ToInt32(SmfFileHandle[SelectedTrackNumber].Get24Bit(offset + 3))));

            //0xff54:
            case MetaMsgU16FF.SMPTE:
                return(MetaHelpers.meta_FF54());

            // "?"
            //0xff58:
            case MetaMsgU16FF.TimeSignature:
                return(MetaHelpers.meta_FF58(SmfFileHandle[SelectedTrackNumber], offset));

            //0xff59:
            case MetaMsgU16FF.KeySignature:
                return(MetaHelpers.meta_FF59(SmfFileHandle[SelectedTrackNumber], offset));

            //0xff2f
            case MetaMsgU16FF.EndOfTrack:
                return(MetaHelpers.meta_FF2F());

            //0xff7f
            case MetaMsgU16FF.SystemSpecific:                     // actually 'Sequencer-Specific Meta-Event'
                //Sequencer Specific
                long result     = 0;
                int  nextOffset = GetIntVar(offset + 2, out result) - offset;
                return(SmfFileHandle[SelectedTrackNumber, offset, Convert.ToInt32(result) + 3].StringifyHex());

            case MetaMsgU16FF.SystemExclusive:
                //System Exclusive
                long result1     = 0;
                int  nextOffset1 = GetIntVar(offset + 1, out result1) - offset;
                return(SmfFileHandle[SelectedTrackNumber, offset, Convert.ToInt32(result1) + 4].StringifyHex());

            default:
                // check for a channel message
                if (runningStatus32 == 0xF0)
                {
                    long ro = 0;
                    int  no = GetIntVar(offset + 1, out ro) - offset;
                    return(SmfFileHandle[SelectedTrackNumber, offset, Convert.ToInt32(ro) + 2].StringifyHex());
                }
                string msg = string.Format(
                    "We're not sure how to handle this message {0:X4} {1:X2}.  Treating data as META event.",
                    RunningStatus32,
                    SmfFileHandle[SelectedTrackNumber, offset, 2].StringifyHex()
                    );
                MessageBox.Show(msg, "Press OK to continue", MessageBoxButtons.OK);
                return(System.Text.Encoding.UTF8.GetString(SmfFileHandle[SelectedTrackNumber, offset, SmfFileHandle[SelectedTrackNumber, offset + 2] + 3]));
            }
        }
Example #4
0
        void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        {
            timing.SolveSamples(
                ppq,
                UserInterface.VstContainer.VstPlayer.Settings.Rate,
                UserInterface.MidiParser.MidiTimeInfo.Tempo,
                UserInterface.MidiParser.SmfFileHandle.Division,
                true
                );
            switch (t)
            {
            case MidiMsgType.MetaStr:
                lve.AddItem(MidiReader.c4, UserInterface.MidiParser.GetMbtString(ppq), string.Empty, string.Empty, MetaHelpers.MetaNameFF(imsg), UserInterface.MidiParser.GetMetaString(offset));
                break;

            case MidiMsgType.MetaInf:
                lve.AddItem(UserInterface.MidiParser.GetEventColor(imsg, MidiReader.cR), UserInterface.MidiParser.GetMbtString(ppq), string.Empty, string.Empty, MetaHelpers.MetaNameFF(imsg), UserInterface.MidiParser.GetMetaSTR(offset));
                break;

            case MidiMsgType.SysCommon:
            case MidiMsgType.System:
                lve.AddItem(UserInterface.MidiParser.GetEventColor(imsg, MidiReader.cR), UserInterface.MidiParser.GetMbtString(ppq), string.Empty, string.Empty, MetaHelpers.MetaNameFF(imsg), UserInterface.MidiParser.GetMetaSTR(offset));
                break;

            default:
//				case MsgType.Channel:
                if (isrse)
                {
                    lve.AddItem(UserInterface.MidiParser.GetRseEventColor(UserInterface.MidiParser.Colors["225"]), UserInterface.MidiParser.GetMbtString(ppq), timing.TimeString, bmsg == 0xF0?"":(rse & 0x0F).ToString(), UserInterface.MidiParser.GetRseEventString(offset), UserInterface.MidiParser.chRseV(offset));
                }
                else
                {
                    lve.AddItem(UserInterface.MidiParser.GetEventColor(UserInterface.MidiParser.Colors["225"]), UserInterface.MidiParser.GetMbtString(ppq), timing.TimeString, bmsg == 0xF0?"":(rse & 0x0F).ToString(), UserInterface.MidiParser.GetEventString(offset), UserInterface.MidiParser.chV(offset));
                }
//				if (t== MsgType.NoteOn||t== MsgType.NoteOff) UserInterface.MidiParser.CheckNote(t,ppq,Convert.ToByte((rse) & 0x0F),offset,bmsg,isrse);
                break;
            }
        }