@axelberndt axelberndt released this Aug 20, 2018 · 2 commits to master since this release

Assets 3

v0.5.2

  • XSLT 3.0 support
    • So far, XSL transform functions of meico did support only XSLT 1.0 and 2.0. In some Java versions also 3.0 stylesheets worked but not in general. This issue has been solved.
    • Update Saxon to version 9.8.0.14 HE.
    • Due to signature issues the files TE-050AC.RSA and TE-050AC.SF had to be removed from the META-INF folder of saxon9he.jar.
    • In class meico.mei.Helper all XSLTransform processing methods have been redone and new ones have been added in order to overcome the afformentioned issues. XOM and Java were accessing Saxon's old transformer functionality only which does not support XSLT 3.0. The reworked versions access Saxon directly now and use its Xslt30Transformer for all stylesheets. Classes meico.mei.Mei, meico.msm.Msm, meico.app.gui.XSLTransform, meico.app.gui.Workspace, and meico.app.gui.DataObject have beed adapted accordingly.
    • Some further optimizations to XSL transforms have been implemented, esp. in classes meico.app.gui.Settings and meico.app.gui.DataObject.
  • Added a custom meico icon to the window titlebar. It replaces Java's default icon. This and further icon files have been added to resources/figures.
  • When closing objects in the workspace the garbage collector does not seem to free their allocated memory automatically. A call of System.gc() has been added to class meico.app.gui.Workspace method clearAll() to force the garbage collection.
  • When changing the settings for accordion animation and auto expansion of the player a restart is no longer necessary necessary.
  • Added method main() to class meico.app.gui.MeicoApp so it can be compiled and run as self-contained JavaFX application.

@axelberndt axelberndt released this Aug 13, 2018 · 12 commits to master since this release

Assets 3

v0.5.1

  • Bugfix: make logfile when checked in the settings.
  • If a file drop fails, the exception message is sent to the statuspanel.
  • The conversion option "Score Rendering" has been removed from MEI menu as long as Verovio integration is not yet functional.
  • Updated README.md.

@axelberndt axelberndt released this Aug 7, 2018 · 21 commits to master since this release

Assets 3

v0.5.0

  • New graphical user interface:
    • The new desktop application is located in package meico.app.gui in class MeicoApp.
    • Lots of new file formats are droppable. Here is an overview of all supported file extensions: .mei, .msm, .mid, .wav, .txt, .xsl, .sf2, .dls.
    • In addition to these import formats there are the following export formats that cannot be imported: .mp3, .json (encodes pitch/chroma information).
    • Radial menus provide access to all operations that can be applied to the different data types. As a convenience shortcut MIDI and audio playback can be triggered by doubleclick. Soundbanks and XSLTs can also be activated via doubleclick.
    • The following stuff has been deleted from the project as they are no longer required:
      • classe meico.app.MeicoApp has been removed,
      • class meico.app.FileDrop has been removed,
      • the layout manager MigLayout has been removed from externals,
      • all the graphics from the old GUI have been removed from the resources/graphics folder.
    • Font Awesome has been added.
    • Meico uses the default system font. Layouting reacts on different font measurements.
    • Added keyboard input to trigger playback: SPACE (does not work on all systems), ENTER and the play/pause key (one of the extra media keys on some keyboards).
    • All operations are now processed in seperate threads. This prevents interface freezing and allows to run several operations in parallel. While an operation is processed, a "computing/please wait" animation is shown on the corresponding data item.
    • A separate window offers some preferences settings to customize meico a little bit and preload certain soundbanks and XSLTs. However, most of the settings will become active only after restarting meico. All settings are stored in a file meico.cfg when closing meico and restored at the next startup. The file will be generated if not yet existent.
  • Class meico.Meico got two new static methods launch() and launch(String windowTitle, String logFileName). Applications can conveniently launch meico's graphical user interface by calling one of these methods, e.g. Meico.launch() or Meico.launch("My window title").
  • Some revisions to classes meico.midi.MidiPlayer and meico.audio.AudioPlayer to ensure data integrity and correct feedback on method call isPlaying() (esp. in AudioPlayer). Class MidiPlayer got also two further getter methods getMicrosecondLength() and getTickLength().
  • The output of method meico.mei.Mei.validate() has been changed from boolean to String. Now it returns the whole validation report. To get a boolean call validate() and then isValid().
  • Added lots of synchronizeds so that meico should run more stable in multithreaded environments.
  • Up to now, the MEI data was altered during conversion rendering it invalid. It has no use except for debugging purposes. We now ensured, that the original version is reset in method meico.mei.Mei.exportMsm(int ppq, boolean dontUseChannel10, boolean ignoreExpansions, boolean cleanup) after the conversion process. The altered version is kept only if attribute cleanup is set false (debug mode).
  • XOM library has been updated to version 1.2.11.
  • Known issue: Loading XSLTs does not work on several Java versions. The issue seems to originate from the XOM library. In tests with Java 1.8.0_172 everything works fine. So at the moment this is the recommended Java version for running meico, at least regarding the use of XSLTs. everything else works alo in later versions.

@axelberndt axelberndt released this Jul 19, 2018 · 22 commits to master since this release

Assets 3

v0.4.0

  • Added NullPointerException to audio rendering Exception handling in meico.app.MeicoApp, subclass Midi4Gui.
  • MIDI playback overhaul
  • Audio playback overhaul
  • Added method exportAudio(URL soundbankUrl) to class meico.midi.Midi so that soundbanks do not have to local files or URLs have to be decoded to files by the application.
  • Slight revisions to class meico.audio.Audio to ensure data integrity after MP3 conversion.
May 25, 2018
v0.3.8
- Added library JSON.simple v3.0.2
- Switched the output of class `meico.pitches.Pitches` to JSON format. The default output file extension will also be `.json` from now on.
- The whole data structure of pitch (and chroma) data has been revised. Some new classes have been added to package `meico.pitches`, namely `FeatureVector` and `FeatureElement`.
- To make the pitches data structure and output file as memory efficient as possible, the timing resolution is reduced to the minimum ppq necessary to preserve accurate rhythm and note durations. MSM's ppq remains unchanged!
- Previos function calls stay the same to ensure backwards compatibility. Hence, we do not increment the beta version number.
- New methods `getParts()`, `getPPQ()` and `getMinimalPPQ()` in class `meico.msm.MSM`.

@axelberndt axelberndt released this May 25, 2018 · 24 commits to master since this release

Assets 3

v0.3.8-rev

  • Added library JSON.simple v3.0.2
  • Switched the output of class meico.pitches.Pitches to JSON format. The default output file extension will also be .json from now on.
  • The whole data structure of pitch (and chroma) data has been revised. Some new classes have been added to package meico.pitches, namely FeatureVector and FeatureElement.
  • To make the pitches data structure and output file as memory efficient as possible, the timing resolution is reduced to the minimum ppq necessary to preserve accurate rhythm and note durations. MSM's ppq remains unchanged!
  • Previos function calls stay the same to ensure backwards compatibility. Hence, we do not increment the beta version number.
  • New methods getParts(), getPPQ() and getMinimalPPQ() in class meico.msm.MSM.
  • Refactoring errors from version 0.3.8 have been corrected.

@axelberndt axelberndt released this Apr 16, 2018 · 26 commits to master since this release

Assets 3

v0.3.7

  • Updated Saxon parser to version 9.8.0.11 HE.
  • Made the v0.3.6 fix a bit safer.

@axelberndt axelberndt released this Apr 16, 2018 · 27 commits to master since this release

Assets 3

v0.3.6

  • Fixed missing accid.ges support in meico.mei.Helper.computePitch() for preceding accid elements.

@axelberndt axelberndt released this Mar 9, 2018 · 28 commits to master since this release

Assets 3

v0.3.5

  • Another bugfix: processing of accid elements preceding to a note element has been fixed.
Mar 5, 2018
v0.3.4
- Little bugfix in `meico.mei.Mei.processAccid()`. In case of `note` elements with `accid` children that do not provite an `oloc` attribute, the `octave` is read from the `note`. Now it is done correct.