Skip to content
LuxonJP edited this page Jan 19, 2023 · 14 revisions

LMMS Packager manual

TLDR

$ lmms-pkg --help
Usage:
lmms-pkg --check  [--verbose] <file>
lmms-pkg --info   [--verbose] <file>
lmms-pkg --pack   [--no-zip] [--sf2] [--verbose] [--rsc-dirs <path/to/data>] --target <dir> <file>
lmms-pkg --unpack [--verbose] --target <dir> <file>

The LMMS package manager

Operations:
-c, --check      Check if the file is valid
-i, --info       Get information about the file
-p, --pack       Package the file
-u, --unpack     Unpack the package and import the project
-h, --help       Display the manual
--version        Get the version of the program

Options:
--target         (Mandatory for import and export) Set the destination directory
--no-zip         Do not compress the destination directory (Export)
--rsc_dirs       Provide directories where some missing external samples are located (Export)
--sf2            Include SoundFont2 files in the package at export (Export)
-v, --verbose    Verbose mode

Pack

A simple example

$ lmms-pkg --pack --target packaged-project/ my-project.mmp 
# or
$ lmms-pkg -p -t packaged-project/ my-project.mmp

It generates packaged-project.mmpk. You can manipulate it as a ZIP file.

SF2

By default, SF2 files are not exported, if you want your SoundFont file(s) to be exported, use --sf2.

$ lmms-pkg -p --sf2 --target packaged-project/ my-project.mmp

No Zip

You can decide to not compress the package directory by using --no-zip

$ lmms-pkg --pack --no-zip --target packaged-project/ my-project.mmp

Resource directory

Some of your samples may be located in a specific directory somewhere in the file system (for instance, LMMS_Data on Windows). You can tell the program to search for them into the directory with --rsc-dirs.

$ lmms-pkg -p --rsc-dirs /home/username/LMMS_Data/samples/ -t packaged-project/ my-project.mmp

On Windows, if your path contains spaces (for example D:/Program Files/LMMS_Data/samples) you have to specify the path in quotes like this:

$ lmms-pkg -p --rsc-dirs "D:/Program Files/LMMS_Data/samples" -t packaged-project/ my-project.mmp

What about .mmpz files?

If you provide a .mmpz file, the program decompresses it into the .mmp file in the package by running lmms -d inputfile.mmpz > output.mmp. This should work if LMMS is installed properly. By "properly", I mean the directory that contains the file is in the $PATH variable. However, if you are using a development version that is not in the $PATH, or if you are using Windows, you may want to specify the path of the program with --lmms-exe.

$ lmms-pkg -p --lmms-exe path/to/lmms -t packaged-project/ my-project.mmp

On Windows, if your LMMS executable is in a path that contains spaces ("Program Files"), the program fails.

$ lmms-pkg -p --lmms-exe "D:/Program\ Files/LMMS/lmms.exe" -t packaged-project/ my-project.mmp # Failure

Getting the path between quotes is not enough in this case, because the space is considered as a separator between arguments. In order to fix that, you have to escape those spaces with this:

$ lmms-pkg -p --lmms-exe "D:/Program\" \"Files/LMMS/lmms.exe" -t packaged-project/ my-project.mmp

or this

$ lmms-pkg -p --lmms-exe "\"D:/Program\" \"Files/LMMS/lmms.exe\"" -t packaged-project/ my-project.mmp

Unpack

It is very simple

$ lmms-pkg --unpack -t imported-project/ my-package.mmpk
# or
$ lmms-pkg -u imported-project/ my-package.mmpk

It decompresses it into import-directory/. The package contains:

  • the project file (.mmp)
  • the samples
  • the soundfont files (SF2) if any

LMMS Packager sets the proper paths to the sample/SF2 files during the import so you can get the project configured and ready to be used.

Check

Sometimes, you want to check if the package is valid.

$ lmms-pkg --check my-package.mmpk

It is more or less what you do with zip:

$ zip -T my-package.mmpk

but with extra checking. It checks if the compressed project file is valid and if the resources/ directory exists.

Info

You can get information about a package.

$ lmms-pkg --info my-package.mmpk

It displays information about the project (name, version, time signature, BPM) and lists every samples contained in the package.

Other things

  • The program will not export a project in a directory that contains existing files.
  • The program does not export VST plugins files. So if you import a project that uses VST instruments plugins, it is normal to have error messages due to missing plugins.
  • If the project you want to export does not use external files, the .mmpk file is not generated.