Exemple #1
0
        private Piece LoadMidi(Sequence sequence)
        {
            // Create new piece
            var piece = new Piece(sequence.Division)
            {
                //TimeSignature = new TimeSignature(4, 4),
                //Tempo = new Tempo(4, 120),
                Clef     = Enums.ClefType.G,// Clef treble
                Division = sequence.Division
            };

            // Create midi strategie
            var midiStrategy = new MidiStrategy(piece);

            // Previous midi event
            MidiEvent previousMidiEvent = null;

            foreach (var track in sequence)
            {
                // Handle midi events
                foreach (var midiEvent in track.Iterator())
                {
                    midiStrategy.HandleMidiEvent(previousMidiEvent, midiEvent);
                    previousMidiEvent = midiEvent;
                }
            }

            return(piece);
        }
Exemple #2
0
 public MarkerHandler(MidiStrategy midiStrategy, Piece piece)
 {
     _midiStrategy            = midiStrategy;
     _piece                   = piece;
     _repeat                  = null;
     _midiStrategy.OpenBlocks = 0;
 }
Exemple #3
0
 public MidiChannelHandler(MidiStrategy midiStrategy, Piece piece)
 {
     _midiStrategy              = midiStrategy;
     Piece                      = piece;
     _previousMidiKey           = 60;// Central C
     _previousNoteAbsoluteTicks = 0;
     _notesOfBarReached         = 0;
 }
Exemple #4
0
 public MetaChannelHandler(MidiStrategy midiStrategy)
 {
     _midiStrategy = midiStrategy;
 }