Skip to content

Migrate to JupyterBook#73

Merged
HuwCheston merged 42 commits into
musicinformationretrieval:hc-ci-pipelinefrom
HuwCheston:gh-pages
Nov 3, 2025
Merged

Migrate to JupyterBook#73
HuwCheston merged 42 commits into
musicinformationretrieval:hc-ci-pipelinefrom
HuwCheston:gh-pages

Conversation

@HuwCheston

Copy link
Copy Markdown
Collaborator

Fixes #72 (?)

This PR migrates entirely to JupyterBook. This has a number of benefits:

  • much nicer presentation
  • I've configured easy, one-click access to launch a notebook with provisioned compute in either Colab, Binder, or directly on the website with Thebe
    • Thebe/Binder use a custom environment with pinned dependencies, which should eliminate the problems with packages on Colab becoming out-of-date over time

Note that this build may not work entirely "out-of-the-box", we'll probably need to play around with the github actions + pages configuration once it's merged.

For a preview, you can check out how this PR looks on my own fork:

https://huwcheston.github.io/musicinformationretrieval.com/intro.html

Comment thread mirdotcom/intro.md Outdated
"This site is maintained by [Steve Tjoa](https://www.stevetjoa.com/). For questions, please email [steve@musicinformationretrieval.com](mailto:steve@musicinformationretrieval.com). Do you have any feedback? Did you find errors or typos? Are you a teacher or researcher and would like to collaborate? Please let me know."
"This site was initially created by [Steve Tjoa](https://www.stevetjoa.com/). It is now maintained by members of the MIR community. For more details, see [the contributors](https://github.com/iranroman/musicinformationretrieval.com/graphs/contributors) to the repository.\n",
"\n",
"Do you have any feedback? Did you find errors or typos? Are you a teacher or researcher and would like to collaborate? Please let us know [by opening an issue](https://github.com/iranroman/musicinformationretrieval.com/issues/new)."

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's also say "or send us an email"

@HuwCheston HuwCheston Oct 31, 2025

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would maybe prefer sticking just to "create an issue", although it may be a bit tech-y. I feel like hardcoding email addresses isn't the best long-term solution, there's no guarantee that either of us will continue maintaining this site in the future -- we might hand it over to somebody else in the community.

Comment thread mirdotcom/content/1_introduction/about.ipynb Outdated
Comment thread mirdotcom/content/1_introduction/python_basics.ipynb Outdated
Comment thread mirdotcom/content/3_signal_analysis/segmentation.ipynb
Comment thread mirdotcom/content/3_signal_analysis/stft.ipynb Outdated
Comment thread mirdotcom/content/3_signal_analysis/spectral_features.ipynb Outdated
Comment thread mirdotcom/content/5_machine_learning/neural_networks.ipynb
Comment thread mirdotcom/content/5_machine_learning/genre_recognition.ipynb
@HuwCheston

Copy link
Copy Markdown
Collaborator Author

@iranroman, I've pushed (many) commits today that do the following:

  • fixed broken dependencies
  • optimized all imports with isort
  • ran black formatting over all notebooks
  • added action to makefile for running black (make fix)
  • added action to makefile for running jupyter-book to build HTML
  • added many many more tests for formatting (e.g., checking titles, checking for empty cells, checking for import mirdotcom etc.)
  • add get_audio func to mirdotcom.py, lets us replace all ../../assets/audio/some_audio.wav with get_audio("some_audio.wav"). Note that librosa.load` is maintained so we're not doing too much "under the hood"
  • add list_audio func to mirdotcom.py, replaces all calls of !ls ../../assets/audio
  • removed "hide-input" tags
  • labelled all y-axis figures
  • removed function names from titles of sections
  • added missing closing parenthesis to spectral_features.ipynb
  • added beginner tutorial to python_basics.ipynb
  • moved "People who use this site" to other.ipynb
  • added mention that "we welcome .ipynb files" to intro.md in place of mentioning Colab
  • fix YouTube video in sheet_music_representations.ipynb
  • fix closing parenthesis in sheet_music_representations.ipynb
  • fix broken markdown formatting in midi_conversion_table.ipynb

The remaining issues you mention have been converted to these issues:
#74 #75 #76

@iranroman iranroman self-requested a review November 2, 2025 20:16

@iranroman iranroman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @HuwCheston
This is excellent.

@HuwCheston HuwCheston merged commit 9e97129 into musicinformationretrieval:hc-ci-pipeline Nov 3, 2025
1 check passed
HuwCheston added a commit that referenced this pull request Nov 3, 2025
* update deps

* add backoff when downloading assets

* add Makefile

* add link search test file

* add urlextract dependency

* run .py and .ipynb tests in make

* add github workflow

* remove an old notebook

* don't run .ipynb tests on exercise notebooks

* skip existing files when downloading

* use max workers in makefile

* mirdotcom.py changes

* don't run tests on `adtlib.ipynb`

* rename `kmeans_instrument_classification` to make clear that it is an exercise

* pin more recent `mir_eval` version, add `soundfile` dep

* fix all notebooks

* run tests weekly

* retry tests

* Migrate to `JupyterBook` (#73)

* Implement retry mechanism in download functions

* Hardcode assets file paths

* initial commit

* add requirements.in

* add postBuild

* make package installable

* update all `mirdotcom.init()` calls

* add binder badge

* try fix install

* update all binder links

* remove badges, update colab references

* fix line break

* add jupyter-book requirement

* try refactor

* update all headings

* fix test paths

* update cross-references

* add initial jupyter-book build

* try fix

* remove musicinformationretrieval.com URLs and "Back to index"

* update config to fix thebe + binder

* update all notebooks

* actually set working directory

* replace references to "workshop" with "website"

* fix sheet music representations links

* fix midi conversion table

* remove function names as section titles

* axis labels

* remove hardcoded ../../assets, replace with `mirdotcom.get_audio`

* add beginner tutorial

* move "people who use this site" section

* add build target to makefile

* pin dependencies, minor fixes

* add note about .ipynb

* optimize imports

* remove "hide-cell"

* fix titles

* add more unittests for notebooks

* make notebooks pass tests

* add black formatting + deps: run `make fix`

* run black on files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants