Sunday, September 04, 2022

MIDI Epics, Freud's Lecture

Another full day. I've been thinking that I've been programming too much and not making music enough, but today I remembered that these new features are a means to an end. I started by adding a feature to limit the number of MIDI events per time-index/tick. It's quite valid to have several events per tick, but I try to prevent this. Two notes, for example, are useless; they would technically play but the former would be instantly wiped out by the latter. I reasoned that MIDI files with lots of resolution (these often use 480 ticks per quarter-note - a ridiculously high resolution) may cause imports on the same Prometheus tick.

Then I realised that the same note or event at the same tick was legal and useful anyway, MIDI files can play chords quite legitimately for example. All I needed to do was limit instances of the same controller event at the same tick, the last one should be preferred.

I then got to work on Freud's Lecture and sketched out some backing for the main piano track, which is my guide. There's not much complexity here, I'd prefer more length to it all. This was raced through, all done apart from the solo cello intro. I played this on the MODX, recorded as a MIDI sequence with lots of Super-Knob motions and saved it, the imported it into Prometheus...

It worked!

But it was a bit confusing for two reasons. First, I loaded only strict Note-Off events, when I really needed to add another Note-Off (KILL in Prometheus) to stop an old note whenever starting a new note of the same pitch. This is because it's legal and possible in MIDI to start a new note while another instance of the same note is playing... and in fact the MODX does this by default; it generates a separate note sequence for each voice/part not just the whole instrument. Most instruments have more than one part, a 4-layer one generates 4 identical note patterns all on top of each other. Only the first track contains any controller events.

These events are also crowded visually (see above... all of these twiddles of the knob make a new event every few millisecs) so I added another feature to separate out the controller events into a new track. This made it possible to put the controllers in one track and notes any others, which works well. I still need Sekaiju to re-jig things correctly for the MODX. I realised that plain notes will play (again) only in one voice, which is most odd, but fortunately I can move and duplicate events to other MIDI tracks.

I've had to do a lot of programming today, but the upshot is that I can record a MIDI file, then rearrange it in Prometheus to match my timing, then export it for recording in super-quality on the instrument. It might all be too much control-freakery to be practical, 90% of the time I can play it live in one go and do it better anyway, but it is nice to have the option.

So, now, the first draft of Freud's Lecture is done, with a short length of 2:15. In other news I also painted and fitted the fan-box!

I'm now ready to attack the other tracks at good pace. Once I have the basics done I can consider extensions and other fine details.

The next big job will be Deb's vocal recording.