Audiorecorder von Windows nachprogrammieren.

  • VB.NET

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

    Audiorecorder von Windows nachprogrammieren.

    Hallo

    Ich würde gerne den audiorecorder nachprogrammieren. Aber das wichtig ist nur die progressbar, die wenn es lauter wird sich füllt und wenn es leise ist leer ist.

    kann mir jemand helfen. oder weiß jemand wie man auf das integrierte Mikrophon zugreift??

    mfg 8|

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Da wirst du irgendeine Bibliothek verwenden müssen wie z.b bass aber ob das mit dem peak so geht weiß ich nicht.
    Eine weitere recht einfache Methode wäre die WaveIn WinAPI zu verwenden... hier kannste ma durchblättern.
    Den Peak ansich kannste recht einfach berechnen. Im Stream einfach jedes Sample in einen Int konvertieren und du hast den Wert des Samples. Größe des Samples das WaveFormat fest wird ebenfalls bei WaveInOpen übergeben (WaveFormat). Siehe dort das Feld wBitsPerSample. z.B. 16bit --> 2byte --> short.
    Mit dem Wert vom Sample kannste dann einfach auf Prozent umrechen, da du ja z.b Int16.MaxValue hast und den Wert deines Samples. Das wäre das zum Berechnen. Also am einfachsten einen einfachen Stream erstellen welcher immer alle Samples abtastet und von mir aus als Event weitergibt oder was auch immer.

    Aber an deiner Stelle würde ich mal die bass.dll anschauen. Da gehts sicher wesentlich einfacher (aber auch weniger interessant). Außerdem wenn du wirklich den Recorder nachprogrammieren willst --> der Recorder verwendet zu fast 100% ebenfalls WaveIn


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

    Die Bass.dll ist dort definitiv der richtige Weg.

    Dem kann ich nur zustimmen. Es ist sicher nicht der alleinige Weg, um Dein Ziel zu erreichen.
    Doch hier brauchst Du keine Räder neu zu erfinden. Diese Bibliothek bringt nahezu alles mit, was zumindest Deinen Wünschen gerecht wird.

    Allein die Peak-Amplitute des Signals (z.B. von Deinem Mikrofon) lässt sich zu jedem Zeitpunkt mittels einer Funktion ermitteln.
    Beispiel: Bass.BASS_ChannelGetLevel(MikrofonSignal, Peaklevel)
    Und dieser ermittelte Peaklevel lässt sich mühelos in Deine Progressbar einbinden.

    Das Ansprechen von Aufnahmegeräten (Mikrofon, Eingang, Stereomix usw.) und Wiedergabegeräten (Lautsprecher, Digital Output usw.) ist
    mit dieser Bibliothek ebenfalls vorbildlich gelöst.

    Die von Manawyrm angesprochene FFT-Analyse wird mittels bass.dll hauptsächlich zur Ermittelung bestimmter Frequenzbereiche eingesetzt.
    Sei es zur Visualisierung von Freuenzen oder zur Darstellung eines Equalizers.

    Möchtest Du aber generell Wissen, wie man an solche Daten überhaupt kommt und Deinen Programmier-Horizont dementsprechend erweitern, dann solltest
    Du Dich für eine nativere Variante entscheiden, also Back to the Roots.

    mfg OnkelR

    Manawyrm schrieb:

    Die Bass.dll ist dort definitiv der richtige Weg.

    Das Errechnen des Peaks mit den einzelnen Samples allerdings nicht. Was meinst du, was für einen Peak z.B. eine Sinuswelle hätte.

    Du müsstest daher mit FFT und anderen Methoden arbeiten.

    Nö das hat mit FFT rein gar nichts zu tun. FFT errechnet rein die Anteile von Frequenzbändern. Ein Peak ist aber die Lautstärke wie gesagt --> Wert des Samples.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Und ob das hin haut. Ich habe jedoch einzig eine selbsterklärende Kleinigkeit weggelassen und zwar darf man natürlich nicht jedes sample als peak anrechnen. Am besten du definierst eine Anzahl von Samples von denen immer der größte Wert genommen wird. Wenn du nämlich das nicht tust kannst du gleich sowas zeichnen

    Von dem her hättest du deinen Peak. Also zusammenfassend einfach das größte Sample aus einem Block (von dir festgelegte größe) nehmen --> peak. (Bei Stero müsstest du halt aufpassen, dass immer jedes 2. rechts ist was hier aber eher weniger zur Sache tut).

    Und als Gegenfage welcher Meinung bist du wie man das Ganze machen soll?
    Bedenke wir reden von Peak nicht von Frequenzbändern oder was auch immer.


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

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thefiloe“ ()