Beiträge von BukkakePower

    Hallo,
    tut mir leid, das ich nicht auf den vorherigen Thread geantwortet habe. Es war nicht meine Absicht unhöflich rüberzukommen. Ich befinde mich derzeit in einer Maturaphase, daher habe ich sehr viel zu tun im Moment. Wie auch immer, zu der Antwort. Ich habe beschlossen, das ich selber weiter auf meine Weise versuche. Ich habe die Methoden, die du mir vorgeschlagen hast, angeschaut, allerdings kenne ich mich mit solchen Sachen ehrlich gesagt wirklich nicht aus. Hinzu kommt das meine Programmierkenntnisse kein hohes Niveau besitzen. Wahrscheinlich sind diese zwar auch effektiver und besser, aber mir bleibt weder noch die Zeit dafür, mich vollends daraufzu konzentrieren, auch wenn das ein sehr interessante Thema ist. Ich habe mich auch schon auf etliche Foren umgeschaut, leider Fehlanzeige. Kein einziges, was mir in irgendeiner Weise weitergebracht hat.

    Meine Vorgehensweise wäre einfach mal, das ich mir die Energieverteilung von den einzelnen vordefinierten Frequenzbänder anschaue und dann weiter vorangehe. Ich werde wahrscheinlich in den nächsten 1-2 Tage wieder ein paar Fragen hier im Forum habe.
    Bis dahin, vielen Dank!

    Hallo, ich hab ein Problem. Kurz zur Problembeschreibung: Ich habe ein Musikstück, in dem Fall klassische Musik. Dabei ist es egal welches. Kann irgendein eins sein. Warum klassische Musik, hat deswegen damit zu tun, das ich den Rhytmus habe möchte. Eine Stimme im Musikstück würde das etwas erschweren. Mein Ziel ist es, den Rhythmus abhängig von Musikstück, im Form eines elektrischen Signals an Vibrationsmotoren zu senden. Gehen wir ein bisschen in die Theorie. Meine Überlegungen sind, das der Bass eine sehr tiefe Frequenz hat, ca. 30-50Hz. Es gibt natürlich noch Tiefbass, mittlerer Bass und Oberbass, aber auf die gehe ich jetzt nicht ein. Gehen wir weiter dann kommen wir weiter zu Instrumenten die sich in einen Bereich von 150Hz bis ca. 1000Hz bewegen. Eigentlich ist nur dieser Bereich für mich interessant. Es gibt aber auch Instrumente, die sehr viel weiter oben sind, aber die sind dann mehr oder weniger für mich eine Ausnaheme. Jedenfalls ist es so, ich möchte versuchen die tiefen, die mittleren und die hohen Töne filtern und diese dann an Motoren senden. Es geht darum, das der tiefe Ton einen bestimmten Grundrhythmus hat. Z.B. das alle 2 Sekunden der Bass kommt und der Vibrationsmotor dann alle 2 Sekunden vibriert. Genauso wie mit den anderen Tönen!

    Ich habe eine STFT von einem Musikstück gemacht, mit der ich alle 50ms sehe, wie das Spektrum sich verändert. Also ich sehe, wie sich die Amplitude vom Musikstück alle 50 ms von Spektrum zu Spektrum ändert. In der Amplitude habe ich ja auch den Rhytmus drinnen. Ich würde gerne versuchen, dieses Problem auf einer Matlab-Umgebung zu realisieren.
    Die Problematik ist daher, wie kriege ich den Grundrhytmus von Musikstück raus? Und wie kann ich diese dann senden?
    Mir fehlt leider die Vorstellungskraft, wie man das macht. Jede Form von Hilfe ist gewünscht.

    Hallo, ich bin neu hier in diesen Forum. Diese wurde mir von einen Bekannten empfohlen. Ich versuche sozusagen den Rhythmus von einen Musikstück zu finden. Dabei liegt der Fokus auf klassische Musik. Die Stimmen im Musikstück, würden das Analysieren erschweren.
    Meine Überlegungen
    : Wenn man sich jetzt ein Spektrum anschaut – zum Beispiel; man schlägt mehrmals auf ein Schlagzeug, dann bekommt man einen Rhythmus raus, aber aus einem Frequenzspektrum kann man extrem wenig herauslesen. Aber daraus kann man lesen wie es sich von Spektrum zu Spektrum ändert.

    Man muss den zeitlichen Verlauf analysieren. Die Momentaufnahme von einem Spektrum sagt ja über ein Musikstück, zumindest über den Rhythmus, gar nix aus.

    Ich stell mir das so vor: Ich schlage einen Ton an.

    Wie schaut das Spektrum zu dem Zeitpunkt in dem der Ton angeschlagen wird aus?

    Da bekommt man sehr hohe Frequenzen, auch wenn das mit einem Instrument gespielt wird wo der Dauerton nur sehr niedrige Frequenzen liefert.

    Ich glaube deswegen, weil der Puls am Anfang, an dem das ganze beginnt: -Angenommen sie haben einen Rhythmus und der Ton wird angeschlagen, dann hat der eigentlich eine total niedrige Frequenz, aber immer dort wo der Anschlag gemacht wird, dort bekommt man extrem hohe Frequenzen, durch den Sprung. Das heißt, wenn man jetzt eine FFT in diesem Bereich (Sprung) macht, dann bekommt man nur sehr hohe Frequenzen, wenn man in dem Bereich (nach dem Sprung) eine FFT macht, dann bekommt man nur sehr niedrige Frequenzen.

    Das heißt man muss sich anschauen wie war der zeitliche Verlauf in verschiedenen (h,m,t) Bändern (Frequenzbänder, siehe Code u. Erklärungen), sonst bekommt man nie einen Rhythmus raus aus dem Spektrum.

    Das wichtigste ist, man muss den Rhythmus von dem Musikstück herausgewinnen. Letztendes wenn man da dann irgendeine Funktion hat, dann braucht man da die Höhen, die Mitten und die Tiefen; und man braucht eine Funktion davon wie das ausgeschaut hat

    > eine zeitliche Funktion, ein h(t), ein m(t) und ein t(t);

    > Höhen, Mitten, Tiefen

    > Wie ist der zeitliche Verlauf von den 3 Funktionen

    Und dann: wenn eine gewisse Kombination aus den 3 Funktionen stattfindet, dann denke ich, habe ich den Beginn von irgendeinem Rhythmus gefunden.

    Nämlich der Übergang von irgendeiner Kombination zu einer anderen Kombination, dann haben ich einen Anschlag von einem Musikinstrument.

    Das heißt der nächste Schritt wäre, dass man diese 3 Funktionen visualisieren kann und als Vektor vorliegen haben.

    Ich versuche dann zu schauen, ob man sich da irgendwelche Algorithmen überlegen kann und wie kann man solche Übergänge detektieren kann.
    Ich möchte versuchen, diese Funktionen zu visualieren. Ich habe einen Code, wo ich eine STFT auf ein Musikstück mache. So kriege ich alle 50ms ein Spektrum von meinen Musikstück.


    Ich habe jetzt die Samples, die man mit 44100 Hz (Abtastrate) abtastet- (also alle 22,7µs; Δt=22,7µs; das entspricht 144,1kHz) à man bekommt alle 27,7µsek ein Sample. Jetzt muss eine Funktion geschrieben werden, wenn man 4096 Samples nimmt, dann macht es 92,9ms.

    Das heißt, wenn das ganze jetzt 92,9 ms lang ist, dann ist das nächste Window um 30msek verschoben.

    Das heißt der Beginn muss immer um 30ms verschoben sein..


    Der Window shift sollte 30ms betragen.

    Man braucht dann nicht jedes einzelne ploten, weil das völlig sinnlos ist; sondern der nächste Schritt ist dann wenn man den Shift auf 30ms legt, dann muss man von jedem einzelnen FFT die Frequenzanalyse in die 3 Bereiche machen und dann bekommt man einen Wert pro hmt (hohe, mittlere und tiefe) alle 30m.


    Dann werden die Daten reduziert von FFT alle 30ms auf 3 Werte alle 30ms.

    Das heißt der Shift muss dann entsprechen den 30ms. Dann muss aus jeder einzelnen FFT die Frequenzanalyse in den Höhen, Mitten und Tiefen gemacht werden; da bekommt man dann nur noch 3 Werte und dann wird der Shift verschoben und bekommt man dann neue Werte.