• Stars
    star
    1,215
  • Rank 38,569 (Top 0.8 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Instructional notebooks on music information retrieval.

musicinformationretrieval.com

Introduction

  1. About This Site (Start here!)
  2. About the book Fundamentals of Music Processing
  3. About the CCRMA Workshop on Music Information Retrieval
  4. What is MIR?
  5. Python Basics and Dependencies
  6. Jupyter Basics
  7. Jupyter Audio Basics
  8. SoX and ffmpeg
  9. NumPy and SciPy Basics

Music Representations

  1. Sheet Music Representations
  2. Symbolic Representations
  3. Audio Representation
  4. Tuning Systems
  5. MIDI Note to Frequency Conversion Table
  6. Understanding Audio Features through Sonification

Signal Analysis and Feature Extraction

  1. Basic Feature Extraction
  2. Segmentation
  3. Energy and RMSE
  4. Zero Crossing Rate
  5. Fourier Transform
  6. Short-time Fourier Transform and Spectrogram
  7. Constant-Q Transform and Chroma
  8. Video: Chroma Features
  9. Magnitude Scaling
  10. Spectral Features
  11. Autocorrelation
  12. Pitch Transcription Exercise

Rhythm, Tempo, and Beat Tracking

  1. Novelty Functions
  2. Peak Picking
  3. Onset Detection
  4. Onset-based Segmentation with Backtracking
  5. Tempo Estimation
  6. Beat Tracking
  7. Video: Tempo and Beat Tracking
  8. Drum Transcription using ADTLib

Machine Learning

  1. K-Means Clustering
  2. Exercise: Unsupervised Instrument Classification using K-Means
  3. Neural Networks
  4. Genre Recognition
  5. Exercise: Genre Recognition

Evaluation

  1. Introduction to mir_eval
  2. Onset Detection
  3. Beat Tracking
  4. Chord Estimation

Music Synchronization

  1. Dynamic Programming
  2. Longest Common Subsequence
  3. Dynamic Time Warping
  4. Dynamic Time Warping Example

Music Structure Analysis

  1. Mel-Frequency Cepstral Coefficients

Content-Based Audio Retrieval

  1. Locality Sensitive Hashing

Musically Informed Audio Decomposition

  1. Principal Component Analysis
  2. Nonnegative Matrix Factorization
  3. NMF Audio Mosaicing
  4. Harmonic-Percussive Source Separation

Just For Fun

  1. Real-time Spectrogram
  2. THX Logo Theme

This repository contains instructional Colab notebooks related to music information retrieval (MIR). Inside these notebooks are Python code snippets that illustrate basic MIR systems. You can actually execute the code from inside the notebook.

Updates

2022 April 22: It's 2022, and Colab seems to be much more popular and usable than it was a few years ago. You can help me migrate musicinformationretrieval.com to Colab. Edit a Colab notebook, and submit a pull request. Ping [email protected] to let me know.

2021 June 2: I'm sorry that I haven't updated this repository lately. My career focus has drifted away from MIR, sadly. Therefore, please understand that I might not be checking this repo very frequently. However, I'm grateful that many of you still find this repo helpful. I encourage you to raise GitHub issues and participate in community discussions through the issue forums. If you want to submit a pull request, you can email steve at musicinformationretrieval dot com to let me know to check GitHub.

Contributions

Your contributions are welcome! You can contribute in two ways:

  1. Submit an issue. Click on "Issues" in the right navigation bar, then "New Issue". Issues can include Python bugs, spelling mistakes, broken links, requests for new content, and more.

  2. Submit changes to source code or documentation. Fork this repo, make edits to your fork, then submit a pull request. gh-pages is the default branch for this repo. Try to follow the style conventions in the existing notebooks. Ping [email protected] to let me know you submitted a pull request.