public void handle(MidiContext context, MidiEvent midiEvent)
        {
            this.context    = context;
            this.musicSheet = context.MusicSheet;

            var channelMessage = midiEvent.MidiMessage as ChannelMessage;

            if (channelMessage.Command.ToString().Equals("NoteOn"))
            {
                ProcessNote(midiEvent);
            }
        }
Exemple #2
0
        public void handle(MidiContext context, MidiEvent midiEvent)
        {
            var metaMessage = midiEvent.MidiMessage as MetaMessage;
            var type        = metaMessage.MetaType;

            IMetaTypeHandler handler = new MetaTypeHandlerFactory().Get(type.ToString());

            if (handler != null)
            {
                handler.handle(context, midiEvent);
            }
        }
Exemple #3
0
        public void handle(MidiContext context, MidiEvent midiEvent)
        {
            IMidiMessage midiMessage = midiEvent.MidiMessage;
            var          metaMessage = midiMessage as MetaMessage;

            byte[] bytes = metaMessage.GetBytes();
            int    tempo = (bytes[0] & 0xff) << 16 | (bytes[1] & 0xff) << 8 | (bytes[2] & 0xff);
            int    _bpm  = 60000000 / tempo;

            Tempo tempoObject = new Tempo(_bpm, 4);

            context.MusicSheet.AddMusicSymbol(tempoObject);
        }
Exemple #4
0
        public void handle(MidiContext context, MidiEvent midiEvent)
        {
            IMidiMessage midiMessage = midiEvent.MidiMessage;
            var          metaMessage = midiMessage as MetaMessage;

            int[]  timeSignature      = new int[2];
            byte[] timeSignatureBytes = metaMessage.GetBytes();
            context._beatNote    = timeSignatureBytes[0];
            context._beatsPerBar = (int)(1 / Math.Pow(timeSignatureBytes[1], -2));

            timeSignature[0] = timeSignatureBytes[0];
            timeSignature[1] = (int)(1 / Math.Pow(timeSignatureBytes[1], -2));

            context.CurrentTimeSignature = new Models.TimeSignature(timeSignature);
            context.MusicSheet.AddMusicSymbol(context.CurrentTimeSignature);
        }
 public void handle(MidiContext context, MidiEvent midiEvent)
 {
     if (context.previousNoteAbsoluteTicks > 0)
     {
     }
 }