An open API service indexing awesome lists of open source software.

https://github.com/jvbalen/catchy

Python tools for the corpus analysis of popular music.
https://github.com/jvbalen/catchy

Last synced: about 1 month ago
JSON representation

Python tools for the corpus analysis of popular music.

Awesome Lists containing this project

README

          

## CATCHY

### Corpus Analysis Tools for Computational Hook discovery

Python tools for the corpus analysis of popular music recordings. The tools can be used separately or together. I.e.: you can use your own psychoacoustic features and still use the other modules. Note that to use all scripts, it is assumed that audio files come pre-segmented (e.g., into structural sections).

The base feature modules' requirements include Matlab, Librosa and VAMP.

### Structure

Extracting catchy features from a folder of files involves three steps (look for the `eurovision_demo.ipynb` ipython notebook for a more detailed demo):

1. Base feature extraction

Here, basic, familiar feature time series are extracted. The toolbox currently implements (wrappers for) MFCC, chroma, melody and perceptual feature extraction. (Rhythm features under development in branch `rhythm`.)
This part of the toolbox relies on a lot of external code, but it's also easy to work around: if you want to use other features, just save them to a set of csv files (1 per song section--see below) in some folder (1 per feature).

2. Pitch (and rhythm) descriptor extraction

This part computes mid-level pitch descriptors from chroma and/or melody information computed in step one. Essentially an implementation of several kinds of audio bigram descriptors. See also [1] and [2].

3. Feature transforms

Compute 'first' and 'second order' aggregates of any of the features computed in step 1 and step 2. See [2].

The above three steps correspond to the three columns in below diagram.

![Module Diagram](https://github.com/jvbalen/catchy/blob/master/catchy%20modules.png)

### Known issues:

- i/o currently very conservative--you may have to do your own mkdirs when writing features.

- Matlab path handling hasn't been checked on other machines than mine.

Hopefully these will be addressed soon.

### License

Matlab scripts under GNU Public license; everything else, see LICENSE.

If you use this, feel free to refer to [2].

[1] Van Balen, J., Wiering, F., & Veltkamp, R. (2015). Audio Bigrams as a Unifying Model of Pitch-based Song Description. In Proc. 11th International Symposium on Computer Music Multidisciplinary Research (CMMR). Plymouth, United Kingdom.

[2] Van Balen, J., Burgoyne, J. A., Bountouridis, D., Müllensiefen, D., & Veltkamp, R. (2015). Corpus Analysis Tools for Computational Hook Discovery. In Proc. 16th International Society for Music Information Retrieval Conference (pp. 227–233). Malaga, Spain.

Home page: [http://www.github.com/jvbalen/catchy](http://www.github.com/jvbalen/catchy)

(C) 2016 Jan Van Balen ([@jvanbalen](https://twitter.com/jvanbalen))