GraphMuse Documentation

GraphMuse is a research toolkit for graph-based deep learning on symbolic music. It provides heterogeneous graph representations for scores, sampling utilities, and graph neural network architectures that are tailored to music analysis tasks.

Features

  • Score graph creation pipelines with accelerated C extensions for performant preprocessing.

  • Sampling strategies and dataloaders optimised for symbolic music graphs.

  • A collection of graph neural network layers and models designed for metrical, cadence, and hybrid tasks.

  • Utilities to generate synthetic graphs for experimentation and prototyping.

Repository Structure

  • graphmuse – Library source code. - io – Input/output utilities for interacting with score files. - loader – Sampling dataloaders for heterogeneous music graphs. - nn – Graph neural network modules and reference models. - samplers – Interfaces to high-performance C sampling routines. - utils – Helpers for graph creation and experimentation.

  • include – C headers that back the sampling extension.

  • docs – Documentation sources prepared for Read the Docs.

  • tests – PyTest-based regression tests.

Processing Pipeline

The typical workflow when using GraphMuse is:

  1. Create a score graph from symbolic music (e.g., MusicXML) via graphmuse.create_score_graph().

  2. Sample sub-graphs with graphmuse.loader.MuseNeighborLoader or other strategies.

  3. Train music-specific graph neural networks from graphmuse.nn.

  4. Evaluate the resulting model on held-out data.

https://raw.githubusercontent.com/manoskary/graphmuse/main/assets/graphmuse_pipeline.png

The high-level GraphMuse pipeline.

API Reference