CSCore - Highperformance Audiobibliothek

    • Release
    • Open Source

    Es gibt 589 Antworten in diesem Thema. Der letzte Beitrag () ist von simpelSoft.

      Wusste nicht dass man das kann ^^ Habs sonst immer via Try-Catch auslesen können.
      Bilder
      • Unbenannt.png

        65,67 kB, 1.330×700, 168 mal angesehen
      Jo habe ich ausgebessert. Wasapi ist da immer wieder für Überraschungen gut :). Ich hau anschließend gleich nen Update rauf. Siehe noch meinen vorigen post für mehr infos.
      EDIT: Update ist auch oben. Einfach über Nuget aktualisieren.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Sorry war noch auf einer Party :D Also ich teste jetzt mal 0.9.0.1. Zur Info: ich habe mit foobar und Audacity versucht die Dateien zu öffnen. Jetzt wo du es sagst, dass ich auch die Writer Disposen sollte wird einiges klarer. Auch die unterschiedlichen Datenstreams sind logisch. Ich geh irgendwie bei beidem davon aus irgendein Schitt zu sein der funktioniert und gleich ist :D Und ich bezweifle, dass ein 7€ Speedlink-Standmikro so einen Hammer Output hat :D

      Ok es hat funktioniert, aber die wavs sind zwar abspielbar und korrekt, aber unterschiedlicher Länge :O Wasapi nimmt wohl nur BG auf, wenn es auch Output gibt.
      Was heißt, nimmt wohl nur BG auf? Habe deinen Code getestet und der funktioniert einwandfrei. Wenn der Ton leise ist, dann kannst du mal nachschauen was für ein Device eingestellt ist(ist unter WasapiCapture.Device). Es wird immer das Defaultgerät genommen(nur irgendwie ist das bei mir hin und wieder auch nen anderes Gerät als ich eigentlich wollte).


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Hatte das gestern ausprobiert hab ins Mikro gelabert und dann ist mir aufgefallen: ich höre ja keine Musik. Musik angemacht. Und erst ab da wurde der Hintergrund(BG) aufgenommen. Somit waren die Spuren ungleich lang und die Hintergrundspur fing gleich mit Musik an und nicht mit Ruhe.
      Aso das meinst du. Das ist logisch, da sich Wasapi quasi in der Renderqueue vom Audiotreiber reinsetzt. Wird ein Ton gerendert, so bekommt das WasapiCapture mit und teilt das mir mit. Wird nichts gerendert, so wird auch nichts aufgenommen ;). In dem Fall hat aber doch noch alles geklappt?


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Ja klar, hat es. Warte heißt das, wenn nichts gerendert wird (also quasi auch Ruhe im Lied ist), dann wird keine Leere aufgenommen sondern erst wieder wenn Ton kommt? Habs grad getestet. Passt alles ;)
      Wäre es jetzt möglich mit deiner Lib eine mehrstreamige (geht das überhaupt in Audiocontainern?) OGG/MP3/... zu machen?
      Noch nicht. a) unterstützten dies nicht alle container. OGG würde es unterstützten. Dort hatte ich auch schon angefangen(ob ich nen encoder mache weiß ich aber noch nicht). Problem ist halt bei OGG nocht, dass ich dafür erstmal nen Vorbis decoder bzw. encoder schreiben müsste. Und das naja... schieb ich immer auf :P. Ich werde aber demnächst mal nen MediafoundationEncoder zur Verfügungstellen(kann noch die Woche kommen). Der läuft dann ab Vista und unterstützt je nach Platform recht viele Formate. Und irgendwann werde ich mich dann auch mal an vorbis ranwagen. Nur decoder und encoder in .net sind immer so ne Sache. Habs beim FLAC decoder gesehen, dass bis alles stabil und performant läuft es einfach doch einiges braucht. Mal schauen ob ich Zeit finde. Geplant ist es allemal.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Freu ich mich schon mal drauf :D Vorbis ist ja OpenSource, ließe sich ja viel kopieren.
      Ist zwar opensource, ist flac auch und die meisten anderen Formate auch. Jedoch a) ist das Zeug in C geschrieben und verwendet teilweise sogar noch inline asm(machen einige formate so -> flac hat z.b. den bitreader zu 100% in x86 asm geschrieben) und lässt sich somit nicht wirklich gut kopieren und b) kopiere ich bei der lib aus Prinzip nicht. Ich will alles zu 100% selbst in die Tasten gehauen haben(bis auf 1-2 Enumerationen was mir dann doch irgendwie zu dumm war das selbst aus der headerdatei abzutippen :P) und vorallem will ich bei jeder Zeile wissen was ich da geschrieben habe. Selbst wenn da noch irgend ein Algorithmus zum kopieren wäre, dann würde ich das nicht machen, da ich wissen will wie er funktioniert und wenn ich schon weiß wie er funktioniert, kann ich ihn auch gleich selbst schreiben :P.

      Aber noch mal: Auch wenn irgendwie alle Angst vor dem Projekt haben(zumindest wird mir das immer wieder gesagt ...) würde ich mich freuen wenn jemand mitmachen würde(dann würde auch mal bisschen was vorwärts gehen).


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Ich könnte mich wohl für eine C++-Portierung anbieten, aber du hast mein vorhandenes Wissen über Audioverarbeitung bei weitem schon längst eingebaut somit kann ich auf der Contentebene wenig hinzufügen.
      Naja wenn jemand wirklich mitmachen möchte, müsste er halt mal schauen, dass er nen bisschen Überblick über die Features hat und die Architektur hat und dann findet man auch recht schnell nen Anfang. Müsste man halt absprechen, aber es wäre kein Problem, wenn jemand z.B. anfängt ein neues Format zu implementieren, nen MIDI Synthesizer schreibt oder eine ASIO Schnittstelle macht. Wie gesagt, müsste man halt miteinander absprechen. Aber wie gesagt Voraussetzung ist halt, dass man halbwegs weiß was es bereits gibt und wie es funktioniert(heißt nicht, dass man z.b. wissen muss wie der flac decoder funktioniert).

      Aber man sollte sich schon bewusst sein, was man sich da antut^^, denn ThuCommix hat schon recht. Das Problem ist halt bei größeren Projekten immer, dass es recht schwierig ist komplett neue Mitglieder aufzunehmen :(.


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

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

      Vielleicht n eigenes Format mit einbauen so à la Rohdaten in nem gzip-Stream oder so? Ansonsten wüsst ich sogar fast gar nichts mehr der ToDo-List hinzuzufügen ^^. Und mehr als den Portierungsvorschlag und das kann ich nicht anbieten. Aber ich gönne dem Projekt einiges.
      Eigenes Format ist eher schwierig, da die ganzen Mathematiker da garantiert schlauer sind als ich :P. Die haben da schon das Maximum bei den Formaten rausgeholt.
      Aber glaube mir die Todo Liste ist noch viel, viel, viel länger. Mal schauen. C++ Portierung, will ich keinem zumuten, da das mit der Zeit einfach extrem langweilig wird. Deshalb brauche ich auch für die ganzen Comimporte etwas länger. Wenn ich was weiß, das außer nur portieren(das will ich wirklich niemandem zumuten, da ich das schon mehr als nur hasse), werde ich gern darauf zurückkommen.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Wie wärs mit Decodern, die Videos annehmen, den Audiostream raussplitten, damit man ihn in der Lib verwenden kann, und den Videostream irgendwo anders hinschicken (Direct3D oder so).
      Weil wenn ich im Moment Videos wieder geben wollte, dann könnte ich leider nicht deine klasse Lib zum kontrollieren des Audios verwenden.
      Ich würds ja selber machen, aber leider hab ich keine Ahnung von solchem Zeug.
      Kann es sogar schon teilweise ;). Nur wird im Moment nur die Audiospur extrahiert und das läuft nur dank zig Cominterface und der Mediafoundation. Somit erst ab vista. Aber es dürfte nicht schwierig sein die Videospur ebenfalls zu extrahieren und irgendwo weiterzuleiten. Leider habe ich keine Ahnung davon wie das ganze Video Zeug funktioniert. Habe aber auch schon darüber nachgedacht. Wäre aber sich auch nicht so einfach, da dann video und audio exakt synchron laufen müssen. Fraglich ist wer das irgendwie taktet, denn wenn du einen Film anschaust und die Lippen bewegen sich nur einen Bruchteil einer Sekunde bevor du es hörst, dann ist das einfach komisch bzw. auch bekannt unter magie^^.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Ich hätte eine Frage, und zwar würde ich zusammen mit Leonalter hier aus dem Forum gerne ein VU bzw. Peakmeter bauen. Das ist hiermit ja schonmal gut möglich. Derzeit wissen wir aber nur wie man den Standardausgang darstellen lassen kann.
      Gibt es eine Möglichkeit andere Ausgänge darzustellen? Zudem wird derzeit die Lautstärke ohne Bezug der Eingestellten Lautstärke der Soundkarte dargestellt, die Darstellung zeigt also das an was wäre wenn die Lautstärke auf 100% ist.

      Ich hoffe du kannst uns da weiterhelfen :)