Hello ISMIR!
Hi! My name is Axel MARMORET, and you're probably here because you read the article "Uncovering Audio Patterns in Music with Nonnegative Tucker Decomposition for Structural Segmentation" we wrote with some of my colleagues.
If not, I strongly encourage you to read it, as these notebooks are here to complete it, and don't reexplain the what, why and how of NTD for Music Segmentation.
More particularly, notebooks listed below are destined to answer technical questions and/or explain choices about the model and/or implementation choices.
Initially, these notebooks were destined to share the work done in the research team, and not publicly shared. In that sense, code wasn't designed to be clean but only to do a precise task, and the notebooks focus on its outputs and not in the code itself. Hence, code might seem, at least, "blurry", and some might say "ugly". It also explains why most code used in these notebooks belongs to the file "hide_code.py".
- 1 - Signal representation and segmentation techniques
- 2 - Focus on W and the autosimilarity
- 3 - Subdivisions of bars
- 4 - Penalty regularity function
- 5 - Different kernels
- 6.1 - Final Results for NTD
- 6.2 - Results of the baseline
- Appendix - Focus on the segmentation algorithm
Disclaimer: may contain traces of French.
These notebooks are html files, generated from jupyter notebooks.
The raw jupyter files (so as these html) are available on the gitlab repo of the project (click) in the "Notebooks" folder.
Feel free to pay with them and recompute them ! :)
Be aware though that the first notebook wasn't updated after computation, and some code is already outdated at that time, so it might not work. Other ones should work but, if not, please report me the problem at my mail adress: axel.marmoret_at_inria.fr.
Another difficulty in reproductibility is that, due to heavy computational costs, NTD results and some deterministic tasks (for example, spectrogram computation) were persisted on my machine, so as to reuse the results and avoid recomputation. In that sense, "Path not found" errors could occur and, in that case too, feel free to advise me of them! Paths are hard-coded in the file "hide_code.py". In this spirit, you will need to create such a folder for saving results of computation, which is a huge time-saver.
I will try to correct these problems in future versions (but these versions are fixed with the article, so can't be updated...).