DESOSA 2022

Quodlibet

Logo

Quod Libet is a GTK+ based audio player written in Python. Compared to other players, Quod Libet places a special focus on tagging capabilities and scalability to very large music collections. Its well-documented development processes have helped it accumulate a large pool of active contributors. The software is feature-rich, and has a flourishing plugin ecosystem.

This is made possible by the well-thought-out, modular structure of the project. Python is often relegated to smaller projects and simple scripts, but Quod Libet is a good demonstration of how the language can be applied to build larger programs without sacrificing usability and performance.

Authors

Richard Prihradský

Master Student Computer Science who enjoys working with open source software.

Nienke Eijsvogel

Master student Computer Science. Experience in data analysis and machine learning.

Lorenzo Albani

Master student Embedded Systems with a background in Computer Engineering.

Jackson Campolattaro

Masters student studying Computer Engineering, with a passion for open source software.

Quod Libet: Scalability

Introduction Scalability is an important quality attribute for many software projects, sometimes it can even be a direct prerequisite for success. With this in mind, what does scalability mean for the Quod Libet project? Unlike some, Quod Libet will scale to libraries with tens of thousands of songs. 1 Quod Libet markets itself on its scalability, specifically promoting its suitability for massive music collections. It makes sense for us to evaluate Quod Libet’s scalability along the same axis it evaluates itself, so this article will focus primarily on how the program scales to very large music collections.

Quality and Evolution

Introduction The Quod Libet project has been under development since 2004 1. Over nearly two decades, the project has evolved significantly. The project has developed processes which help it satisfy its most important quality attributes, but it has also accumulated technical debt which can make it difficult to satisfy others. Satisfaction of Quality Attributes Quod Libet has placed a strong focus on certain quality attributes, such as performance, maintainability, and modularity.

Quod Libet: From Vision to Architecture

Introduction In this post, we look at Quod Libet’s architecture and how it achieves its goals. First, we examine the project’s architectural style and the forces that have guided it. Next, we show the structure of the program’s Containers, Components, and Connectors. Finally, we explain what the program’s structure means for Quod Libet’s development and Runtime, and how it has helped the project achieve its quality attributes. Architectural Style Quod Libet is generally structured as a typical GTK application.

Quod Libet: Product Vision & Problem Analysis

Introduction The Quod Libet project aims to create an audio player that puts users in control of how their content is organized 1. The project is built in Python and based on the Mutagen music tagging library 2. It places a special focus on being feature-rich and customizable through plugins, and has an architecture which is designed to scale to extremely large music libraries. Ex Falso is a related piece of software produced as part of the Quod Libet project.

Contributions