Skip to main content

Problems importing large MIDI files

Posted

Using Synfire 1.1.4 Demo on Mac OS X 10.6.2 with Intel Xeon I have been trying to import some rather large (long) MIDI files, specifically: Tchaikovsky: Concerto in D (384 measures) Gershwin: Rhapsody in Blue (Orch. or Piano) (472 measures) In both cases, I see a large number of "Continuation overflow..." statements, and the import seems to stop about 1/2 way through. After several minutes of inactivity, although the processor is still working, I have aborted. I have tried importing a single instrument from those files, but that doesn't seem to make a difference. I new to Synfire, so I'm using default settings. Am I being impatient? Is the file size the problem? Any thoughts? Thanks.


Wed, 2009-11-11 - 18:48 Permalink

Some complex and long files may cause the pattern recognition to run for very long. For the most part this effect occurs with repetitive patterns of short notes.

The overflow message indicates that there are too many possible connections between notes. That's not fatal, though. The recognition just abandons a portion of the result and retries with less connections. If you leave the algorithm running, it will finish. This may take 30 minutes and longer for complete orchestral works.

In the import dialog window, you can turn off figure creation and only keep the imported takes. This will import all instruments as static pitch. After the import you select and recognize each phrase individually:

- Select instrument
- Select Take parameter
- Select a suitable recognition algorithm
- Run it and verify the figure looks as desired

The algorithm processes either the entire phrase or selected portions of it. This way you have more controll over the figure creation process.

Christian

Thu, 2009-11-12 - 00:55 Permalink

Hi Christian,

Took your advice and thought I would post the results:

Tried importing again with default settings and let it run. 2 hours and 46 minutes to finish and it sounded and looked terrible.

Then, as you suggested, used the "Static Pitch" algorithm. [color=red]15 seconds[/color] and it was done and sounded and looked great! It may have been less than 15 seconds because it happened so fast, it finished while I was still checking the time to see when it started.

Amazing. Thank you very much.

Thu, 2009-11-12 - 12:16 Permalink

I haven't tried yet, but I doubt Synfire is able to reverse-engineer the nuances and details of Raphsody in Blue. At least not with the default settings.

Importing large works in one piece can be fun, but it usually doesn't make much sense. The motivation behind the import feature is to reuse the imported material as building blocks for a new composition rather than to reconstruct the original work.

Synfire runs a structural analysis on raw MIDI notes and attempts to guess the original intentions of the composer. This can never be perfect, because music is art not math.

When the result of that analysis is rendered against the guessed harmonies, it is clear that you will hear a deviation from the original. This is especially disturbing with popular and well-known tunes, as everybody instantly recognizes the differences. Sort of an "Ouch" effect.

But that's not the point. Vectorized photos tend to look like comic strips. Nobody would expect an identical reresentation of the original picture. It's very much the same with figure recognition.

Although it's tempting and fun to try whether the pattern recognition can handle Rachmaninov, the actual purpose of figures is to populate new compositions, rather than to resemble the original composer's work. In the new context, they will sound different anyway.

As Christian suggested, I would import as static pitches and trim/copy/paste those phrases I am interested in and convert them to figures in small chunks. You may want to try using a library for this kind of workflow.

Andre

P.S: Perhaps we should rename the "Import" feature to "Figurize" or something.

Thu, 2009-11-12 - 14:20 Permalink

...Perhaps we should rename the "Import" feature to "Figurize" or something.

I think "Figurize" might be confusing for new users. How about "Convert MIDI to Figures" to indicate it is not a simple import process?

Because the use of MIDI files can be such an integral part of the creative process in Synfire, this aspect of the program needs to carefully considered.

If I know in advance that a project will be based on particular MIDI file, the time required for the preparation and import of the file is no so important. But if I am in the middle of a project and need a particular phrase or some inspiration, the ability to quickly import a file is critical.

So, what is the harm in making "Static Pitch" the default algorithm? That would give the user immediate results comparable with what they expect when importing MIDI in other software, but does not put them into a long and unpredictable import process. If the results are poor, they still have other algorithms to use if needed.

Just some initial thoughts.

Thanks for your feedback!