you need python and the lxml library
you can use the -h
/--help
argument with every tool for help
the tools will take care of the compression depending on the output file extension
Compress or uncompress a file. compressed project files use the .mmpz
extension and uncompressed ones use .mmp
python compressor.py -i file.mmpz -u -o file.mmp
colorize tracks/fx channels with a gradient.
python colorize.py -i file.mmpz -c '#000000 #ffffff' --overwrite
extract the effects from tracks with effects to an fx channel
python extract_fx.py -i file.mmpz -o file2.mmpz
change the height of the tracks
python height.py -i file.mmpz -ht 64 --overwrite
find a chord name from it's notes
python chord_finder.py f g# c e d
Fm-Maj7add13
E7#5b9
Dm9b5
extract ghost notes as a midi clip
python ghost.py -i file.mmpz -o file.xptz
clean project files from unnecessary xml tags. this won't "optimize" the project but it will make it easier to read when editing with a text editor.
it will remove the lmms version, global automation, project notes, scales and keymaps, notes type and pan (if set to 0), midicontrollers (if set to 0/unused), ghost notes and marked semitones/scales. some of those can be disabled by adding arguments to the command. (run python cleaner.py -h
)
python cleaner.py -i file.mmpz -o file2.mmpz --notes
(the above command won't remove the project notes because of the --notes
argument)
fix the pitch of a slicerT instrument (that has BPM sync enabled and the Granular pitch shifter
effect) when automating the tempo by automating the pitch shifting to the opposite of the pitch change when the sample speed is changing using this equation:
python pitch_fixer.py -i file.mmpz -o file2.mmpz