Beispiel #1
0
 public MPTKEvent()
 {
     Command = MPTKCommand.NoteOn;
     //V2.82 set default value
     Duration = -1;
     Channel  = 0;
     Delay    = 0;
     Velocity = 127; // max
 }
        /// <summary>
        /// Create a MPTK Midi event from a midi input message
        /// </summary>
        /// <param name="data"></param>
        public MPTKEvent(ulong data)
        {
            Source  = (uint)(data & 0xffffffffUL);
            Command = (MPTKCommand)((data >> 32) & 0xFF);
            if (Command < MPTKCommand.Sysex)
            {
                Channel = (int)Command & 0xF;
                Command = (MPTKCommand)((int)Command & 0xF0);
            }
            byte data1 = (byte)((data >> 40) & 0xff);
            byte data2 = (byte)((data >> 48) & 0xff);

            if (Command == MPTKCommand.NoteOn && data2 == 0)
            {
                Command = MPTKCommand.NoteOff;
            }

            //if ((int)Command != 0xFE)
            //    Debug.Log($"{data >> 32:X}");

            switch (Command)
            {
            case MPTKCommand.NoteOn:
                Value    = data1;  // Key
                Velocity = data2;
                Duration = -1;     // no duration are defined in Midi flux
                break;

            case MPTKCommand.NoteOff:
                Value    = data1;  // Key
                Velocity = data2;
                break;

            case MPTKCommand.KeyAfterTouch:
                Value    = data1;  // Key
                Velocity = data2;
                break;

            case MPTKCommand.ControlChange:
                Controller = (MPTKController)data1;
                Value      = data2;
                break;

            case MPTKCommand.PatchChange:
                Value = data1;
                break;

            case MPTKCommand.ChannelAfterTouch:
                Value = data1;
                break;

            case MPTKCommand.PitchWheelChange:
                Value = data2 << 7 | data1;     // Pitch-bend is transmitted with 14-bit precision.
                break;
            }
        }
 public MPTKEvent()
 {
     Command = MPTKCommand.NoteOn;
     //V2.82 set default value
     Duration  = -1;
     Channel   = 0;
     Delay     = 0;
     Velocity  = 127; // max
     IdSession = -1;
     TickTime  = DateTime.Now.Ticks;
 }
Beispiel #4
0
 public MPTKEvent()
 {
     Command = MPTKCommand.NoteOn;
 }