OMG is a sophisticated music manager that helps you to organize, browse and play your digital music collection. It is aimed at music enthusiasts who are willing to put some effort into the maintanance of a cleanly structured collection. OMG tries to present large amounts of music as clearly laid out as possible, especially if parts of the collection inherently resist the usual structure given by genre/artist/album or something similar. The most prevalent scenario is when you have both a lot of classical and “modern” music which both have their own needs when it comes to a structural representation. OMG features a clutch of unique concepts that help to overcome such obstacles.

OMG is under heavy development. Version OMG 0.3 has been released on January 6, 2013 and is the first release suitable for non-developers. There is no documentation available except developer documentation of some fundamental modules, code documentation, and of course this wiki. Here's a screenshot


Open a terminal and type

sudo pip3 install omg

If you do not have pip installed, use

sudo easy_install3 omg

instead. Be sure that you have the necessary requirements on your system.


  • 2013-01-13: OMG 0.3.1 has been released. This version fixes several bugs found in version 0.3. but does not introduce new features.
  • 2013-01-06: OMG 0.3 is released and can be downloaded here!
  • 2012-06-13: Started a Screenshots page for showing specific features of OMG
  • 2012-04-13: This site was down for about half a day due to a server upgrade. Sorry for that, in case anybody noticed. :)
  • 2012-03-23: After the kick-off meeting for OMG 0.3 took place, the new Element/Wrapper? implementation has begun (see Changes in version 0.3). As a consequence, current git master is barely functional.
  • 2012-03-18: OMG 0.2 is released and can be downloaded here! OMG 0.2 is usable (in fact, both developers use it as their main music player now) and already exhibits some unique features, but don't expect too much. It's still a very early proof of concept piece of software, full of bugs and lacking any documentation! :-)
  • 2012-03-17: our patch for taglib has finally made it into the official taglib branch and will be included in taglib-1.8! That means, one less dependency for OMG as soon as distribution packages for taglib-1.8 are available.

Design principles

  • unrestricted tag support:
    • Support arbitrary tags (Screenshot) (not just the usual artist, album, genre and so on), as long as the file type supports it. See FormatSupport for details.
    • Support multiple values for the same tag, e.g. four artists of a string quartet, multiple genres, … (Screenshot)
    • Tell about fancy tags that were added by proprietary and/or buggy software, give the ability to remove them
  • Containers: structuring music beyond albums
    • OMG uses containers to organize music
    • Containers can be thought of as a generalization of albums
    • A container has tags and contains audio files or other containers (Screenshot)
    • A file / container may belong to more than one parent container (Screenshot)
    • Examples:
      • A live album by a classical pianist contains several standalone pieces as well as a sonata consisting of three movements.
      • A collection of all of Beethoven's symphonies could be a container with sub-containers for each single symphony
      • The same song might be contained in the studio album it first appeared in as well as a best-of album
  • Advanced concepts to classify, browse and search large collections
    • Private tags: you can create private (or personal) tags which are not meant to be stored into the file metadata but help you organize your collection. Examples of use:
      • you could store the date of purchase, which allows you to e.g. browse which music you bought during the last year.
      • you can assign personal comments or ratings to pieces of music
    • Flags: Flags behave like private tags but don't have a value, i.e. they are just either set or not. Example common flags might include favourite, have it in my shelf, downloaded, should listen to more often, …
    • Suppress certain tag values: If e.g. your list of artists is full of names unknown to you, because they appear on samplers, classical recordings, etc., you can choose to hide specific values in the browsers. They will then be displayed under a special hidden node such that they don't bother you but still are findable. (Screenshot)

We have realized that metadata contained in the files alone is not sufficient to achieve this goals. Therefore, OMG utilizes a database (sqlite or MySQL) to reflect the structural relations between the files and containers as well as tags, flags and other advanced information. The Database page contains detailed information about how the design goals are realized by the database layout.

What OMG is not

OMG is not a program to "just play back that one file someone sent you by email". Also, it does not magically clean up a cluttered mess of audio files for you – though it helps you in doing so, in case you are willing to tidy up.

Features and Goals

An assorted list of features of OMG (see Screenshots for more)

  • easy extension via Plugins
  • unilimited undo & redo of most actions (includes changing file metadata)
  • fully configurable GUI layout: GUI elements (browsers, playlists, playback controls, …) can be placed and added arbitrarily
  • support of different audio playback backends via plugins (direct local output, MPD, amarok, …)
  • keeps track of files if they are renamed, moved, or modified, even while OMG is not running



  • Python >=3.2
  • Qt4 and the bindings PyQt4 built for python3 (package python3-pyqt4 in debian/ubuntu, pyqt on arch, python3-PyQt4 in fedora)
  • most probably phonon (python3-pyqt4.phonon in debian/ubuntu, phonon in arch), unless you want to use MPD for playback only
  • pyparsing for python3



Get the Code

The code can be obtained via the git protocol:

git clone git://

Note that at the moment you're pretty much on your own if you try to get things running.


OMG is copyright of Martin Altmayer and Michael Helmling and licensed under the GPL version 3.

Related Projects

  • pytaglib, python2.x/3.x bindings for taglib, providing a unified, dictionary-based tag interface

Comparable Applications

We are not aware of any program, commercial or free, following the same approach as OMG when it comes to manual organization and unlimited tag support. However, there are interesting projects which are somewhat similar. Here's a random list:


OMG uses icons from the following software / free icon sets:

Last modified 17 months ago Last modified on Aug 3, 2013 2:39:40 PM

Attachments (1)

Download all attachments as: .zip