Frequently Asked Questions

Results file do not open correctly in my spread sheet program. Why?

There are many possible reasons. The most common are:

  1. The result file does not use the same convention as your spread sheet program. E.g., English-style CSV files have wrongly formatted cells in a German Excel. This can be changed using the --convention option or the convention block in the melfeature configuration file. See: Output Format.
  2. Your spread sheet program does not do automatic detection of column separators. E.g., the result files of melfeature use the semi-colon ; as column separators, but Excel might be looking only for commas , or even regards the CSV as a simple text file. In this case, you have to import the result file manually using the menu selection Data ‣ Import From Text File (or similar).

I start the commandline tools and nothing happens?

Since the tools are written in Python, the commandline tools have a rather long startup phase, since they have to load a full Python interpreter into memory and, most importantly, a lot of heavy-weight library stuff. So, just be patient.

How do convert a lot files of the same type with melconv at once?

This easily done with wildcards. Say, sou have a directory with a lot of MIDI files that you want to convert to MCSV format, just open a commandline box in this directory and type melconv -f mcsv1 -i *.mid. The wildcard * matches any string, so this will find all files ending with .mid, and melconv will convert them all at once. The same mechanism is of course avaibalbe in configuration files. See here for more information.

Can I use my own database?

Sure you can. The easiest way is to build up a set of monophonic melody files (e.g., MIDI or EsAC) and put them into one directory. You can access them by setting the dir option in the configuration file or on the command line to your directory, and using either the -i option on the commandline or the file option as a subfield of bundles for melconv or tunes in melfeature and melpat config files. Note, that wildcards are allowed, hence file: *.mid in the config or -i *.mid on the commadnlline will fetch all files in the directory having the extension .mid. One more note: It is advisable to check that the meter information is correctly given for your melodies, otherwise some features and algorithm might not work properly.

My own MIDI files do not work properly, what’s up with them?

MIDI files can be quite a special kind of beasts, that’s for sure. Unfortunately, MeloSpySuite and MeloSpyGUI are rather picky. Known issues include:

  • MIDI files must be strictly monophonic. But sometimes even monophonic MIDIs do not seem to work, this might be due to some quantization problem, introduced by Finale, Sibelius and the likes, which might (unnoticably) quantize very short notes to the same time position, making the MIDI file formally polyphonic. Carefully check!
  • The tools require MIDIs with metrical signature information included. So make sure to provide some signature information, possible dummy ones (but then better do not use features based on metrical information).
  • Currently, the MeloSpySuite and MeloSpyGUI tools are not able to handle odd meters of the form N/8 in MIDI files. However, odd meters with a quarter note or higher denominator such as 7/4, 11/2 are processed fine (this might offer a work around!)

What kind of features can I reasonably use with my data?

If you happen to have your own melodic data without any further annotations such as chords, keys, phrases, metadata etc., this means that you can only use a certain subset of the pre-defined features. Moreover, for typical applications, only scalar features are a reasonable choice, scalar features being the ones which provide exactly one single number (oder value) for a melody. (There is a button for selecting scalar features in MeloSpyGUI, but this selects all avaiblable scalar features, including those mentioned before, which are not applicable for you data. But here is a set of minimal features which require only the most basic information, and which should hence work with all MIDIs (since MeloSpySuite v1.2 and MeloSpyGUI v0.3)|:

features:
 - PC_FEATURES
 - PITCH_FEATURES
 - INT_FEATURES
 - INTCLASS_FEATURES
 - FUZZYINT_FEATURES
 - PARSON_FEATURES
 - DURCLASS_FEATURES
 - IOICLASS_FEATURES
 - DURCLASS_RUNLENGTH
 - MCM_FEATURES
 - GENERAL_EVENT_DENSITY: event_density, metrical_event_density
 - INT_CHROMATIC_SEQUENCES_AV_LEN
 - INT_CHROMATIC_SEQUENCES_RATIO
 - VI_IOI
 - VI_DUR
 - PARSON_CONST_DIRECTION_AV_LEN
 - PARSON_UP_DOWN_RATIO
 - PITCH_WAVINESS: extrema_ratio
 - INT_2GRAMS: int_bigram_entropy, int_bigram_entropy_norm
 - FUZZYINT_2GRAMS: fuzzyint_bigram_entropy, fuzzyint_bigram_entropy_norm
 - INTCLASS_2GRAMS: ic_bigram_entropy, ic_bigram_entropy_norm
 - IOICLASS_2GRAMS: ioiclass_bigram_entropy, ioiclass_bigram_entropy_norm
 - DURCLASS_2GRAMS: durclass_bigram_entropy, durclass_bigram_entropy_norm
 - PARSON_2GRAMS: parsons_bigram_entropy, parsons_bigram_entropy_norm
 - PC_2GRAMS: pc_bigram_entropy, pc_bigram_entropy_norm
 - PITCH_2GRAMS: pitch_bigram_entropy, pitch_bigram_entropy_norm
 - ARPEGGIOS
 - STEP_SEQUENCES

I’m getting the error “ValueError: unknown locale: UTF-8” after running the MeloSpySuite GUI on MacOSX”

Add the two lines:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

to your ~/.bash_profile as follows.

Open the terminal application on your Mac, e.g. by pressing cmd + space and typing “Terminal”. Then enter:

open /Users/[USERNAME]/.bash_profile

replace [USERNAME] by your user name, if you don’t know it, type:

id -un

in the terminal. This opens a text editor. Just add the two lines above and restart your system. Now the GUI should work like a charm.