opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Learn music information retrieval through runnable Jupyter notebooks
GitHub RepoImpressions4

Project Description

View on GitHub

Learn Music Information Retrieval by Actually Running the Code

You can read about Fourier transforms, chroma features, and zero crossing rates all day, but none of it sticks until you run the code yourself. Music information retrieval sits at an awkward intersection—part signal processing, part music theory, part machine learning—and most textbooks leave you staring at equations with no way to hear what they mean. This project takes a different approach: a full curriculum of Jupyter notebooks you can open and execute in your browser, no local setup required.

What It Does

Musicinformationretrieval.com is a collection of runnable Jupyter notebooks that walk you through the fundamentals of music information retrieval (MIR). Each notebook is hosted on Binder, which means every link in the README opens directly into a live, executable environment where you can run the code, tweak parameters, and hear the results.

The curriculum is organized into sections. It starts with an introduction covering what MIR actually is, Python and Jupyter basics, audio playback in notebooks, and the command-line tools SoX and ffmpeg. From there it moves into music representations—sheet music, symbolic formats, raw audio, tuning systems, and MIDI conversion. The signal analysis section digs into the real work: basic feature extraction, segmentation, energy and RMSE, zero crossing rate, the Fourier transform, the short-time Fourier transform and spectrograms, and the constant-Q transform with chroma features. The notebooks rely on standard scientific Python (NumPy, SciPy) alongside audio-specific tooling, all pre-configured in the Binder environment.

Why It's Cool

  • Zero setup is the whole point. MIR has a reputation for being fiddly to get into—you need the right libraries, audio codecs, and often some command-line tools. By linking every notebook through Binder, this project removes that entire barrier. You click a link and you're running code in seconds.

  • The order actually makes sense. The progression from "what is MIR" through representations, then into signal analysis, mirrors how you'd naturally learn the subject. You're not thrown into spectrograms before you understand what a waveform is.

  • It covers the unglamorous stuff. The introduction includes notebooks on SoX and ffmpeg—tools you'll absolutely need in practice but that rarely get their own tutorial. There's also a notebook on Jupyter audio basics, which is a small thing that saves a lot of frustration when you're trying to play a sound file inside a notebook.

  • Sonification as a teaching tool. One notebook is titled "Understanding Audio Features through Sonification." That's a genuinely smart pedagogical move—instead of just plotting a feature, you can hear it. For a subject that's fundamentally about sound, that matters more than it might seem.

  • Symbolic and audio side by side. The music representations section doesn't pick a side. It covers sheet music, symbolic formats like MIDI, and raw audio together, which reflects the reality that MIR problems often span multiple representations.

  • A conversion table for the boring parts. There's a whole notebook dedicated to MIDI note to frequency conversion. It's not exciting, but it's the kind of reference you'll come back to.

How to Try It

The fastest way in is to just click a notebook link from the repository's README. Each one opens in Binder with the environment already built.

  1. Head to the repository: https://github.com/musicinformationretrieval/musicinformationretrieval.com
  2. Pick a starting point. If you're new to MIR, start with the Introduction section—specifically "What is MIR?" and "Python Basics and Dependencies."
  3. Click the Binder link for that notebook. It'll take a moment to spin up the environment, then you're in.
  4. Run the cells, change the values, break things. That's the point.

If you'd rather work locally, you can clone the repo and open the notebooks in your own Jupyter installation, though you'll need to install the dependencies yourself—the Binder links handle that for you.

Final Thoughts

This isn't a polished, hand-held course with videos and quizzes. It's a set of notebooks that assume you're willing to read code and experiment. That's a feature, not a bug—but it does mean you'll get the most out of it if you're comfortable with basic Python or willing to work through the intro notebooks first. For anyone curious about how music actually becomes data, or for developers who've dabbled in audio and want a structured path into MIR, this is a solid, no-nonsense starting point. The fact that you can go from zero to running a spectrogram in about two minutes is what makes it worth bookmarking.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 8df7d0ff-05aa-44f5-a29b-dce6279e8bc1Last updated: October 5, 2026 at 02:49 AM