2 Punkte von GN⁺ 2024-11-11 | 1 Kommentare | Auf WhatsApp teilen
  • Projektüberblick

    • Dieses Projekt hat das Ziel, ein Programm zu entwickeln, das Musik in Noten umwandelt.
    • Es handelt sich um ein Open-Source-Projekt, das Musik in ihre Instrumente zerlegt, ohne externe Bibliotheken zur Instrumententrennung zu verwenden.
    • Auslöser für das Projekt waren ein persönlicher Bedarf und das Fehlen eines einfachen Open-Source-Algorithmus.
  • Vorbereitung

    • Die Instrumentendaten stammen aus der Datenbank der University of Iowa Electronic Music Studios.
    • Aus diesen Daten werden die Fourier-Transformation der gesamten Wellenform und die Hüllkurve der Wellenform bestimmt.
  • Funktionsweise

    • Die Klangwellenform eines Instruments wird hauptsächlich durch die Fourier-Transformation und die Hüllkurve charakterisiert.
    • Dadurch lässt sich erkennen, welches Instrument welche Note spielt.
  • Fourier-Transformation

    • Die Fourier-Transformation der Musikdatei wird alle 0,1 Sekunden durchgeführt, um ein Spektrogramm zu erzeugen.
    • Die gespeicherten Fourier-Transformationen der einzelnen Instrumente werden aufsummiert, um die Fourier-Transformation eines 0,1-Sekunden-Fensters zu rekonstruieren.
    • Die Amplitude jedes Instruments wird über die partielle Ableitung der MSE-Kostenfunktion nach der Frequenz bestimmt.
  • Hüllkurve

    • Die Hüllkurve ist die obere Begrenzung der Wellenform, daher wird eine Methode benötigt, die robust gegenüber Rauschen und bestimmten Wellenformtypen ist.
    • Die Wellenform wird in Chunks aufgeteilt, und aus dem Maximum jedes Chunks wird die Hüllkurve ermittelt.
    • Die Hüllkurve wird in Attack, Sustain und Release unterteilt und analysiert.
    • Die Wellenform eines Instruments kann eine statische oder dynamische Dämpfung aufweisen; zur Unterscheidung werden Dämpfungsfaktor und Änderungsrate analysiert.
  • Verschiedene Typen von Wellenformen

    • Zur Verarbeitung der Musikdatei wird für die Frequenz jeder Note ein Bandpassfilter angewendet.
    • Für jedes Instrument werden Anfang und Ende jeder Note über die Kreuzkorrelation von Attack und Release gefunden, und zur Bestimmung der Kosten wird der MSE berechnet.
    • Die endgültige Amplitude ergibt sich aus der Multiplikation der in der Fourier-Transformationsphase gefundenen Amplitude mit dem Kehrwert der Kosten.
  • Ergebnisse und Darstellung

    • Die Noten werden mit einem Streudiagramm von matplotlib dargestellt.
    • Ursprünglich sollte Audio aus den Amplituden rekonstruiert werden, doch wegen vieler Probleme wurde dieser Ansatz aufgegeben.
    • Nützlich für die Rekonstruktion von Noten und besonders hilfreich, wenn man Schwierigkeiten hat, Tonhöhen oder Akkorde herauszuhören.

1 Kommentare

 
GN⁺ 2024-11-11
Hacker-News-Kommentare
  • Der Titel könnte verwirrend sein. Dieses Projekt ist keine Quellentrennung, sondern ein Pitch-Erkennungsalgorithmus und enthält auch eine Funktion zur Instrumentenklassifikation
    • Die Korrektur der Ergebnisse könnte mehr Zeit in Anspruch nehmen
  • Automatische Musiktranskription (Audio->MIDI) ist ein wichtiges Teilgebiet von Deep Learning und Music Information Retrieval
    • Googles MT3-Projekt wird als erfolgreiches Modell genannt
    • Bei der Klaviertranskription zeigt es selbst bei Audio geringer Qualität nahezu perfekte Genauigkeit
  • Wenn man sich für Audiotrennung interessiert, lohnt sich ein Blick auf RipX
    • Getrennte Spuren lassen sich als MIDI-Dateien exportieren
    • Es gibt noch einige Probleme, aber es funktioniert gut
    • Stem-Separation ist inzwischen Standard in Musiksoftware, und fast jede DAW bietet das an
  • Die Physik realer Instrumente lässt sich möglicherweise nicht durch einfache Fourier-Transformations-Templates erfassen
    • Eine Trompete kann beim leisen und beim lauten Spiel unterschiedliche harmonische Spektren haben
    • Je nach Lautstärke eines Instruments kann sich der harmonische Gehalt stark verändern
    • Durch das Hinzufügen lautstärkeabhängiger Fourier-Templates für jedes Instrument ließe sich die Genauigkeit verbessern
  • Das weckt Erinnerungen daran, vor 15 Jahren Audiosurf gespielt zu haben
  • Das YouTube-Video-Demo scheint keine Quellentrennung zu zeigen
  • Niemand erwähnt, dass "separation" viermal falsch geschrieben wurde
  • In einigen Videos scheint kein Audio vorhanden zu sein
  • Dieses Projekt könnte die Arbeit des Bruders von Joshua Bird sein
    • Joshua Bird hat bereits beeindruckende Projekte umgesetzt
  • Ich kann den Quellcode nicht finden, aber das Projekt wirkt interessant