using Melanchall.DryWetMidi.Core;
using Melanchall.DryWetMidi.Interaction;
public static void Main()
var base64midi = "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";
var stream = new MemoryStream(Convert.FromBase64String(base64midi));
var midiFile = MidiFile.Read(stream);
foreach (var note in midiFile.GetNotes())
var newlast = note.Time/513f;
outtext += string.Format(@"{0}{2}{1}", note, note.Length/513f*speed, maintune);
outtext += string.Format(",\n{0}: ", (newlast-last)*speed);
outtext += string.Format(@"{0}{2}{1}", note, note.Length/513f*speed, bass);