Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Noten aus einer MP3/Wave extrahieren

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 22.10.2005, 22:27    Titel: Noten aus einer MP3/Wave extrahieren Antworten mit Zitat

Ein Bekannter von mir spielt Gitarre, und würde gerne die Noten zu seinen MP3s bekommen. Nach kurzer Bedenkzeit habe ich gemeint, dass so etwas theorethisch möglich sein müsste; man muss dazu doch lediglich die Frequenz, die auf den Boxen ausgegeben wird ermitteln, und könnte diese dann in eine Note zurückverwandeln. Natürlich bräuchte man noch ein paar Filter (für "Störgeräusche" wie Schlagzeug, Gesang, ...), und müsste auch einen Toleranzbereich festlegen. Soll heißen, die Note A ist nicht NUR die Frequenz 440Hz, sondern alles von 400 bis 480Hz, oder so...

However, ich weiß, dass so etwas recht kompliziert ist, denke aber, dass es theorethisch möglich sein müsste.
Leider kenne ich mich nicht genügend mit Audiosystemen aus, um die aktuell gespielte Frequenz zu ermitteln.

Was haltet ihr von dieser Idee? Ist sie machbar, oder doch zu komplex? Kann mir jemand beim Ermitteln der Frequenzen helfen?


Danke schon mal im Voraus.

Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 22.10.2005, 23:18    Titel: Antworten mit Zitat

Also ich würde fast sagen, dass es unmöglich ist. Denn sonst würde es ja sowas bestimmt schon geben. Dafür bräuchte man dann sehr viele filter, da sich eine midi note A ganz anders anhört, als wenn man sie auf ner richtigen gitarre,etc. spielt. Wenn du das schaffst, kannst du damit warscheinlich viel geld verdienen. Dann muss man ssich keine klingeltöne downloaden, einfach mit dem programm "umwandeln". zwinkern

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 22.10.2005, 23:38    Titel: Antworten mit Zitat

Na super, fallls ich es also hinbekomm, nenn ichs Jamba 2005 Zunge rausstrecken


Ich hab auch mit dem gedanken gespielt, innerhalb eines bestimmten Zeitraums in regelmäßigen Zeiträumen die Frequenzen zu ermitteln, und dann den Durchschnittswert zu ermitteln, etwa so:

Zeit/Frequenz
0:00,10 / 400
0:00,20 / 470
0:00,30 / 390
...

Durchschnitt zwischen 0:00,00 und 0:00,90 ist 409.123.....
409 ist ungefähr Note A

Allerdings kann das zu problemen führen, wenn innerhalb dieses Intervalls eine Note grade endet und eine andere beginnt.
Wenn also grade das A ausklingt und das C anklingt, kann das Programm das als H interpretieren, da der Freq-Schnitt zwischen A und C liegt....
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 22.10.2005, 23:48    Titel: Antworten mit Zitat

solche programme gibt es,die können aus MP3´s oder WAV´s einen annähernd ähnlichen Midi ton erstellen.

Ich hatte mal sowas bei meiner Software für mein Nokia Handy + Datenkabel dabei,
und komnte damit MID Klingeltöne aus MP3´s erstellen,
und das hat sogar (bei manchen liedern) recht gut funktioniert.


*EDIT*

Siehe hier http://www.intelliscore.net/
_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 23.10.2005, 16:55    Titel: Antworten mit Zitat

also, eine gute qualität wird das nie, wenn nciht auf dem mp3/wav nur ein einziges instrument spielt. Das ist nämlich so, dass die überschneidungen der instrumenttöne eine gesamtwelle ergeben, aus der sich ein einziges instrument nur noch shwer herausfiltern lässt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 25.10.2005, 08:37    Titel: Antworten mit Zitat

Interessante Idee, von der Umsetzung her grenzt es ein bisschen ins Vektorisieren/OCR von Bitmap-Scans, um die Daten z.B. via CAD weiterverarbeiten zu können, nur diesmal auf akustischer Ebene.

Die Umwandlung MP3 in WAV dürfte noch eine "Formsache" sein, aber anspruchsvoll wird es dann bei der sog. Fourier-Analyse, also der Zerlegung in die einzelnen Frequenzen. Das Problem sind noch zusätzlich die Oberschwingungen der meisten Klänge, ferner muss Deine Routine noch etwas Toleranz für leicht verstimmte Musikinstrumente zulassen. Eine weitere Schwierigkeit ist noch die Erkennung vom Anfang und Ende anhand der Hüllkurve, denn gewisse Instrumente klingen aus (Gitarre, Klavier, Xylophon) während andere den Ton auf dem Niveau halten (Orgel, Akkordeon) und damit schlussendlich auch die Artikulation. Kommt noch Gesang dazu, wird es erst recht anspruchsvoll.

Übrigens andere haben sich mit diesem wirklich sehr anspruchvollen Problem auch schon auseinandergesetzt. Siehe

http://www.musica.at/sforum/messages/3/6510.html
http://www.downloadjunction.com/product/software/1050/
http://www.audioto.com/

(unter Google mit "wav2mid" zu finden). Sobald man eine MIDI-Datei hat, lässt sich diese dann in ein Programm wie Capella importieren, so dass einem Notendruck nichts mehr im Weg steht.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 25.10.2005, 10:20    Titel: Antworten mit Zitat

Zitat:
Ein Bekannter von mir spielt Gitarre, und würde gerne die Noten zu seinen MP3s bekommen. Nach kurzer Bedenkzeit habe ich gemeint, dass so etwas theorethisch möglich sein müsste; man muss dazu doch lediglich die Frequenz, die auf den Boxen ausgegeben wird ermitteln, und könnte diese dann in eine Note zurückverwandeln.

Die Frequenz? Jeder Ton bis auf einen reinen Sinus besteht aus einer vielzahl von überlagerungen Frequenzen, deren Amplituden sich über die Zeit permanent ändern. Zudem spielen fast immer mehrere Instrumente deren Frequenzen sich dann beinahe zwangsweise überlappen.
Hier mal ein beispiel wie das in etwa aussieht:
(Ausschnitt aus einem Gitarrenstück von mir mit mehreren Gitarren, Schlagzeug, und Bass).

Solltest du Stücke haben, die nur aus einem einzelnen Instrument bestehen, also ohne Schlagzeug und sonst irgendwas, und monophon sind, dann kannst du das ganze umwandeln, mit ähnlichen Algorithmen, die auch Stimmgeräte verwenden (Goertzel oder was weiß ich).
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 30.10.2005, 16:31    Titel: Antworten mit Zitat

Moin,

Ich muss Helium zustimmen - es sind immer mehree Frequenzen. Wenn man nun die Musik Frequenzen zerlegt und hinterher dieselben Frequenzen wieder Aufaddiert, dann kommt das selbe heraus. Die Frequenzermittlung wird üblicherweise im FastForie-Verfahren zerlegt (ich hoffe das wird so geschrieben - ich hatte kein Französisch).

Interessant ist es dann, die lautesten (ermittelten) Frequenzen zu nehmen und davon die Obertäne (=die vielfachen) sowie die Frequenz selbst vom gesamten Spektrum zu subtrahieren. auf die Art bekommt man einen Rest, den man ebenfalls wieder zerlegen kann.

Das Ganze kann man dann bis zum Punkt der etwa halben Lautstärke (=-3dB) oder der viertellautstärke(=-6dB) rekursiv weiterzerlegen. so bekommt man dann die wirklichen Haupttöne. Dadrunter ist ein normales Gehör nicht mehr in der Lage, die Töne herauszuhören/auseinanderzuhalten.

Wenn man jetzt diese Frequenzen über mehrere Millisekunden (bei tieferen Frequenzen bis zu wenigen Teilen von Sekunden, da die Wellenlänge länger ist) anhört, kann man durch ein kniffliges Bewertungssystem feststellen, ob es sich um Töne(gleiches Frequenz längere Zeit hintereinander) oder um Impulse handelt, wobei Gleichfrequente Impulse z.B. Drums zugeordnet werden können. eventuell muss man auch die Obertonbewertung etwsas anders erfassen.

Am intelligentesten ist aber sicherlich dem Programm verschiedene Instrumente beizubringen(solostimmen der Instrumente vorab zur Erkennung) damit die Obertöne 'passend' abgezogen werden. Sollten nun mehrere Instrumente übereinanderliegen, so muss für den gesamten Bereich das Obertonverhältnis stimmen.

Da ich nun in den Bereich komme, wo genaue Aussagen in Spekulationen überarten, beende ich besser meine Ausführungen. Dies ist sicher ein interessanter Bereich, allein eine Bibo zu Fequenzzerlegung sollte ein Lohnenswerte Projekt darstellen (z.B. al Equilizer).

Ich ende aber jetzt,
Machts gut

CU2
Tilli

ps: vielleicht gibt es ja irgendwo schon eine MorietzerlegungsLib...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 30.10.2005, 18:44    Titel: Antworten mit Zitat

tilli hat Folgendes geschrieben:
Ich muss Helium zustimmen - es sind immer mehree Frequenzen. Wenn man nun die Musik Frequenzen zerlegt und hinterher dieselben Frequenzen wieder Aufaddiert, dann kommt das selbe heraus. Die Frequenzermittlung wird üblicherweise im FastForie-Verfahren zerlegt (ich hoffe das wird so geschrieben - ich hatte kein Französisch).


Fourier schreibt sich das. Wenn du nicht weißt, wie sich Fast Fourier Transformation schreibt, verwende doch eifnach die übliche Abkürzung FFT.
Und FFT alleine wird dir auch nicht viel weiterhelfen, da du sonst lediglich das Spektrum des gesammten Stückes hättest, und bekanntlich gehen bei einer solchen Transformation sämtliche Zeit-Informationen verloren. Du wüsstest also die Amplituden jeder Frequenz, aber nicht wann was passiert.


tilli hat Folgendes geschrieben:

Interessant ist es dann, die lautesten (ermittelten) Frequenzen zu nehmen und davon die Obertäne (=die vielfachen) sowie die Frequenz selbst vom gesamten Spektrum zu subtrahieren. auf die Art bekommt man einen Rest, den man ebenfalls wieder zerlegen kann.

Nur funktioniert das auch höchstens bei sehr einfachen rein synthetischen Instrumenten, da bei allem anderen die Obertöne nicht auf eine einzelne Frequenz beschränkt sind, sondern eher ein kleiner "Hügel" rund um die Frequenz ergeben.
Außerdem hast du bekanntlich nur N Bins (wenn N die länge deiner FFT ist) und es kommt selten vor, dass die gespielten Frequenzen exakt auf einem Bin liegen, weshalb es dann wiederum zu unschärfen kommt (abhängig vom verwendeten Fenster).


tilli hat Folgendes geschrieben:

Wenn man jetzt diese Frequenzen über mehrere Millisekunden (bei tieferen Frequenzen bis zu wenigen Teilen von Sekunden, da die Wellenlänge länger ist) anhört, kann man durch ein kniffliges Bewertungssystem feststellen, ob es sich um Töne (gleiches Frequenz längere Zeit hintereinander) oder um Impulse handelt, wobei Gleichfrequente Impulse z.B. Drums zugeordnet werden können. eventuell muss man auch die Obertonbewertung etwsas anders erfassen.

Gleichfrequente Impulse? Impulse belegen eigentlich immer einen sehr großen Bereich des Spektrums. Du wirst ihnen nicht wirklich eine Tonhöhe zuordnen können (=> Dirac pulse)

tilli hat Folgendes geschrieben:

Am intelligentesten ist aber sicherlich dem Programm verschiedene Instrumente beizubringen(solostimmen der Instrumente vorab zur Erkennung) damit die Obertöne 'passend' abgezogen werden. Sollten nun mehrere Instrumente übereinanderliegen, so muss für den gesamten Bereich das Obertonverhältnis stimmen.

Solange du einen einzelnen Ton hast ist das unnötig und du musst den Obertönen keine Beachtung schenken.


Aber denk mal an echte Musik. Bei härteren Stilrichtungen ist es beispielsweise oft so, das der Bass das selbe, wie die Gitarre spielt (die zudem gedoppelt ist, was aber ein anderes Thema ist) und mit ihr qusi zu einem Instrument verschmilzt, sodas selbst das Menschliche Ohr nicht mehr in der Lage ist hier zu differenzieren.


tilli hat Folgendes geschrieben:

Da ich nun in den Bereich komme, wo genaue Aussagen in Spekulationen überarten, beende ich besser meine Ausführungen. Dies ist sicher ein interessanter Bereich, allein eine Bibo zu Fequenzzerlegung sollte ein Lohnenswerte Projekt darstellen (z.B. al Equilizer).

Ehrlich gesagt wirklt das alles mehr nach Halbwissen und Spekulationen.
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz