- Die FMP notebooks sind Jupyter-basierte Lehrmaterialien zum Lernen und Lehren von Fundamentals of Music Processing mit Schwerpunkt auf Audio.
- Auf Basis von Anwendungsszenarien aus dem Music Information Retrieval (MIR) verbinden sie Theorie, Formeln, Abbildungen, Audiobeispiele und Python-Codebeispiele in einem durchgängigen Ablauf.
- Die statische HTML-Version lässt sich ohne Installation direkt ansehen, für die Codeausführung sind jedoch der Download von Notebooks und Daten sowie die Einrichtung einer Jupyter-Server-Umgebung nötig.
- Die aktuelle Version ist 1.2.6; Text und Abbildungen stehen unter CC BY-NC-SA 4.0, das Python-Paket
libfmpunter der MIT-Lizenz. - Entlang der 8 Kapitel des Lehrwerks reicht der Inhalt von Musikrepräsentationen über Fourier-Analyse, Synchronisation, Strukturanalyse, Akkorderkennung und Tempo-/Beat-Tracking bis zu Audio-Retrieval und Audiozerlegung.
Ziel der FMP notebooks
- Die FMP notebooks sind eine Sammlung von Lehrmaterialien zum Lernen und Unterrichten von Fundamentals of Music Processing.
- Sie konzentrieren sich auf den Audiobereich und nutzen bekannte Themen des Music Information Retrieval (MIR) als Anwendungsszenarien.
- In einem auf Jupyter-Notebooks basierenden Framework integrieren sie die folgenden Elemente:
- Einführung in MIR-Szenarien
- Abbildungen und Klangbeispiele
- technische Konzepte und mathematische Details
- Python-Codebeispiele, die die Umsetzung der Theorie zeigen
- Studierende können Theorie und Praxis gemeinsam lernen, Lehrende das Material für Vorlesungen nutzen, und Forschende sich an Referenzimplementierungen für MIR-Aufgaben orientieren.
Lesen und Ausführen
- Wer nur eine statische Ansicht benötigt, kann die exportierte HTML-Version ohne Installation direkt nutzen.
- Erklärungen, Abbildungen und Audiobeispiele sind über HTML-Links zugänglich.
- Um Python-Codezellen auszuführen, sind die folgenden Schritte nötig:
- Download von Notebooks und Daten
- Erstellen der Laufzeitumgebung
- Starten des Jupyter-Servers
- Nutzung der IPYNB-Links innerhalb einer Jupyter-Sitzung
- Das konkrete Vorgehen ist unter Get Started zusammengefasst.
Version und Lizenz
- Die FMP notebooks werden laufend aktualisiert; die aktuelle Version ist 1.2.6.
- Texte und Abbildungen der Notebooks werden unter der Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License veröffentlicht.
- Das Python-Paket
libfmpsteht unter der MIT-Lizenz und wird über GitHub bereitgestellt. - Für die Audiomaterialien gelten jeweils die ursprünglichen Lizenzen.
- Die Website enthält einige Texte und Abbildungen aus dem Buch Fundamentals of Music Processing.
Aufbau der Notebooks
- Die FMP notebooks folgen den 8 Kapiteln des Lehrwerks.
-
Basics
- behandelt den Einstieg, das Jupyter-Framework, Anaconda, Multimedia, Python-Programmierung, Visualisierung, Audio, Numba, Anmerkungen,
libfmpund MIR-Ressourcen
- behandelt den Einstieg, das Jupyter-Framework, Anaconda, Multimedia, Python-Programmierung, Visualisierung, Audio, Numba, Anmerkungen,
-
Music Representations
- behandelt Musiknotation, MIDI, Audiosignale, Wellenformen, Tonhöhe, Lautheit und Klangfarbe
-
Fourier Analysis of Signals
- behandelt diskrete und analoge Signale, Sinuswellen, Exponentialfunktionen, Fourier-Transformation, Fourier-Darstellungen, DFT, FFT und STFT
-
Music Synchronization
- behandelt Chroma-Features, dynamische Programmierung, Dynamic Time Warping (DTW), Alignment und Benutzeroberflächen
-
Music Structure Analysis
- behandelt Ähnlichkeitsmatrizen, Wiederholungen, Thumbnails, Homogenität, Neuheit, Evaluation, Precision, Recall, F-measure, Visualisierung und Scape Plot
-
Chord Recognition
- behandelt Harmonik, Musiktheorie, Akkorde, Tonleitern, Templates, Hidden Markov Model (HMM) und Evaluation
-
Tempo and Beat Tracking
- behandelt Onset, Novelty, Tempo, Tempogram, Beat, Periodizität, Fourier-Analyse und Autokorrelation
-
Content-Based Audio Retrieval
- behandelt Identifikation, Fingerprinting, Audio-Matching, Version Identification und Cover Songs
-
Musically Informed Audio Decomposition
- behandelt harmonic/percussive separation, Signalrekonstruktion, instantaneous frequency, fundamental frequency (F0), trajectory und nonnegative matrix factorization (NMF)
Literatur und Paket
- Bei der Nutzung des Materials wird empfohlen, das Buch Fundamentals of Music Processing – Using Python and Jupyter Notebooks zu zitieren.
- Relevante Literatur:
- Meinard Müller, Fundamentals of Music Processing – Using Python and Jupyter Notebooks, 2nd edition, Springer Verlag, 2021
- Meinard Müller and Frank Zalkow, FMP Notebooks: Educational Material for Teaching and Learning Fundamentals of Music Processing, ISMIR 2019
- Meinard Müller and Frank Zalkow, libfmp: A Python Package for Fundamentals of Music Processing, JOSS 2021
- Meinard Müller, An Educational Guide Through the FMP Notebooks for Teaching and Learning Fundamentals of Music Processing, Signals 2021
- Einige Codebeispiele wurden von anderen Code-Sammlungen beeinflusst und stehen insbesondere in Verbindung mit LibROSA, Notes on Music Information Retrieval und dem Kurs Fundamentals of Music Processing.
1 Kommentare
Hacker-News-Kommentare
In „Raspberry Pi for Dummies“ gibt es ein Kapitel zu SonicPi und PyGame
SonicPi ist eine Live-Coding-Umgebung für Musikproduktion und Bildung und ähnelt nach meinem Verständnis ChucK
PyGame scheint mit
pygame.mixeretwas auf Basis des SDL mixer zu habenDie Godot Game Engine unterstützt Audioeffekte: https://docs.godotengine.org/en/stable/tutorials/audio/audio...
BespokeSynth hat ein
"script"-Modul, mit dem man Python verwenden kann, um Noten und Akkorde zu synthetisieren und Audio-Streams zu transformieren: https://github.com/BespokeSynth/BespokeSynth/blob/main/resou... ( https://github.com/BespokeSynth/BespokeSynth/blob/main/bespo... )Die Notebooks von AllenDowney/ThinkDSP verweisen unter anderem auf NumPy und freesound: https://github.com/AllenDowney/ThinkDSP
Es hat sehr geholfen, ein Denkmodell für die Verarbeitung von Klang zu entwickeln, und auch dieses Repository enthält viele gute Ressourcen: https://github.com/BillyDM/Awesome-Audio-DSP
Der Fokus liegt auf Musik, aber es ist auch für andere Audioarten wie Sprache oder Umgebungsgeräusche sehr relevant
Abgesehen davon ist es gut geeignet