5

I'm working on creating some black MIDI music. Is there any way that I can add a note that is shorter than a 1/128 note in midi? Like 1/256 or 1/1024 (if I am crazy). I have tried rosegarden and musescore but both of them say no. Is there any software that will accept really short note values? Any suggestions?

  • 2
    Interesting question. One limiting factor in MIDI specifically is the rate that MIDI messages are sent. Depending on the tempo, trying to send too many note on messages in a short time could hit the MIDI transmission rate: futureproducers.com/forums/hardware-and-software/hardware/… – Todd Wilcox Jul 22 '16 at 18:16
  • 2
    @ToddWilcox That's what I was thinking. The MIDI serial connection runs at 3125 bytes/s, where each note is at least four bytes: two for on and two for off. So if you're exceeding 780 notes/s, your file won't be playable over a serial connection. – Damian Yerrick Jul 22 '16 at 20:49
  • @DamianYerrick Now I wonder about the sync pulse propagation limitaions in an old-school analog step sequencer setup (e.g., how many devices can you daisy chain with analog sync?) and whether you can sequence more simultaneous notes in the analog domain than you can with MIDI. Actually I guess if you use MIDI sync to sync together several MIDI sequencers each with a piece of an interlocking pattern, your number of simultaneous notes goes way up. LIke a handbell choir. – Todd Wilcox Jul 22 '16 at 20:53
2

I suppose the concern would be more about the time intervals separating the notes than the duration of the notes themselves. For rapidly sequencing notes of intended equal duration, it is probably easier and more controllable to control the sustain of the sound used by means of the envelope control of the instrument used. It's hard to predict how a burst of dozens of notes per second will sound, fine tuning the sustain of the sound by experimentation is an easy way to get the best results, without the need to change literally thousands of notes durations.

Now another issue is the time positioning of the notes. For my self the only way I have found to that below a granularity of certain note value is to edit the MIDI events directly in the DAW. My main DAW (Sonar) allows to do that, but in a cumbersome way, so I have not taken these experiments too far. I expect these Japanese guys who do black MIDI music have specialized tools or even developed their own tools for that purpose, namely using algorithmic composition approaches.

8

MIDI (SMF) files specify a PPQ (ticks per quarter note) value, which is used as the base for all timestamps.

Many programs use a value of 96 or 192 by default. The specification allows much larger values (up to 32767), but many programs do not bother to make this configurable.


Another way of getting faster timing would be to use 1/128th notes, but with doubled tempo.

  • Does any software support node above 128? I think these will be more convenient than to calculate. – Page David Jul 22 '16 at 9:40
  • Sibelius supports up to 512th-notes, but I don't think it is the right application for what you are trying to do. As the other answers suggest, a MIDI-based app rather than a notation-based program would seem a much better choice. – user19146 Jul 22 '16 at 18:31
1

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 to split notes into parts of the specified length:

// Split notes in a MIDI file with step of 1/512
midiFile.SplitNotesByStep(new MusicalTimeSpan(1, 512));

Read the library Wiki to learn more about Pattern and Notes/chords splitters.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.