Here is one possible approach:
Manipulate[
DynamicModule[{sound},
sound = Sound[{SoundNote["C"], SoundNote[note], SoundNote["C5"]}];
Column[{sound,
Button["Save",
Catch@Module[{file},
file = SystemDialogInput["FileSave", ".mid"];
If[file === $Canceled, Throw[$Failed]];
Export[file, sound, "MIDI"]], Method -> "Queued"]}]
],
{note, {"A", "B", "C", "D", "E", "F", "G"}}]