Release of Music Processing Suite 1.5.1

Music Processing Suite 1.5.1 was released on September 22, 2019.

New Features and Enhancements:

  • Charts / plots / graphs displayed in the analysis results view can now be exported as .jpg, .png and .bmp images
  • Added option to enable/disable implicit harmony analysis (derives harmonies from simultaneously audible pitches)
  • Added new harmony-related extraction features:
    • Simplified Harmony Distribution
    • Harmony Duration Distribution
    • Harmony Distribution Dependent on Beat
    • Harmony Distribution Dependent on Duration
    • Simplified Implicit Harmony Distribution
    • Implicit Harmony Change Beat Distribution
    • Implicit Harmony Duration Distribution
    • Implicit Harmony Circle of Fifths Distance Distribution
    • Implicit Harmony Distribution Dependent on Duration
    • Simplified Implicit Harmony Distribution Dependent on Duration
  • Harmony plot axes are now sorted according to the circle of fifths, both in the MPS UI and PDF analysis reports
  • Added export of note/rest/measure count analysis data
  • Added export of instrument-related analysis data
  • Improved capitalization of analysis result folder, report folder and report file name.
  • Progress view is automatically opened for potentially long-running jobs
  • Added documentation for analysis results browser view
  • Added overview table for all available analysis features in the documentation
  • Added documentation for algorithmic composition and crossover features
  • Improved documentation for run configurations in general
  • Improved Context-sensitive search UI labels


  • Several issues regarding harmony plots were fixed. The harmony to axis position mapping was enhanced.
  • Analysis result view in MPS can now generate plots even if CSV file data is escaped for LaTeX processing
  • Score option “Omit Short Instrument Names” only worked for non-percussion instruments, this now affects percussion staves as well
  • Added automatic adjustment of short-indent in LilyPond files if short instruments name overflow pages
  • Fixed a problem regarding measure alignment in context layer models
  • Fixed NullPointerException when merging implicit harmony data in case implicit harmony analysis is disabled
  • Fitness function configurations were not found when running an evolutionary composition for the first time. The related resource refresh problem was fixed.


  • The capitalization of folder and file names was adjusted for analysis result folders (*_Analysis) and analysis report folders/files (*_Analysis_Report). If you have existing anylsis folders containing _analysis or _report and re-run analysis jobs, an error will occur because Eclipse resource names are not case-sensitive. In this case, you have to either rename your resource names to _Analysis and/or _Report, respectively, or delete the existing folders before you run the analysis or report generation again.

Release of Music Processing Suite 1.5.0

Music Processing Suite 1.5.0 was released on July 18, 2019.

New Features and Enhancements:

  • This release adds an experimental user interface for an evolutionary algorithm which is capable of generating musical material according to certain statistical criteria. It is also possible to combine (cross) several compositions using this algorithm.
  • Added a new view to browse and visualize musical analysis results directly in MPS
  • Added option to escape the contents of analysis CSV files for LaTeX processing
  • When rendering context tree model representations, the .pdf file is opened instead of the .dot file
  • When launching context-sensitive coprus search, the launch configuration dialog is opened if no corpus location is specified
  • Improved internal analysis feature management infrastructure


  • Fixed ClassNotFoundExceptions relating to MusicXML serialization/deserialization when running with Java 9+
  • Fixed IllegalArgumentException when deriving degrees


  • The file names for analysis results have changed. You have to rename your existing result files or re-generate your analysis results in order to use the new analysis results view and to generate analysis report PDFs.

Release of Music Processing Suite 1.4.0

Music Processing Suite 1.4.0 was released on May 28, 2019.

New Features and Enhancements:

  • Ugraded Eclipse base platform to 2019-03 (4.11)
  • Implemented support for tranposing instruments, which are automatically transposed correctly in generated scores. Non-transposing variants are still available for most instruments.
  • Added octave transpositions for the following instruments:
    • Piccolo
    • (Soprano) Recorder
    • Acoustic Guitar
    • Acoustic Steel Guitar
    • Electric Jazz Guitar
    • Electric Guitar
    • Muted Electric Guitar
    • Overdriven Electric Guitar
    • Distorted Electric Guitar
  • Added new instrument definitions:
    • Garklein Recorder
    • Sopranino Recorder
    • Alto Recorder
    • Tenor Recorder
    • Bass Recorder
    • Great Bass Recorder
    • Contrabass Recorder
    • Sub-Great Bass Recorder
    • Sub-Contrabass Recorder
    • Soprano Saxophone in Bb
    • Alto Saxophone in Eb
    • Tenor Saxophone in Bb
    • Baritone Saxophone in Eb
    • Clarinet in Bb
    • Clarinet in A
    • Clarinet in Eb
    • Bass Clarinet
    • Bass Clarient in Bb
    • Contrabassoon
    • Trumpet in D
    • Trumpet in Bb
    • English Horn in F
    • Horn (synonym to Frensh Horn)
    • Horn in F
    • Celesta
    • Glockenspiel
    • Xylophone
    • Ukulele
    • Euphonium
    • Soprano Vocals
    • Mezzo-Soprano Vocals
    • Alto Vocals
    • Tenor Vocals
    • Baritone Vocals
    • Bass Vocals
  • Added default octaves and default clefs for cello and double bass
  • Added documentation for transposing instruments
  • Improved typesetting for instrument names in scores containing special characters (like the flat in Bb)
  • Added option to show/hide short instrument names in scores
  • Scores and analysis reports are now opened automatically after compilation
  • New splash screen

Incompatible changes:

  • Instrument definition parameter lilyPondInstrumentName was renamed to the more generic midiInstrumentName. If you define custom instruments using this parameter, these must be changed accordingly.


  • Chords can now be used in conjunction with tied rhythms, in which case all chord notes are tied to the next note
  • Pitches, degrees and syllables used in conjuction with tied notes are now extended correctly
  • Fixed overflowing instrument names in scores
  • Fixed IllegalStateException during MC2L validation of incomplete fragment references
  • Fixed NullPointerException during MC2L validation of incomplete note durations
  • Minor documentation formatting fixes

Release of Music Processing Suite 1.3.0

Music Processing Suite 1.3.0 was released on March 9, 2019.

New Features and Enhancements:

  • Upgraded underlying Eclipse platform to 2018-12 (4.10)
  • Added the keyword recursive for modifiers. If used, the modifiers are also applied to matching contexts below the modifier as opposed to the next matching context above the modifier.
  • Added all dependencies to update site, which makes installations into existing Eclipse instances easier. Installations should now be possible using the MPS update site (and the official update site of the host Eclipse, which is activated by default) only.
  • Upgraded JavaOSC to 0.5

Release of Music Processing Suite 1.2.3

Music Processing Suite 1.2.3 was released on March 2, 2019.


  • Fixed invocation of Batik SVG library which potentially led to ClassNotFoundExceptions , NoClassDefFoundErrors or LinkageErrors depending on the Batik version
  • Fixed threading issue which potentially caused deadlocks when errors occurred while writing Eclipse resources

Release of Music Processing Suite 1.2.2

Music Processing Suite 1.2.2 was released on February 26, 2019.

New Features and Enhancements:

  • The music model now supports two independent scale degree layers: degrees relative to the key and degrees relative to the local harmony.


  • Updated dependencies in order to populate MPS update site properly

Release of Music Processing Suite 1.2.1

Music Processing Suite 1.2.1 was released on February 22, 2019.

New Features and Enhancements:

  • Analysis reports now contain tables with relative frequencies of words and syllables used in the lyrics of the analyzed piece


  • Pitches with more than one accidental (e.g. Bbb, Ebb, Abb) are now correctly serialized to LilyPond
  • Improved handling of empty compositions
  • Repeats are now correctly expanded in MusicXML (if corresponding expand option is activated in the preferences)
  • Improved robustness of MusicXML parser if (erroneous) files initiate a word with a syllable marked as MIDDLE instead of BEGIN
  • Fixed rendering of upbeats when converting MusicXML files to scores

Music Processing Suite Development Visualization

The following video visualizes the development of MPS from June 2013 to December 2018. I presented it at my PhD disputation and since it is quite entertaining, I decided to share it on the website as well. Enjoy, merry christmas and all the best for 2019 🙂

Release of Music Processing Suite 1.2.0

Music Processing Suite 1.2.0 was released on October 26, 2018.

New Features and Enhancements:

  • Updated underlying Eclipse platform to 4.7 (Oxygen)
  • Optimized model compression algorithm in deriver
  • Derived models now contain time signatures, intrument contexts and keys
  • Added algorithm which derives scale degrees relative to the key
  • Added option to enable degrees relative to the key
  • Added configuration parameter for context layer model scaling
  • Added documentation for visualization options
  • Improved path presentations is search result view
  • Improved piano roll plots in analysis reports
  • Columns in aggregated plots are now sorted in analysis reports
  • Added support for half-diminished and diminished seventh chords
  • Improved colors in 3D plots
  • Made documentation and user interface consistent regarding the term “context layer model”
  • Documentation now has table of contents
  • MPS now includes the Eclipse Marketplace Client


  • Resolved bugs when resolving fragment references with additional child nodes
  • Fixed ClassCastException that occurred when deriving compressed rhythm representations contained in modifiers
  • Fixed bug resulting in inconsistent tempo specifications when reading MIDI files
  • Fixed inconsistent measure boundaries which occurred when voice begins with rest
  • Fixed issue in which measures with the same boundaries were created twice
  • Fixed TeX capacity exceeded error when generating analysis reports
  • Fixed unicode handling in analysis reports
  • Empty circle of fifth plots in analysis reports are now skipped
  • Fixed export of missing key-related data during analysis
  • Analysis log files are now created correctly (were empty sometimes)
  • Fixed LilyPond export for maj9 chords
  • Octave translation problem when using pitch modifiers was solved
  • Fixed octave translation problem for transposed instruments
  • Tied notes are exported correctly now
  • Fixed problem regarding quotes in metadata fields (such as title, composer etc.)
  • Lyric syllables are now handled correctly after tied notes
  • Harmony stream is only filled if harmonies are explicitly specified
  • Prevent NullPointerException if score geneneration is launched but file does not exist anymore
  • Fixed loudness handling for chords when exporting scores

Release of Music Processing Suite 1.1.0

Music Processing Suite 1.1.0 was released on April 8, 2018.

New Features:

  • Configuration for score generation is now managed for each input file individually in launch configurations
  • Improved support for chord symbols in MusicXML files
  • Score compiler automatically detects if two piano staves are used and produces a suitable piano staff layout
  • Added score generation option to omit instrument names at the left hand side of the staves
  • Added option to export analysis log files
  • Added option to export analysis results for each file when analyzing multiple compositions
  • Improved documentation and screenshots for configuring analysis, score generation, LaTeX and GraphViz


  • Fixed pitch resolution logics relative to harmonic context
  • Fixed serialization issues when writing to the same file more than once
  • Internal optimizations of harmony and key analysis, fixes a problem where harmonic progression data was not exported when performing global analysis
  • Fixed a bug in SuperCollider compiler which sometimes caused the tempo to become zero
  • Fixed NullPointerExceptions when evaluating configuration options
  • Fixed various Exceptions in analysis code in corner cases
  • Fixed NullArgumentException when analyzing lyrics which occurred if words are not terminated correctly in MusicXML files
  • Include MIDI files when scanning corpus contents recursively (before, only MusicXML files were taken into account)
  • Improved String representations of model elements, added missing information to harmony representations