musicinformationretrieval.com ============================= Introduction ------------ 1. [About This Site](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fabout.ipynb) 2. [What is MIR?](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fwhy_mir.ipynb) 3. [Python Basics and Dependencies](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fpython_basics.ipynb) 4. [Jupyter Basics](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fget_good_at_ipython.ipynb) 5. [Jupyter Audio Basics](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fipython_audio.ipynb) 6. [SoX and ffmpeg](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fsox_and_ffmpeg.ipynb) 7. [NumPy and SciPy Basics](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F1_introduction%2Fnumpy_basics.ipynb) Music Representations --------------------- 1. [Sheet Music Representations](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Fsheet_music_representations.ipynb) 2. [Symbolic Representations](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Fsymbolic_representations.ipynb) 3. [Audio Representation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Faudio_representation.ipynb) 4. [Tuning Systems](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Ftuning_systems.ipynb) 5. [MIDI Note to Frequency Conversion Table](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Fmidi_conversion_table.ipynb) 6. [Understanding Audio Features through Sonification](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F2_music_representations%2Ffeature_sonification.ipynb) Signal Analysis and Feature Extraction -------------------------------------- 1. [Basic Feature Extraction](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fbasic_feature_extraction.ipynb) 2. [Segmentation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fsegmentation.ipynb) 3. [Energy and RMSE](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fenergy.ipynb) 4. [Zero Crossing Rate](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fzcr.ipynb) 5. [Fourier Transform](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Ffourier_transform.ipynb) 6. [Short-time Fourier Transform and Spectrogram](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fstft.ipynb) 7. [Constant-Q Transform and Chroma](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fchroma.ipynb) 8. [Video: Chroma Features](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fvideo_chroma.ipynb) 9. [Magnitude Scaling](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fmagnitude_scaling.ipynb) 10. [Spectral Features](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fspectral_features.ipynb) 11. [Autocorrelation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fautocorrelation.ipynb) 12. [Pitch Transcription Exercise](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F3_signal_analysis%2Fpitch_transcription_exercise.ipynb) Rhythm, Tempo, and Beat Tracking -------------------------------- 1. [Novelty Functions](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fnovelty_functions.ipynb) 2. [Peak Picking](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fpeak_picking.ipynb) 3. [Onset Detection](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fonset_detection.ipynb) 4. [Onset-based Segmentation with Backtracking](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fonset_segmentation.ipynb) 5. [Tempo Estimation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Ftempo_estimation.ipynb) 6. [Beat Tracking](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fbeat_tracking.ipynb) 7. [Video: Tempo and Beat Tracking](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fvideo_tempo_beat_tracking.ipynb) 8. [Drum Transcription using ADTLib](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F4_rhythm_tempo_beat%2Fadtlib.ipynb) Machine Learning ---------------- 1. [K-Means Clustering](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F5_machine_learning%2Fkmeans.ipynb) 2. [Exercise: Unsupervised Instrument Classification using K-Means](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F5_machine_learning%2Fkmeans_instrument_classification_exercise.ipynb) 3. [Neural Networks](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F5_machine_learning%2Fneural_networks.ipynb) 4. [Genre Recognition](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F5_machine_learning%2Fgenre_recognition.ipynb) 5. [Exercise: Genre Recognition](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F5_machine_learning%2Fexercise_genre_recognition.ipynb) Evaluation ---------- 1. [Introduction to mir_eval](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F6_evaluation%2Fintro_mir_eval.ipynb) 2. [Onset Detection](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F6_evaluation%2Fevaluation_onset.ipynb) 3. [Beat Tracking](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F6_evaluation%2Fevaluation_beat.ipynb) 4. [Chord Estimation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F6_evaluation%2Fevaluation_chord.ipynb) Music Synchronization --------------------- 1. [Dynamic Programming](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F7_music_synchronization%2Fdp.ipynb) 2. [Longest Common Subsequence](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F7_music_synchronization%2Flcs.ipynb) 3. [Dynamic Time Warping](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F7_music_synchronization%2Fdtw.ipynb) 4. [Dynamic Time Warping Example](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F7_music_synchronization%2Fdtw_example.ipynb) Music Structure Analysis ------------------------ 1. [Mel-Frequency Cepstral Coefficients](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F8_music_structure_analysis%2Fmfcc.ipynb) Content-Based Audio Retrieval ----------------------------- 1. [Locality Sensitive Hashing](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F9_retrieval%2Flsh_fingerprinting.ipynb) Musically Informed Audio Decomposition -------------------------------------- 1. [Principal Component Analysis](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F10_decomposition%2Fpca.ipynb) 2. [Nonnegative Matrix Factorization](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F10_decomposition%2Fnmf.ipynb) 3. [NMF Audio Mosaicing](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F10_decomposition%2Fnmf_audio_mosaic.ipynb) 4. [Harmonic-Percussive Source Separation](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F10_decomposition%2Fhpss.ipynb) Just For Fun ------------ 1. [Real-time Spectrogram](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F11_fun%2Frealtime_spectrogram.ipynb) 2. [THX Logo Theme](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2F11_fun%2Fthx_logo_theme.ipynb) About ----- 1. [About the book Fundamentals of Music Processing](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2Fx1_about%2Fabout_fmp.ipynb) 2. [About the CCRMA Workshop on Music Information Retrieval](https://mybinder.org/v2/gh/HuwCheston/musicinformationretrieval.com/HEAD?urlpath=%2Fdoc%2Ftree%2Fcontent%2Fx1_about%2Fabout_ccrma_workshop.ipynb) --- This repository contains instructional 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. The notebooks run on [`binder`](https://mybinder.org) to enable reproducible results in a consistent computational environment. Updates ------- 2025 October 22: Hey! I'm [Huw Cheston](https://huwcheston.github.io) and I'm excited to be working with Iran on modernising this site as part of the [EPSRC](https://www.ukri.org/councils/epsrc/) "AI Skills Through Music" project. I completed my PhD in MIR at the [University of Cambridge](https://cms.mus.cam.ac.uk/) and now work at the [Centre for Digital Music, Queen Mary University](https://www.c4dm.eecs.qmul.ac.uk/). Feel free to reach out and say hi! `h \ cheston \ qmul \ ac \ uk`. 2023 October 09: Hello everyone! I'm [Iran R. Roman](https://iranroman.github.io) and I'm honored to be [the new administrator](https://iranroman.github.io/2023/10/09/other-list-01.html) of [musicinformationretrieval.com](https://musicinformationretrieval.com). Feel free to reach out and say hi. I would love to hear from you. iran \ ccrma \ stanford \ edu 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 iran \ ccrma \ stanford \ edu to let me know. Contributions ------------- Your contributions are welcome! You can contribute in two ways: 1. Submit an issue. Click on "[Issues](https://github.com/iranroman/musicinformationretrieval.com/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](https://help.github.com/articles/fork-a-repo), make edits to your fork, then [submit a pull request](https://help.github.com/articles/using-pull-requests). `gh-pages` is the default branch for this repo. Try to follow the style conventions in the existing notebooks. Ping iran \ ccrma \ stanford \ edu to let me know you submitted a pull request.