Musik Tonhöhe darstellen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Definiere

    TheGameSiders schrieb:

    Tonhöhe
    Du kannst darstellen die Position der Lautsprechermembran als Funktion der Zeit:
    hoher Ton = kurzwelliger Sinus, tiefer Ton = langwelliger Sinus.
    und Du kannst darstellen die Tasten, die bei einem Sintesicer gedrückt sind:
    hoher Ton = rechts ein Buckel, tiefer Ton = links ein Buckel.
    Diese Information darzustellen, so sie vorliegt, ist dann eine kleinere Übung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wie Rod gesagt, werden in dem Video die Frequenzen dargestellt.
    Ich habe keine Ahnung wie mans mit GDI+ macht, jedoch falls es dich interessiert, in dem Video wurde dies mit Adobe After Effects gemacht.
    Ist sehr easy, 5-10 Klicks.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Das sind keine Frequenzen sondern Samples. (also in dem Video)
    Da hast du Glück denn Frequenzen sind wesentlich schwerer. Bei PCM/IeeeFloat codierten WAV-Files gehts recht einfach.
    RiffWave header lesen(siehe wiki + binaryreader).
    Anschließend kannste einfach die samples rauslesen und auf die Controlgrößen umrechnen und zeichnen. Achtung immer von der halben Höhe des Controls aus rechnen. Samples sind negativ und positiv. Sieht man auch im Video... manche sind unter der Linie manche drüber. Wie die samples codiert sind dürftest du auch recht schnell rausfinden. Entscheidend ist BitsPerSample im Header und ob PCM oder IeeeFloat o.a. ist.
    IeeeFloat sind immer 32bit und haben werte von -1.0 bis 1.0. PCM sind entweder 8, 16, 24,... Bit lang. Da musste das einfach lesen und wieder auf Prozent umrechnen. Alles in allem ne Arbeit von ca. 1-2 Stunden.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.