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.
- Host: GitHub
- URL: https://github.com/jvbalen/catchy
- Owner: jvbalen
- License: mit
- Created: 2016-04-12T20:37:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-22T03:50:44.000Z (about 9 years ago)
- Last Synced: 2024-04-22T12:32:50.290Z (over 1 year ago)
- Language: Python
- Size: 567 KB
- Stars: 20
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-python-scientific-audio - Catchy - Corpus Analysis Tools for Computational Hook Discovery. (Audio Related Packages)
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.

### 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))