Skip to main content

Importing large midi files

Posted

Hi, it seems Synfire has issues with very large midi files (200k+). Their conversion takes long and sometimes it halts half way through, displaying an error message. Would it be possible to select a certain portion of the midi file before import? Am I missing something?

LeCo


Mon, 2009-01-12 - 20:09 Permalink

Hi, it seems Synfire has issues with very large midi files (200k+). Their conversion takes long ... LeCo

Hi,

You may have tried this but the workflow I've used for importing large midi files is:

Import from a library so you get access to the phrase editor.
Uncheck "Create Phrase Pools" and "Create Figures" (top right in the import dialogue window you get once you've selected the midi file). This seems to speed up the import a lot.
You end up with just a "mastertake" in the phrase pool for each instrument. Double-clicking it opens the phrase editor.
If the harmonies are ok you can select sections you're interested in with the span tool and extract them with the menu item "phrase>>new from selection".
If you double click the extracted phrase you can create the figures by clicking apply on the figure recognition tab of the phrase editor.

I've made this sound more complicated than it is. The advantage is that synfire is only analysing the sections you want. The disadvantage is that you have to do this for every instrument.

Tim

Mon, 2009-01-12 - 22:05 Permalink

Tim is right. The key here is to skip figure recognition as part of the automated import procedure (turn off "Create Figures") and postpone that until a later stage where you have more control over which sections of the individual tracks you actually want to reuse as phrases.

This way you end up with a Take parameter for each track that you can trim to suit your needs before applying figure conversion; track by track.

For the most part, 80% of a midi file is redundant garbage (at least for Pop/Jazz/Dance music). Just stuff that is repeated over and over, while only harmony changes (Figure recognition eliminates harmony anyway).

As a matter of fact, Synfire may occasionally happen to run out of memory when analyzing long tracks with billions of possible segment patterns in them (theoretically). This is the error message you see. The funny thing is one can not predict this from the number of notes! There are extremely complex works that get analyzed without problems (the Bruckner piece in the video, for instance), and at the same time Synfire may fail to complete the task for rather simple looking patterns that, for some mathematical reason, expand to an incredible number of possible figures.

The good thing is that Synfire's pattern recognition is deterministic. That is, regardless how often you run it, you always get the same result. This is usually not the case with other AI algorithms that have to deal with huge sets and therefore resort to some form of random choice here and there.