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?
-
3Interesting 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 WilcoxCommented Jul 22, 2016 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 YerrickCommented Jul 22, 2016 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 WilcoxCommented Jul 22, 2016 at 20:53
4 Answers
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 to set the sustain of the sound through 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 do 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.
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. Commented Jul 22, 2016 at 9:40
-
1Sibelius 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.– user19146Commented Jul 22, 2016 at 18:31
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 Splitter to split notes into parts of the specified length:
// Split notes in a MIDI file with step of 1/512
midiFile.SplitObjectsByStep(ObjectType.Note, new MusicalTimeSpan(1, 512));
Read the library documentation to learn more about Pattern and Splitter.
Musescore 3.6.2.548021803 has support for notes up to 1/1024.
By default, it will show 1/32 notes in the toolbar only. If you switch to extended mode, you get 1/64 and 1/128 in the UI as well. By assigning key combinations in the settings, you can access 1/256, 1/512 and 1/1024.
However, this does not seem to be thoroughly tested. After adding a 1/1024 note, the pauses are not sorted correctly, IMHO: