If you are familiar with programming you can solve your task using one of the libraries providing ability to manage MIDI files. For example, with DryWetMIDI (.NET library) you can write something like this:
var midiFile = new PatternBuilder()
// Insert 100 A3 notes with length of 1/256 following each other
.Note(Octave.Get(3).A, new MusicalTimeSpan(1, 256))
.Repeat(100)
// Insert pause of 1/512
.StepForward(new MusicalTimeSpan(1, 512))
// Insert G#2 with length of 3/1024
.Note(Octave.Get(2).GSharp, new MusicalTimeSpan(3, 1024))
// Build pattern and export it to MIDI file
.Build()
.ToFile(TempoMap.Default);
// Save to file
midiFile.Write("Black song.mid");
Or you can take existing file and turn it to black one with use of NotesSplitter
Splitter to split notes into parts of the specified length:
// Split notes in a MIDI file with step of 1/512
midiFile.SplitNotesByStepSplitObjectsByStep(ObjectType.Note, new MusicalTimeSpan(1, 512));
Read the library Wikidocumentation to learn more about PatternPattern and Notes/chords splittersSplitter.