Skip to main content

musiscape

CI docs PyPI version Python License: MIT DOI

musiscape is a Python toolbox that analyses a folder tree of music as a collection: albums, similarity, outliers, categories. Point it at a folder of audio files—each subfolder counts as an album—and it renders figures, tables and thumbnails that let you compare many tracks at a glance.

Install

pip install musiscape

Quickstart

musiscape report ~/Music/my-collection

One command runs the whole pipeline and writes analysis/README.md next to your music: an album table, a similarity landscape, self-explaining categories, and the corpus extremes.

Per-album fingerprint bars from a synthetic demo collection

Commands

Command What it does
probe list albums and tracks, no analysis
extract per-track features, cached in features.json
fingerprint per-album profile bars
landscape PCA similarity map and album-affinity matrix
categorize k-means categories with named signatures
report everything above, gathered into analysis/README.md
thumbnails one visual card per track (--style, seventeen styles)
poster the whole collection as one image (--style vinyl for discs)
sonic a ~12-second audio summary per track, plus album medleys
segment finds the songs in a concert recording and writes one file per song
figures labelled chromagram and tempogram per track, at any pixel width
pdf one PDF: a summary table, then a page of figures per track

A live recording is not a collection until it is cut into songs, which is what segment is for (video files included — concerts usually arrive as video):

musiscape segment ~/video/concert -o ~/video/concert/analysis
musiscape report  ~/video/concert/analysis/songs

Common options: -o sets the output folder (default <root>/analysis), --workers N parallelises, --duration S analyses only the first S seconds per track, and -k fixes the number of categories.

Learn more

  • Documentation—guides, an illustrated gallery of the visualisation styles, and the API reference
  • Wiki—methodology notes and a case study

The toolbox is meant for quick visualisations and overviews. Combine it with listening.

Related toolboxes

These toolboxes come out of the fourMs lab at the University of Oslo. They are separate packages with separate release cycles, but they are built to be used together and share several implementations, so a measure computed in one agrees with the same measure computed in another.

  • Musical Gestures Toolbox (musicalgestures)—video and audio: motiongrams, videograms, and motion analysis from ordinary video files
  • ambiscape—soundscapes: the sonic ambience of a place; musiscape reuses its circular statistics and Schaeffer typology machinery
  • micromotion—human micromotion: quantity of motion from optical markers, accelerometers, respiration belts and force plates

Licence and credit

MIT licence. musiscape is developed as part of the AMBIENT project at RITMO Centre for Interdisciplinary Studies in Rhythm, Time and Motion, University of Oslo.

Citing

Cite the CONCEPT DOI, which always resolves to the newest version:

Jensenius, A. R. (2026). musiscape: analysis of music collections (Version 0.5.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21948999

Where the exact behaviour matters, cite the version you ran instead. Version 0.5.0 is https://doi.org/10.5281/zenodo.21949000.

CITATION.cff in this repository carries the same information in machine-readable form.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

musiscape-0.6.0.tar.gz (61.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

musiscape-0.6.0-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file musiscape-0.6.0.tar.gz.

File metadata

  • Download URL: musiscape-0.6.0.tar.gz
  • Upload date:
  • Size: 61.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for musiscape-0.6.0.tar.gz
Algorithm Hash digest
SHA256 9387d003ea3329d0b6257b643cb3eb05ef187bff6a23162b6f76d4167ee41656
MD5 aeff206956270bcb69f06208ae0728bf
BLAKE2b-256 da84c67af81de336e6f8cc7a14961e88caa4458d875187d254b19c51fa33bdf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for musiscape-0.6.0.tar.gz:

Publisher: python-publish.yml on fourMs/musiscape

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file musiscape-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: musiscape-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for musiscape-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1fdcb79fd83cda962b92fb01a55787be21a217a5071be102e40be595fbc766b
MD5 9391ae0d36455fdb379bb1b43deefa30
BLAKE2b-256 ca234ed6403b714b7a9e417c647d89345159019622d6bb0e46cb7bdf648a6986

See more details on using hashes here.

Provenance

The following attestation bundles were made for musiscape-0.6.0-py3-none-any.whl:

Publisher: python-publish.yml on fourMs/musiscape

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.2

2 files

0.6.1

2 files

This release

0.6.0 This release

2 files

0.5.0

2 files

0.4.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page