Exemplo n.º 1
0
 static public IEnumerable <int> GetTrackIndex(IMidiParser parser)
 {
     for (int i = 0; i < parser.FileHandle.NumberOfTracks; i++)
     {
         yield return(i);
     }
 }
Exemplo n.º 2
0
        // static public IEnumerable<KeyValuePair<int,VstPlugin>> GetInstrumentMapping(IMidiParserUI ui)
        // {
        //   foreach (VstPlugin plugin in GetInstruments(ui))
        //     for (int i=0; i<plugin.PluginCommandStub.GetNumberOfMidiInputChannels(); i++)
        //       yield return new KeyValuePair<int,VstPlugin>(i,plugin);
        // }

        static IEnumerable <int> EnumerateTrackIndex(this IMidiParser parser)
        {
            for (int i = 0; i < parser.SmfFileHandle.NumberOfTracks; i++)
            {
                yield return(i);
            }
        }
Exemplo n.º 3
0
 public void FromMidi(IMidiParser parser)
 {
     this.TimeSignature = parser.TimeSignature;
     this.KeySignature  = parser.KeySignature;
     this.Division      = parser.SmfFileHandle.Division;
     this.Tempo         = parser.MidiTimeInfo.Tempo;
 }
 int FindOld(IMidiParser parser)
 {
     return parser.MidiDataList[track].FindIndex(
         m =>
         m.DeltaTime == oldDelta &&
         m.Message == oldMessage &&
         m.Data==oldData
     );
 }
 int FindNew(IMidiParser parser)
 {
     return parser.MidiDataList[track].FindIndex(
         m =>
         m.DeltaTime == newDelta &&
         m.Message == newMessage &&
         m.Data==newData
     );
 }
Exemplo n.º 6
0
 int FindNew(IMidiParser parser)
 {
     return(parser.MidiDataList[track].FindIndex(
                m =>
                m.DeltaTime == newDelta &&
                m.Message == newMessage &&
                m.Data == newData
                ));
 }
Exemplo n.º 7
0
        public void Revert(IMidiParser parser)
        {
            int msgindex = FindNew(parser);

            if (msgindex != -1)
            {
                SetOldData(parser, msgindex);
            }
        }
Exemplo n.º 8
0
        public void Modify(IMidiParser parser)
        {
            int msgindex = FindOld(parser);

            if (msgindex != -1)
            {
                SetNewData(parser, msgindex);
            }
        }
Exemplo n.º 9
0
 int FindOld(IMidiParser parser)
 {
     return(parser.MidiDataList[track].FindIndex(
                m =>
                m.DeltaTime == oldDelta &&
                m.Message == oldMessage &&
                m.Data == oldData
                ));
 }
        public void Modify(MidiMessage input, IMidiParser parser, ulong delta, int msg, params byte[] data)
        {
            this.track = track;

            this.oldDelta = input.DeltaTime;
            this.oldMessage = input.Message;
            this.oldData = input.Data;
            //
            this.newDelta = delta;
            this.newMessage = msg;
            this.newData = data;
        }
Exemplo n.º 11
0
        public void Modify(MidiMessage input, IMidiParser parser, ulong delta, int msg, params byte[] data)
        {
            this.track = track;

            this.oldDelta   = input.DeltaTime;
            this.oldMessage = input.Message;
            this.oldData    = input.Data;
            //
            this.newDelta   = delta;
            this.newMessage = msg;
            this.newData    = data;
        }
 public void Revert(IMidiParser parser)
 {
     int msgindex = FindNew(parser);
     if (msgindex!=-1) SetOldData(parser,msgindex);
 }
 public void Modify(IMidiParser parser)
 {
     int msgindex = FindOld(parser);
     if (msgindex!=-1) SetNewData(parser,msgindex);
 }
Exemplo n.º 14
0
 public void FromMidi(IMidiParser parser)
 {
     this.TimeSignature = parser.TimeSignature;
     this.KeySignature = parser.KeySignature;
     this.Division = parser.SmfFileHandle.Division;
     this.Tempo = parser.MidiTimeInfo.Tempo;
 }
Exemplo n.º 15
0
 void SetOldData(IMidiParser parser, int index)
 {
     parser.MidiDataList[track][index].DeltaTime = oldDelta;
     parser.MidiDataList[track][index].Message   = oldMessage;
     parser.MidiDataList[track][index].Data      = oldData;
 }
Exemplo n.º 16
0
 void SetNewData(IMidiParser parser, int index)
 {
     parser.MidiDataList[track][index].DeltaTime = newDelta;
     parser.MidiDataList[track][index].Message   = newMessage;
     parser.MidiDataList[track][index].Data      = newData;
 }
 void SetNewData(IMidiParser parser, int index)
 {
     parser.MidiDataList[track][index].DeltaTime = newDelta;
     parser.MidiDataList[track][index].Message = newMessage;
     parser.MidiDataList[track][index].Data = newData;
 }
 void SetOldData(IMidiParser parser, int index)
 {
     parser.MidiDataList[track][index].DeltaTime = oldDelta;
     parser.MidiDataList[track][index].Message = oldMessage;
     parser.MidiDataList[track][index].Data = oldData;
 }
Exemplo n.º 19
0
 static public IEnumerable <KeyValuePair <int, string> > GetMidiTrackNameDictionary(this IMidiParser parser)
 {
     foreach (int i in parser.EnumerateTrackIndex())
     {
         string trackname = string.Format(Strings.Filter_MidiTrack, i + 1);
         yield return(new KeyValuePair <int, string>(i, trackname));
     }
 }
Exemplo n.º 20
0
 static public IEnumerable <KeyValuePair <int, string> > GetMidiTrackNamesByIndex(IMidiParser parser)
 {
     foreach (int i in GetTrackIndex(parser))
     {
         string trackname = string.Format(Strings.Filter_MidiTrack, i + 1);
         yield return(new KeyValuePair <int, string>(i, trackname));
     }
 }
Exemplo n.º 21
0
 public TrackLoader(IMidiParser parser)
     : base()
 {
     this.parser = parser;
     this.parser.TrackLoadProgressChanged += delegate (object o,ProgressChangedEventArgs e) {
         // we should use a cancelation pending type of thing somewhere?
         OnProgressChanged(e);
     };
 }
Exemplo n.º 22
0
 static public IEnumerable <MidiMessage> MidiTrackDistinctChannels(this IMidiParser parser, int trackid)
 {
     return(parser.MidiDataList[trackid].Distinct(ChannelComparer));
 }
Exemplo n.º 23
0
 public MidiController(IWebHostEnvironment environment)
 {
     this.midiParser    = new MidiParser();
     hostingEnvironment = environment;
 }