Beispiel #1
0
 public GuitarTempo(GuitarMessageList owner, MidiEvent ev)
     : base(owner, ev, null, GuitarMessageType.GuitarTempo)
 {
     if (ev == null)
     {
         this.Tempo = Utility.DummyTempo;
     }
     else
     {
         var cb = new TempoChangeBuilder((MetaMessage)ev.Clone());
         this.Tempo = cb.Tempo;
     }
 }
        public GuitarTimeSignature(GuitarMessageList owner, MidiEvent ev)
            : base(owner, ev, null, GuitarMessageType.GuitarTimeSignature)
        {
            if (ev == null)
            {
                SetDownTick(0);
            }
            else
            {
                SetDownEvent(ev);

                var builder = new TimeSignatureBuilder((MetaMessage)ev.Clone());

                Numerator               = builder.Numerator;
                Denominator             = builder.Denominator;
                ClocksPerMetronomeClick = builder.ClocksPerMetronomeClick;

                ThirtySecondNotesPerQuarterNote = builder.ThirtySecondNotesPerQuarterNote;
            }
        }
Beispiel #3
0
            public void Write(MidiEvent midiEvent)
            {
                // We add any extra delays to the event
                if (_pendingDeltaTime > 0)
                {
                    midiEvent            = midiEvent.Clone();
                    midiEvent.DeltaTime += _pendingDeltaTime;
                    _pendingDeltaTime    = 0;
                }

                _trackChunk.Events.Add(midiEvent);

                switch (midiEvent)
                {
                case NoteOnEvent n:
                    Available  = false;
                    NoteNumber = n.NoteNumber;
                    break;

                case NoteOffEvent _:
                    Available = true;
                    break;
                }
            }