Esempio n. 1
0
        /// MESSAGE methods


        /// <inheritdoc/>
        public void OnMidiMessage(
            MidiMsgType msgType,
            int nTrackIndex,
            int nTrackOffset,
            int stat32,
            byte stat8,
            long pulse,
            int statR,
            bool isRunningStatus)
        {
            if (GenerateMessageList)
            {
                // we need to first clear the MidiMessageCollection!
                MidiMessages.AddV(
                    nTrackIndex,
                    new MidiMessage(
                        (ushort)stat32,
                        pulse,
                        GetMessageBytes(nTrackIndex, isRunningStatus ? nTrackOffset - 1 : nTrackOffset, (ushort)stat32)
                        ));
            }

            if (ProcessMidiMessage != null)
            {
                ProcessMidiMessage(this, new MidiMessageEvent(msgType, nTrackIndex, nTrackOffset, stat32, stat8, pulse, statR, isRunningStatus));
            }

            if (MessageHandlers.Count > 0)
            {
                DispatchHandlers(msgType, nTrackIndex, nTrackOffset, stat32, stat8, pulse, statR, isRunningStatus);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// </summary>
 /// <param name="delta"></param>
 /// <param name="msgType">Typically 8, 9, A, B and C</param>
 /// <param name="data">Must be a length of 4 bytes.</param>
 public MidiMessage(MidiMsgType t, ulong delta, int message, params byte[] data)
 {
     this.Data = data;
     this.DeltaTime = delta;
     this.Message = message;
     this.messageFlag = t;
 }
Esempio n. 3
0
 /// MESSAGE methods
 void DispatchHandlers(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     foreach (MidiEventDelegate method in MessageHandlers)
     {
         method(t, track, offset, imsg, bmsg, ppq, rse, isrse);
     }
 }
Esempio n. 4
0
//
//		#endregion

        void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        {
            if (t == MidiMsgType.NoteOn || t == MidiMsgType.NoteOff)
            {
                UserInterface.MidiParser.CheckNote(t, ppq, Convert.ToByte((rse) & 0x0F), offset, bmsg, isrse);
            }
        }
Esempio n. 5
0
 /// <summary>
 /// </summary>
 /// <param name="pMsgType">Typically 8, 9, A, B and C</param>
 /// <param name="pPulse">Pulses (timing foundation)</param>
 /// <param name="pIntMessage">Must be a length of 4 bytes.</param>
 /// <param name="pMsgData">Must be a length of 4 bytes.</param>
 public MIDIMessageVST(MidiMsgType pMsgType, long pPulse, int pIntMessage, params byte[] pMsgData)
 {
     Pulse       = pPulse;
     MessageFlag = pMsgType;
     Message     = pIntMessage;
     Data        = pMsgData;
 }
Esempio n. 6
0
        // ==========================================================================
        //
        // This is an example usage having added this to the MidiParser as follows
        //
        // ==========================================================================
        //
        //  if (!SomeContainer.MidiParser.MessageHandlers.Contains(GotMidiEventD))
        //    SomeContainer.MidiParser.MessageHandlers.Add(GotMidiEventD);
        //
        // ==========================================================================
        //
        // The following method is triggered on channel-selection.
        //
        // - see MidiReader.OnMidiMessage()
        // - see MidiReader.DispatchHandlers()
        //
        // ==========================================================================
        //
        // static public void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        // {
        //   if ( t== MidiMsgType.NoteOn || t== MidiMsgType.NoteOff )
        //   {
        //     UserInterface.MidiParser.CheckNote(t,ppq,Convert.ToByte((rse) & 0x0F),offset,bmsg,isrse);
        //   }
        // }
        //
        // ==========================================================================

        /// <inheritdoc/>
        public void CheckNote(MidiMsgType type, long ppq, byte ch, int offset, byte b, bool rs)
        {
            byte n = 0, v = 0;

            switch (type)
            {
            case MidiMsgType.ControllerChange:
                n = this[ReaderIndex, offset + (rs ? 0 : 1)];
                v = this[ReaderIndex, offset + (rs ? 0 : 1) + 1];
                break;

            case MidiMsgType.NoteOn:
                n = this[ReaderIndex, offset + (rs ? 0 : 1)];
                v = this[ReaderIndex, offset + (rs ? 0 : 1) + 1];
                if (v == 0)
                {
                    CloseNote(ppq, n, v);
                }
                else
                {
                    Notes.Add(new MidiNote(ch, n, ppq, v));
                }
                break;

            case MidiMsgType.NoteOff:
                n = this[ReaderIndex, offset + (rs ? 0 : 1)];
                v = this[ReaderIndex, offset + (rs ? 0 : 1) + 1];
                CloseNote(ppq, n, v);
                break;
            }
        }
Esempio n. 7
0
 /// <summary>
 /// </summary>
 /// <param name="delta"></param>
 /// <param name="msgType">Typically 8, 9, A, B and C</param>
 /// <param name="data">Must be a length of 4 bytes.</param>
 public MidiMessage(MidiMsgType t, ulong delta, int message, params byte[] data)
 {
     this.Data        = data;
     this.DeltaTime   = delta;
     this.Message     = message;
     this.messageFlag = t;
 }
Esempio n. 8
0
		/// <inheritdoc/>
		public void CheckNote(MidiMsgType type, ulong ppq, byte ch, int offset, byte b, bool rs)
		{
			byte n = 0, v = 0;
			switch (type) {
				case MidiMsgType.CC:
					n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
					v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
					Debug.Print("Control Change : {0}{1} {2}", SmfStringFormatter.GetKeySharp(n), SmfStringFormatter.GetOctave(n), v);
					break;
				case MidiMsgType.NoteOn:
					n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
					v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
//					Debug.Print("Note On : {0}{1} {2}",SmfStringFormatter.GetKeySharp(n),SmfStringFormatter.GetOctave(n),v);
						if (v == 0)
							CloseNote(ppq, n, v);
						else
							Notes.Add(new MidiNote(ch, n, ppq, v));

					break;
				case MidiMsgType.NoteOff:
					n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
					v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
//					Debug.Print("Note Off: {0}{1} {2}",SmfStringFormatter.GetKeySharp(n),SmfStringFormatter.GetOctave(n),v);
					CloseNote(ppq, n, v);
					break;
			}
		}
Esempio n. 9
0
        // ==========================================================================
        //
        // This is an example usage having added this to the MidiParser as follows
        //
        // ==========================================================================
        //
        //  if (!SomeContainer.MidiParser.MessageHandlers.Contains(GotMidiEventD))
        //    SomeContainer.MidiParser.MessageHandlers.Add(GotMidiEventD);
        //
        // ==========================================================================
        //
        // The following method is triggered on channel-selection.
        //
        // - see MidiReader.OnMidiMessage()
        // - see MidiReader.DispatchHandlers()
        //
        // ==========================================================================
        //
        // static public void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        // {
        //   if ( t== MidiMsgType.NoteOn || t== MidiMsgType.NoteOff )
        //   {
        //     UserInterface.MidiParser.CheckNote(t,ppq,Convert.ToByte((rse) & 0x0F),offset,bmsg,isrse);
        //   }
        // }
        //
        // ==========================================================================

        /// <inheritdoc/>
        public void CheckNote(MidiMsgType type, ulong ppq, byte ch, int offset, byte b, bool rs)
        {
            byte n = 0, v = 0;

            switch (type)
            {
            case MidiMsgType.CC:
                n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
                v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
                break;

            case MidiMsgType.NoteOn:
                n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
                v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
                if (v == 0)
                {
                    CloseNote(ppq, n, v);
                }
                else
                {
                    Notes.Add(new MidiNote(ch, n, ppq, v));
                }
                break;

            case MidiMsgType.NoteOff:
                n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
                v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
                CloseNote(ppq, n, v);
                break;
            }
        }
Esempio n. 10
0
 /// MESSAGE methods
 void DispatchHandlers(MidiMsgType t, int nTrackIndex, int nTrackOffset, int stat32, byte stat8, long pulse, int statR, bool isRunningStatus)
 {
     foreach (MidiEventDelegate method in MessageHandlers)
     {
         method(t, nTrackIndex, nTrackOffset, stat32, stat8, pulse, statR, isRunningStatus);
     }
 }
Esempio n. 11
0
 /// MESSAGE methods
 /// <inheritdoc/>
 public void OnMidiMessage(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     if (ProcessMidiMessage != null)
     {
         ProcessMidiMessage(this, new MidiMessageEvent(t, track, offset, imsg, bmsg, ppq, rse, isrse));
     }
     if (MessageHandlers.Count > 0)
     {
         DispatchHandlers(t, track, offset, imsg, bmsg, ppq, rse, isrse);
     }
 }
Esempio n. 12
0
 public MidiMessageEvent(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     this.MsgT    = t;
     this.Track   = track;
     this.Offset  = offset;
     this.IntMsg  = imsg;
     this.ByteMsg = bmsg;
     this.Ppq     = ppq;
     this.Rse     = rse;
     this.IsRse   = isrse;
 }
Esempio n. 13
0
 public MidiMessageEvent(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     this.MsgT = t;
     this.Track = track;
     this.Offset = offset;
     this.IntMsg = imsg;
     this.ByteMsg = bmsg;
     this.Ppq = ppq;
     this.Rse = rse;
     this.IsRse = isrse;
 }
Esempio n. 14
0
 public MidiMessageEvent(MidiMsgType msgType, int nTrackIndex, int nTrackOffset, int midiMsg32, byte midiMsg8, long pulse, int delta, bool isRunningStatus)
 {
     MessageType     = msgType;
     NTrackIndex     = nTrackIndex;
     NTrackOffset    = nTrackOffset;
     MessageInt32    = midiMsg32;
     MessageByte     = midiMsg8;
     Pulse           = pulse;
     Delta           = delta;
     IsRunningStatus = isRunningStatus;
 }
Esempio n. 15
0
        void VSTMessageListHandler(MidiMsgType msgType, int nTrackIndex, int nTrackOffset, int midiMsg32, byte midiMsg8, long pulse, int delta, bool isRunningStatus)
        {
            switch (msgType)
            {
            case MidiMsgType.MetaStr:
                MidiVSTMessageList.AddV(nTrackIndex, new MetaMessageVST(MidiMsgType.MetaStr, pulse, midiMsg32, GetMetadataBytes(nTrackIndex, nTrackOffset)));
                break;

            case MidiMsgType.MetaInf:
                byte[] bytes   = GetMetadataBytes(nTrackIndex, nTrackOffset);
                var    midiMsg = new MetaMessageVST(pulse, midiMsg32, bytes);
                MidiVSTMessageList.AddV(nTrackIndex, midiMsg);
                break;

            case MidiMsgType.SystemExclusive:
                Debug.WriteLine("Skip System Exclusive Message (for now)");
                break;

            case MidiMsgType.ChannelVoice:
            case MidiMsgType.NoteOff:
            case MidiMsgType.NoteOn:
                MidiVSTMessageList.AddV(nTrackIndex, new ChannelMessageVST(pulse, midiMsg32, GetEventValue(nTrackIndex, nTrackOffset + 1)));
                break;

            case MidiMsgType.SequencerSpecific:
                MidiVSTMessageList.AddV(nTrackIndex, new SequencerSpecificVST(pulse, midiMsg32, GetEventValue(nTrackIndex, nTrackOffset + 1)));
                break;

            case MidiMsgType.SequencerSpecificUnknown:
                MidiVSTMessageList.AddV(nTrackIndex, new SequencerSpecificUnkn((ushort)midiMsg32, pulse, midiMsg32, GetEventValue(nTrackIndex, nTrackOffset + 1)));
                break;

            case MidiMsgType.EOT:
                MidiVSTMessageList.AddV(nTrackIndex, new MetaMessageVST(pulse, midiMsg32));
                break;

            default:
                if (isRunningStatus)
                {
                    MidiVSTMessageList.AddV(nTrackIndex, new ChannelMessageVST(pulse, delta, GetEventValue(nTrackIndex, nTrackOffset)));
                }
                else
                {
                    MidiVSTMessageList.AddV(nTrackIndex, new ChannelMessageVST(pulse, delta, GetEventValue(nTrackIndex, nTrackOffset + 1)));
                }
                break;
            }
        }
Esempio n. 16
0
        internal static MidiMsgType GetMidiMessageType(int status, MidiMsgType def = MidiMsgType.ChannelVoice)
        {
            switch (status & 0xF0)
            {
            case 0x80: return(MidiMsgType.NoteOff);

            case 0x90: return(MidiMsgType.NoteOn);

            case 0xB0: return(MidiMsgType.ControllerChange);

            case 0xF0: return(MidiMsgType.SystemExclusive);

            case 0xF7: return(MidiMsgType.SequencerSpecific);

            // case 12: return MsgType.CC;
            default: return(def);
            }
        }
Esempio n. 17
0
        void PARSER_MidiDataList(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        {
            switch (t)
            {
            case MidiMsgType.MetaStr:
                midiDataList.AddV(SelectedTrackNumber, new MidiMetaMessage(MidiMsgType.MetaStr, ppq, imsg, GetMetaBString(offset)));
                break;

            case MidiMsgType.MetaInf:
                midiDataList.AddV(SelectedTrackNumber, new MidiMetaMessage(ppq, imsg, GetMetaData(offset)));
                break;

            case MidiMsgType.System:
            case MidiMsgType.SysCommon:
//					MetaHelpers.MetaNameFF( imsg )
                if (imsg == 0xFF7F)
                {
//					{
//						Debug.Print("rse? {0} -----------sys---------------\n{1}",isrse ? 0 :1, SmfStringFormatter.byteToString(GetEventValue(offset)));
                    midiDataList.AddV(SelectedTrackNumber, new MidiSysexMessage(ppq, imsg, GetMetaValue(offset)));
                }
//					}
                else if (imsg == 0xF0)
                {
                    Debug.Print("0xF0 {0} {1}", isrse, GetEventValue(offset).StringifyHex());
                    midiDataList.AddV(SelectedTrackNumber, new MidiSysexMessage(ppq, imsg, GetEventValue(offset)));
                }
                break;

            default:
                if (isrse)
                {
                    MidiDataList.AddV(SelectedTrackNumber, new MidiChannelMessage(ppq, rse, GetRseEventValue(offset)));
                }
                else
                {
                    MidiDataList.AddV(SelectedTrackNumber, new MidiChannelMessage(ppq, rse, GetEventValue(offset)));
                }
                break;
            }
        }
Esempio n. 18
0
 // ==========================================================================
 //
 // This is an example usage having added this to the MidiParser as follows
 //
 // ==========================================================================
 //
 //  if (!SomeContainer.MidiParser.MessageHandlers.Contains(GotMidiEventD))
 //    SomeContainer.MidiParser.MessageHandlers.Add(GotMidiEventD);
 //
 // ==========================================================================
 //
 // The following method is triggered on channel-selection.
 //
 // - see MidiReader.OnMidiMessage()
 // - see MidiReader.DispatchHandlers()
 //
 // ==========================================================================
 //
 // static public void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 // {
 //   if ( t== MidiMsgType.NoteOn || t== MidiMsgType.NoteOff )
 //   {
 //     UserInterface.MidiParser.CheckNote(t,ppq,Convert.ToByte((rse) & 0x0F),offset,bmsg,isrse);
 //   }
 // }
 //
 // ==========================================================================
 /// <inheritdoc/>
 public void CheckNote(MidiMsgType type, ulong ppq, byte ch, int offset, byte b, bool rs)
 {
     byte n = 0, v = 0;
     switch (type)
     {
         case MidiMsgType.CC:
             n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
             v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
             break;
         case MidiMsgType.NoteOn:
             n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
             v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
             if (v == 0) CloseNote(ppq, n, v);
             else Notes.Add(new MidiNote(ch, n, ppq, v));
             break;
         case MidiMsgType.NoteOff:
             n = this[SelectedTrackNumber, offset + (rs ? 0 : 1)];
             v = this[SelectedTrackNumber, offset + (rs ? 0 : 1) + 1];
             CloseNote(ppq, n, v);
             break;
     }
 }
Esempio n. 19
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;
            }
        }
Esempio n. 20
0
        MidiMsgType GetMsgTyp(byte status, MidiMsgType def = MidiMsgType.Channel)
        {
//			Debug.Print("? {0:X}",status);
            switch (status & 0xf0)
            {
            case 0x80:
                return(MidiMsgType.NoteOff);

            case 0x90:
                return(MidiMsgType.NoteOn);

            case 0xb0:
                return(MidiMsgType.CC);

            case 0xF0:
            case 0xF7:
                return(MidiMsgType.System);

            default:
//					case 12: return MsgType.CC;
                return(def);
            }
        }
Esempio n. 21
0
 MidiMsgType GetMsgTyp(int status, MidiMsgType def = MidiMsgType.Channel)
 {
     return(GetMsgTyp(Convert.ToByte(status & 0xf0), def));
 }
Esempio n. 22
0
 public MidiMessageEvent(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse)
     : this(t,track,offset,imsg,bmsg,ppq,rse,false)
 {
 }
Esempio n. 23
0
 public MidiMetaMessage(MidiMsgType t, ulong delta, int message, params byte[] data) : base(t, delta, message, data)
 {
     MessageLength = data.Length;
 }
Esempio n. 24
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;
     }
 }
Esempio n. 25
0
 /// MESSAGE methods
 /// <inheritdoc/>
 public void OnMidiMessage(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     if (ProcessMidiMessage != null) ProcessMidiMessage(this, new MidiMessageEvent(t, track, offset, imsg, bmsg, ppq, rse, isrse));
     if (MessageHandlers.Count>0) DispatchHandlers(t, track, offset, imsg, bmsg, ppq, rse, isrse);
 }
Esempio n. 26
0
 void ShowProgress(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     try {
     this.toolStripProgressBar1.Value = (int)(((double)offset / trackLen) * 100f);
     cycles = (cycles++ % cycle);
       } catch {
       }
 }
Esempio n. 27
0
 /// MESSAGE methods
 void DispatchHandlers(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     foreach (MidiEventDelegate method in MessageHandlers) method(t, track, offset, imsg, bmsg, ppq, rse, isrse);
 }
Esempio n. 28
0
 MidiMsgType GetMsgTyp(int status, MidiMsgType def = MidiMsgType.Channel)
 {
     return GetMsgTyp(Convert.ToByte(status & 0xf0), def);
 }
Esempio n. 29
0
 public MidiMessageEvent(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse) : this(t, track, offset, imsg, bmsg, ppq, rse, false)
 {
 }
Esempio n. 30
0
 MidiMsgType GetMsgTyp(byte status, MidiMsgType def = MidiMsgType.Channel)
 {
     //			Debug.Print("? {0:X}",status);
     switch (status & 0xf0) {
         case 0x80:
             return MidiMsgType.NoteOff;
         case 0x90:
             return MidiMsgType.NoteOn;
         case 0xb0:
             return MidiMsgType.CC;
         case 0xF0:
         case 0xF7:
             return MidiMsgType.System;
         default:
     //					case 12: return MsgType.CC;
             return def;
     }
 }
Esempio n. 31
0
 public MidiMessageEvent(MidiMsgType msgType, int nTrackIndex, int nTrackOffset, int midiMsg32, byte midiMsg8, long pulse, int delta) : this(msgType, nTrackIndex, nTrackOffset, midiMsg32, midiMsg8, pulse, delta, false)
 {
 }
Esempio n. 32
0
 void PARSER_MidiDataList(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     switch (t)
     {
         case MidiMsgType.MetaStr:
             midiDataList.AddV(SelectedTrackNumber,new MidiMetaMessage(MidiMsgType.MetaStr,ppq,imsg,GetMetaBString(offset)));
             break;
         case MidiMsgType.MetaInf:
             midiDataList.AddV(SelectedTrackNumber,new MidiMetaMessage(ppq,imsg,GetMetaData(offset)));
             break;
         case MidiMsgType.System:
         case MidiMsgType.SysCommon:
     //					MetaHelpers.MetaNameFF( imsg )
             if (imsg==0xFF7F)
     //					{
     //						Debug.Print("rse? {0} -----------sys---------------\n{1}",isrse ? 0 :1, SmfStringFormatter.byteToString(GetEventValue(offset)));
                 midiDataList.AddV(SelectedTrackNumber,new MidiSysexMessage(ppq,imsg,GetMetaValue(offset)));
     //					}
             else if (imsg==0xF0)
             {
                 Debug.Print("0xF0 {0} {1}",isrse, GetEventValue(offset).StringifyHex());
                 midiDataList.AddV(SelectedTrackNumber,new MidiSysexMessage(ppq,imsg,GetEventValue(offset)));
             }
             break;
         default:
             if (isrse) MidiDataList.AddV(SelectedTrackNumber,new MidiChannelMessage(ppq,rse,GetRseEventValue(offset)));
             else MidiDataList.AddV(SelectedTrackNumber,new MidiChannelMessage(ppq,rse,GetEventValue(offset)));
             break;
     }
 }
Esempio n. 33
0
 public MidiMetaMessage(MidiMsgType t, ulong delta, int message, params byte[] data)
     : base(t,delta,message,data)
 {
     MessageLength = data.Length;
 }
Esempio n. 34
0
 //    #endregion
 void GotMidiEventD(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
 {
     if (t== MidiMsgType.NoteOn||t== MidiMsgType.NoteOff)
       {
     UserInterface.MidiParser.CheckNote(t,ppq,Convert.ToByte((rse) & 0x0F),offset,bmsg,isrse);
       }
 }