Hallo Leute Ich habe heute begonnen einen MP3-Decoder zu schreiben. Momentan habe ich das File so weit, dass ich die MP3-Frames und ihre Header auslesen und verstehen kann. Das Problem ist jetzt, wie komme ich, mit C#(oder C oder C++) unter Windows soweit auf die Soundkarte, dass ich unabhängig von DirectX oder ähnlichem 3rd party zeugs bin. Ich möchte das unbedingt verwirklichen, da ich sehr gerne mal in der Musik-Informatik Branche arbeiten möchte und dies mein erster Schritt in die richtige Richtung wäre. Ich hoffe ihr könnt mir helfen, ich finde nämlich keinerlei Infos bei Google die mir im Ansatz helfen könnten. Danke im Voraus Farin
Farin schrieb: > Das Problem ist jetzt, wie komme ich, mit C#(oder C > oder C++) unter Windows soweit auf die Soundkarte, dass ich unabhängig > von DirectX oder ähnlichem 3rd party zeugs bin. Warum willst du davon unabhängig sein? Hier ist die normalen API schnittstellen beschrieben http://msdn.microsoft.com/en-us/library/aa446573.aspx
Farin schrieb: > soweit auf die Soundkarte, dass ich unabhängig > von DirectX oder ähnlichem 3rd party zeugs bin So wie ich das sehe gibt es das "Third Party Zeugs" ja gerade um unabhängig zu werden. Da hast du eine schöne Schnittstelle gegen die du implementieren kannst, weclhe Hardware (Soundkarte) dann darunter sitzt kann dir egal sein. Oder willst du tatsächlich den Treiber selber ansprechen?
DirectX ist als Bestandteil von Windows zu sehen und die bevorzugte Variante um Audio auszugeben. Alternativ gibt es noch die alte "WaveOut" API. Beides sollte in der Windows-SDK beschrieben sein.
Mein Ziel ist es den Treiber anzusprechen, da ich durch den Treiber spezifischere Funktionen der Soundkarte nutzen kann. Mein Ziel ist es eine externe Soundkarte(Digitales Interface für die Gitarre oder ein Mischpult) per USB anzuschliessen und über dessen Treiber die verschiedenen Equalizer-Funktionen etc. der Geräte nutzen zu können. Daher will ich, bevor ich aufnehme und rumspiele Sound ausgeben können. Ich hoffe es geht dennoch trotz der API's. Das Gerät was ich ansprechen möchte wäre z.b. ein G2.1u von Zoom.
Farin schrieb: > Mein Ziel ist es den Treiber anzusprechen, da ich durch den Treiber > spezifischere Funktionen der Soundkarte nutzen kann. dann mach das doch, dann hilft die die doku von MS auch nicht weiter. Dann braucht du die Doku vom Treiber.
Ja, das geht natürlich. Allerdings unterstützt du dann tatsächlich nur dieses eine Gerät. Entwicklungswerkzeuge (in diesem Fall ein SDK) gibts (wenn du Glück hast) beim Hersteller.
Ich hatte leider kein Glück und hab' nun nur den ASIO-Treiber für das Gerät... Hat jemand Beispiel-Code(vlt. C#) mit dem man einen Treiber ansprechen kann? Ich wär euch extrem dankbar. =)
Farin schrieb: > Hat jemand Beispiel-Code(vlt. C#) mit dem man einen Treiber ansprechen > kann? > Ich wär euch extrem dankbar. =) das geht so aber nicht, wenn du keine Doku vom dem Treiber hast kannst du ihn nicht ansprechen. Du brauchst dafür ein SDK vom Hersteller sonst wird das nichst.
Naja, du musst halt den Treiber reverse-engineeren und dich langsam rantasten.
Hab auf CodeProject was tolles für den ASIO Treiber gefunden und werde das bei Zeiten mal Ausprobieren. Der Artikel sieht vielversprechend aus und macht eigentlich genau das was ich will. =D http://www.codeproject.com/Articles/24536/Low-Latency-Audio-using-ASIO-Drivers-in-NET
Farin schrieb: > Der Artikel sieht vielversprechend aus > und macht eigentlich genau das was ich will. ich habe das mal kurz überflogen, aber das macht doch auch nur eine sound ausgabe über ASIO. Nur mit geringer Latenz. Du wolltest doch spezielle funktionen von deinem Gerät ansprechen?
Der ASIO Treiber gibt mir die Möglichkeit Daten über das Gerät aufzunehmen, den Buffer zu modifizieren und zurückzusenden an den Output mit eben dieser Low Latency-Funktion die ich mit DirectX nicht hatte... Das Gerät benutzt den ASIO-Treiber(Sry hab ich vergessen zu erwähnen) und so habe ich alle Gerätefunktionen zur Verfügung =))
Farin schrieb: > Das Gerät benutzt den ASIO-Treiber(Sry hab ich vergessen zu erwähnen) > und so habe ich alle Gerätefunktionen zur Verfügung =)) welche funktionen hast du denn noch zur verfügung? (außer Low Latency)
momentan ist mir nur low latency und voll duplex(hardwareabhängig) bekannt. Ich werde, wenn du möchtest aber darüber auf meinem Blog schreiben. http://www.blog.farin.ch Das Projekt, arbeite gerade daran, wird dann auch dort verfügbar. =)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.