Releases: axelberndt/MPM-Toolbox
Releases · axelberndt/MPM-Toolbox
MPM Toolbox v0.1.17
v0.6.17
- Bugfix in method
mpmToolbox.gui.audio.TempoMapPanel.retrieveTempoMap()
.
MPM Toolbox v0.1.16
v0.1.16
- Addition to method
mpmToolbox.gui.score.ScoreDisplayPanel.paintComponent()
. Performance squares in the score will now contain a symbol indicating the type of the performance instruction. - Dragging a note in the piano roll is now only possible when it is an audio alignment. Performance renderings no longer allow note dragging but should be altered by performance instructions.
- The hop size parameter in the spectrogram specification dialog (class
mpmToolbox.gui.audio.utilities.SpectrogramSpecs
) should not have values greater than the window length. This is now ensured via an additional listener. - The spectrogram is now displayed with a horizontal offset of half the window length, so it aligns better with the waveform.
- Added another panel to the audio analysis tab, the tempomap panel.
- New classes were added,
mpmToolbox.gui.audio.TempoMapPanel
andmpmToolbox.gui.audio.utilities.CursorPositions
. - The tempomap panel visualizes its data on the symbolic time axis. Class
CursorPositions
does the corresponding conversions to place playback and mouse cursor in all panels at their correct position. - Further conversion methods have also been added to classes
mpmToolbox.projectData.alignment.Alignment
andmpmToolbox.projectData.alignment.Part
. ClassmpmToolbox.projectData.alignment.Note
is also slightly expanded. - The tempomap panel is not yet interactive, though.
- New classes were added,
MPM Toolbox v0.1.15
v0.1.15
- Bugfix in method
mpmToolbox.gui.mpmEditingTools.editorDialogs.DistributionEditor.switchDistributionTypeTo()
that crashed when attributeseed
was activated. - Meico update v0.8.37 solves issues with negative event timing from asynchrony and timing imprecision.
- The save file dialog in method
mpmToolbox.gui.MpmToolbox.saveProjectAs()
will now make sure that the project file will always have extension.mpr
. - Bugfix in constructor
mpmToolbox.projectData.score.Score.Score(@NotNull ProjectData project)
that ran into aNullPointerException
when loading a project with image data but no MPM data. - Bugfix in method
mpmToolbox.gui.mpmTree.MpmTree.gotoFirstMapEntryNode()
that caused an exception when the project's MPM contained no maps. - Added a note ID check to method
mpmToolbox.gui.mpmEditingTools.editorDialogs.ArticulationEditor.edit()
to ensure that, if an initial note ID is set before displaying the dialog, the ID is tinted correctly. - Added method
mpmToolbox.supplementary.Tools.uniformPath()
to handle differences in path separators on the different operating systems. - Added more parsing of ornamentation data for a proper display in the MPM tree widget. Ornamentation support has been added to class
mpmToolbox.gui.mpmEditingTools.MpmEditingTools
. New classesOrnamentEditor
andOrnamentDefEditor
have been added to packagempmToolbox.gui.mpmEditingTools.editDialogs
, not yet functional, though. - Little changes in method
mpmToolbox.gui.MpmToolbox.openProject()
. The "Close current project with or without saving?" dialog needed some adjustment.
MPM Toolbox v0.1.14
v0.1.14
- Meico update v0.8.36.
MPM Toolbox v0.1.13
v0.1.13
- Meico update to v0.8.35 with added support for MEI element
arpeg
for arpeggios and new MPM features for ornamentation. These, however, are not yet editable in MPM Toolbox. Full integration of MPM ornamentation features is pending. The update further contains a little enhancement in meico's MEI to MSM and MPM export, namely that IDs of MEIstaffDef
elements will recur in MSM and MPMpart
elements. - Enhancement in the constructor of class
mpmToolbox.projectData.score.Score
that parses a project file's XML to generate its data structure. Now it is able to handle occurrences of a note or performance instruction on multiple score pages.
MPM Toolbox v0.1.12
v0.1.12
- In the MPM tree, the context menus of
articulationStyles
,dynamicsStyles
andtempoStyles
have an additional option to create default styles. These serve as convenient starter styles to be further refined.
MPM Toolbox v0.1.11
v0.1.11
- New method
mpmToolbox.projectData.alignment.Alignment.getPart(Note note)
to retrieve the part that contains the given note. - Class
mpmToolbox.projectData.alignment.Note
has new getters for the MIDI tick date and duration, and MSM part. - New class
mpmToolbox.gui.audio.utilities.ArticulationMenu
that creates a submenu in the piano roll context menu to articulate a note.
MPM Toolbox v0.1.10
v0.1.10
- As of meico v0.8.33, audio export (WAV, MP3) will now use the currently loaded soundfont.
- The window icon will be displayed also in the title bar of dialog windows.
- The root element in MPR files was renamed to
mpmToolboxProject
(in methodmpmToolbox.projectData.ProjectData.saveProjectAs()
). This change is backward compatible, the oldmpmToolkitProject
will also work. - New method
mpmToolbox.gui.audio.PianoRollPanel.drawMouseCursor()
that simplifies code in the child classesSpectrogramPanel
andWaveformPanel
. - New method
getMillisecondsLength()
in classesmpmToolbox.projectData.alignment.Alignment
andPart
. Furthermore, an optimization has been applied to both classes to more quickly retrieve the last note sounding. - Added a playback position indicator to the audio visualizations.
- In method
mpmToolbox.projectData.alignment.Alignment.getExpressiveMsm()
some cleanup has been added to remove all maps but thescore
elements, as their contents are not affected by the alignment's timing and, after expressive MIDI export, appear at wrong positions. - The runtime performance of waveform image computation has been significantly increased by method
mpmToolbox.projectData.audio.Audio.convertWaveform2Image()
and its new helper classmpmToolbox.projectData.audio.PeakList
.
MPM Toolbox v0.1.9
v0.1.9
- Added a MIDI Master Volume slider to the SyncPlayer. It is relevant when audio recording and MIDI performance are played synchronously and the MIDI part is too loud. However, Master Volume Control is a MIDI SysEx message and not all devices support it. MPM Toolbox's default synthesizer, Gervill, fortunately does.
- Bugfix in method
mpmToolbox.gui.mpmEditingTools.CommentEditor.makeContentPanel()
. It was unable to query the font metrics for proper initialization. - All editing functionality in classes
mpmToolbox.gui.mpmEditingTools.MpmEditingTools
andmpmToolbox.gui.mpmEditingTools.PlaceAndCreateContextMenu
has been extended, so the piano roll visualization in the audio frame (classmpmToolbox.gui.audio.AudioDocumentData
) is kept up to date. - Audio-to-MSM alignments are initially scaled to fit the length of the audio. however, whenever the user edits the alignment, the initial scaling gets lost. Therefore, the last sounding note is now set fixed (pinned to its position after scaling).
- The notes in the piano roll are displayed with a slight alpha fade so that onsets are easier to see when subsequent notes of the same pitch are displayed.
- Enhancement in
mpmToolbox.projectData.alignment.Alignment
.- Method
updateTiming()
has been simplified and code was moved to methodupdateTimingTransformation()
as this functionality is also required aside from rendering. - The last step in method
updateTimingTransformation()
is a rather dull way to handle the timing after the last fixed note. The enhancement will now continue with the tempo from before the last fixed note. - New functionality in class
mpmToolbox.gui.audio.AudioDocumentData
andmpmToolbox.projectData.alignment.Alignment
, resp., to transform an alignment to anmeico.mpm.elements.Performance
and vice versa. - In the process of the aforementioned addition, corresponding new functionality has been added via methods
exportTiming()
andexportArticulation
. These transform the timing data of the alignment to an MPM tempo, asynchrony and articulation map.
- Method
MPM Toolbox v0.1.8
v0.1.8
- Meico update with new functionality to add a timing offset to
Midi
instances and improved audio waveform image rendering. - So far, the SyncPlayer (class
mpmToolbox.gui.syncPlayer.SyncPlayer
and its inner classPlaybackRunnable
) allowed only positive audio offsets. Now it can also handle negative offsets. Instead of adding the offset time to the audio data it will be removed from the MIDI sequence. - Spectrogram computation is put into new class
mpmToolbox.gui.audio.utilities.SpectrogramComputation
which visualizes the progress in a dialog with progress bar. The process of spectrogram computation is now done in a separate thread via aSwingWorker
derivative calledmpmToolbox.gui.audio.utilities.SpectrogramComputationWorker
that informs the progress bar and can be cancelled.