Lomse: A music score renderization/edition library

Lomse is a project designed to provide software developers with a library to add capabilities to any program for rendering, editing and playing back music scores. It is written in C++ and it is free open source and platform independent. It is based on the experience gained developing the Phonascus program. Lomse stands for "LenMus Open Music Score Edition Library".

Lomse library hopes to boundle all stuff needed for rendering, editing and playing back scores, and to be simple enough for newbie programmers but sophisticated enough to create great applications for musicians. Let me know what you are doing with Lomse!

Although Lomse now exists for some time ago there is no "1.0" version yet. This does not mean that the library is particularly un-stable or not yet usable. But it does mean that it is still in alpha stage, implying that some features have yet limited functionality and that the features set is not yet complete. Also the API could still suffer modifications. Therefore, the Lomse library is recommended only for evaluation, for testing purposes or for very simple applications. Unless you would like to help for developping it faster!

It is permissive free open software

Lomse is distributed under the BSD 2-clause license, a permissive open source license to allow Lomse to be used in any projects, whether open source or proprietary. The BSD 2-clause license is recognized by the OSI. The Free Software Foundation (FSF) recognizes it as a GPL compatible license., so you can use Lomse in GPL licensed projects.

It is platform independent

Lomse does not include any system dependent code or platform specific .h files such as "windows.h" or "X11.h", so for compilation, the library does not depend on any platform.

All makefiles are generated by CMake tool. This implies that you can generate native makefiles and workspaces that can be used in your favorite platform and tool/IDE. For several platforms, such as Debian Linux, CMake is available as a standard package. For most other platforms, including UNIX, Mac OS X and Microsoft Windows, CMake binaries can be downloaded from the CMake Web site.

For some parts, such as using threads, Lomse relies on well known cross-platform libraries. This implies that, for compilation, the headers of these libraries must be accessible. In particular, Lomse uses the following libraries:

  • boost - For threads, date-time functions and smart pointers.
  • FreeType2 - For font management.
  • zlib - For reading compressed files.
  • libpng - For decoding png images.
  • UnitTest++ - For running unit tests.

In most platforms, these libraries are by default included in the system. Therefore, you usually do not have to install additional software to build and use Lomse.

Tutorials and documentation

  • Installation guide - Detailed instructions to build and install Lomse.
  • Tutorials - Hands-on introduction and examples to using Lomse.
  • Hacking guide - Details on the design and implementation of the Lomse library.

For more information, please visit the documentation page.


Lomse is a free open source project and contributions are welcome. Get involved in making it better! Any code submission must be under the terms of the BSD 2-clause license.

Last updated: 2016/01/01