Skip to content

Similarity network fusion of features for clean self-similarity matrices in audio, as well as Javascript tools to play SSMs and spring graphs synchronized to audio

License

ctralie/GraphDitty

Repository files navigation

GraphDitty

The purpose of this code is to compute clean weighted adjacency matrices for audio files using similarity network fusion, which can be used to do clean structure analysis. This is based on ideas from the following papers:

  1. Christopher J Tralie and Brian McFee. "Enhanced Hierarchical Music Structure Annotations via Feature Level Similarity Fusion. International Conference on Acoustics, Speech, and Signal Processing (ICASSP), 2019.
  2. Christopher J Tralie. GraphDitty: A Software Suite for Geometric Music Structure Visualization. In 19th International Society for Music Information Retrieval (ISMIR), 2018, Late Breaking Demo Session.
  3. Christopher J Tralie. ``MFCC and HPCP fusion for robust cover song identification.'' In 18th International Society for Music Information Retrieval (ISMIR), 2017.

Example Fused Adjacency Matrix on Michael Jacksons's Bad

Example Adjacency Matrix on Michael Jacksons's Bad

Dependencies

Running

To see all options, run the script as follows

python SongStructure.py --help

There are options to view each iteration of the fusion. By default, the results are saved to a .mat file called ``out.mat'' and to a file "out.json" (you can changes this via command line options). For example, the above figure was generated with the following call

python SongStructure.py --filename MJ.mp3 --jsonfilename MJ.json

You can open the .json file in the web page "Viewer/index.html" to interactively view the similarity matrix and Laplacian eigenvectors, as well as as force graph and diffusion maps based on the similarity matrix.

About

Similarity network fusion of features for clean self-similarity matrices in audio, as well as Javascript tools to play SSMs and spring graphs synchronized to audio

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published