Music Monitor and Analyser


Program written in Rust to monitor music listening habbits and creates graphical visualisations of the data collected.

Supported music players



./music_monitor <path to CSV you want to log to>

e.g. ./music_monitor ~/new.csv

Analyser and visualiser

./music_monitor <path to CSV where your logged data is> -d <analysis of choice>

Analysis available to chose from

Most played:

-s : Song’s

-b : Band’s

-a : Album’s

-g : Genre’s

-l : Song length’s

-y : Year’s

-d : Date’s

-all : All of the above

e.g. ./music_monitor ~/new.csv -d -y



Compiling from source


  • cargo


cargo build --release

The loggging program is intended and designed to be run in the background on boot.


<Title>, <Artist>, <Album>, <Genre>, <Song Length>, <Track number>, <Year>, <Play date>, <Play time>, <Volume>

When a tag is not found, then nothing is added except “,”, meaning that the columns are always the same for each field.

Previous versions

Music Monitor is a derivative of some previous programs I have written. However I have re-written them in Rust for music monitor to ensure it is pure Rust.

Including a shell music monitor here.

And a music log analyser written in python here.


Each music player needs unique support for logging.

The analysis and visualiser will work on and .csv following the above described format.

Supported Music Players:

  • Cmus

Currently only CMUS is supported.

I would greatly appreciate help adding support for logging with other music players.

This is only a matter of adding a few vairables, but I don’t use any other music player but cmus, so cannot do any extensive testing.

Ben Armstead
Ben Armstead
Computer Science Undergraduate (Lancaster University)

I enjoy free software programming and learning about Linux.