## 2 Related Work  
There are a number of excellent and well-document toolboxes that provide modular source code for processing and analyzing music and audio signals. In the following, we give an overview of open-source toolboxes that have been specifically designed for supporting MIR research. We start with prominent examples of code collections for audio and music feature extraction. An early example of such a toolbox is Marsyas, which offers  
Figure 2: Content of FMP notebooks structured along with the eight chapters of the textbook [1]. a software framework for rapid prototyping and experimentation with audio analysis and synthesis with specific emphasis to music signals [5]. Similarly, the jAudio toolbox was designed for facilitating easy-to-use audio feature extraction, where the duplication of effort in calculating features from an audio signal is eliminated [6]. The MIRtoolbox consists of an integrated set of MATLAB functions for the extraction of musical features that decscribe tonality, rhythm, and structures from audio files [7]. The Essentia library offers an extensive collection of flexible and easily extendable algorithms for computing a large set of spectral, temporal, tonal, and high-level audio and music descriptors. Written in C++, the library includes Python and JavaScript bindings as well as various command-line tools, which facilitate its use for fast prototyping and allow setting up research experiments rapidly [8]. Recently, the open-source JavaScript (JS) library Essentia.js that allows for efficient and robust real-time audio feature extraction on web browsers was released [9]. There are also various, more specialized toolboxes that focus on specific MIR applications such as the Chroma Toolbox for chroma feature extraction [10], the Constant-Q Toolbox for computing time-frequency transforms [11], the TSM Toolbox for time-scale modification [12], the Tempogram Toolbox for tempo and pulse tracking [13], the NMF toolbox for nonnegative matrix factorization with applications to audio decomposition [14], the SM Toolbox for computing and enhancing similarity matrices, and the MSAF toolbox for audio structure analysis [15]. While most of these toolboxes cover more traditional MIR techniques, the recent Python library madmon offers code for MIR approaches (including onset detection, beat tracking, and chord recognition) that employ deep learning techniques [16]. Furthermore, based on deep learning, Open-Unmix provides an open-source reference implementation for the MIR task of music source separation [17]. Other useful toolboxes provide code for the evaluation of MIR approaches such as the mir_eval library [18] or for data augmentation such as the Audio Degradation Toolbox[19] or the muda library [20]. While most of these toolboxes have been developed especially for research purposes, some of them go along with excellent documentation and example applications that not only illustrate how the code works but also give insights into the underlying techniques and algorithms. We now mention some code collections that have been specially developed for didactic purposes. One such example is the ACA-Code, which is a collection of MATLAB and Python functions accompanying the textbook on Audio Content Analysis [21]. While the book covers the theoretical background for various audio and music processing concepts, the code collection provides corresponding reference implementations that enable students to gain hands-on experience. Based on the Juyputer Notebook framework, the MIR Notebooks provided by [PERSON] are a collection of instructional MIR materials, containing a mix of casual conversation, technical discussion, and Python code. Similarly, using the Jupyter Book framework, the tutorial on Music Source Separation interleaves textbook-like explanations with code interactively [22]. Last but not least, we want to draw attention to the Python package librosa, which provides basic functions as well as advanced processing pipelines for several music and audio analysis tasks [23].