/// <inheritdoc /> public void AddTempo(int tick, int tempo) { // bpm -> microsecond per quarter note var tempoInUsq = (60000000 / tempo); var message = new MetaNumberEvent(tick, 0xFF, (byte)MetaEventTypeEnum.Tempo, tempoInUsq); _midiFile.AddEvent(message); }
internal static MidiFile JsObjectToMidiFile(dynamic midi) { var midi2 = new MidiFile(); midi2.Division = midi.Division; FastList <dynamic> midiEvents = midi.Events; foreach (var midiEvent in midiEvents) { int tick = midiEvent.Tick; int message = midiEvent.Message; MidiEvent midiEvent2; switch (midiEvent.Type) { case "alphaTab.audio.synth.midi.event.SystemExclusiveEvent": midiEvent2 = new SystemExclusiveEvent(tick, 0, 0, midiEvent.Data); midiEvent2.Message = message; break; case "alphaTab.audio.synth.midi.event.MetaDataEvent": midiEvent2 = new MetaDataEvent(tick, 0, 0, midiEvent.Data); midiEvent2.Message = message; break; case "alphaTab.audio.synth.midi.event.MetaNumberEvent": midiEvent2 = new MetaNumberEvent(tick, 0, 0, midiEvent.Value); midiEvent2.Message = message; break; default: midiEvent2 = new MidiEvent(tick, 0, 0, 0); midiEvent2.Message = message; break; } midi2.Events.Add(midiEvent2); } return(midi2); }
internal static object MidiFileToJsObject(MidiFile midi) { var midi2 = Platform.Platform.NewObject(); midi2.Division = midi.Division; var midiEvents = new FastList <object>(); midi2.Events = midiEvents; foreach (var midiEvent in midi.Events) { var midiEvent2 = Platform.Platform.NewObject(); midiEvents.Add(midiEvent2); midiEvent2.Type = Platform.Platform.GetTypeName(midiEvent); midiEvent2.Tick = midiEvent.Tick; midiEvent2.Message = midiEvent.Message; switch (midiEvent2.Type) { case "alphaTab.audio.synth.midi.event.SystemExclusiveEvent": SystemExclusiveEvent sysex = (SystemExclusiveEvent)midiEvent; midiEvent2.Data = sysex.Data; break; case "alphaTab.audio.synth.midi.event.MetaDataEvent": MetaDataEvent metadata = (MetaDataEvent)midiEvent; midiEvent2.Data = metadata.Data; break; case "alphaTab.audio.synth.midi.event.MetaNumberEvent": MetaNumberEvent metanumber = (MetaNumberEvent)midiEvent; midiEvent2.Value = metanumber.Value; break; } } return(midi2); }