Suche Informtionen DirectSound

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

Suche Informtionen DirectSound

Beitrag von moin »

Hallo,
wo finde ich Informationen zu DirectSound?
Im Netz finde ich nur sehr wenige Beispielcodes mit PureBasic.
Hier habe ich allgemeinere Informationen gefunden:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx


Ich möchte sehr direkt auf die Eingabebuffer der Soundkarte zugreifen können und die einkommenden Signale quasi in Echtzeit analysieren und verändern und dann wieder über Kopfhörer auszugeben.

Mein langfristiges Ziel ist es eine kleines Programm für "Software Defined Radio" (SDR) zu schreiben. Die funktionierende Hardware ist für mich nicht das Problem. Groß ist für mich das Problem vorhandene (veröffentlichte) Programmebeschreibungen von VB in PureBasic zu übersetzen.
Von VB verstehe ich nicht viel :-(

Ist DirectSound überhaupt der einfachste Weg (und fast frei von irgendwelchen Lizenz-Problemen) diese Aufgabe zu lösen?

Mir ist klar, dass ich auf dem Weg zu diesem Ziel noch viel lernen muss. Deshalb bitte ich um Hilfe zur Selbsthilfe.
Grüße
moin
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Re: Suche Informtionen DirectSound

Beitrag von inc. »

Hier mal ein Dsound Beispiel der PureArea.net:
http://www.purearea.net/pb/CodeArchiv/M ... dBuffer.pb

und hier ein Beispiel von mir, wie man audiodaten kontinuierlich streamt (läd und abspielt), also RingBuffering:
http://home.arcor.de/ffvfw/ThreadBasedD ... reaming.pb
Hier gibts die OOP Option für PureBasic.
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

Re: Suche Informtionen DirectSound

Beitrag von moin »

Eine Frage hätte ich zum zweiten Beispiel von inc aus der vorherigen Antwort.
Könnt ihr mir die Zahlen in der DataSection erlären?
Wie kommt man beim Programmieren auf diese Zahlen?
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Re: Suche Informtionen DirectSound

Beitrag von inc. »

Das hier?

Code: Alles auswählen

DataSection
  IID_DirectSoundBuffer8:  ; DSOUND.h
  Data.l $6825A449
  Data.w $7524,$4D82
  Data.b $92,$0F,$50,$E3,$6A,$B3,$AB,$1E
  IID_DirectSoundNotify8:
  Data.l $B0210783
  Data.w $89CD, $11D0
  Data.b $AF,$08,$00,$A0,$C9,$25,$CD,$16
EndDataSection
Das ist die Datasection der vordefinierten GUIDs für die entsprechenden COM-Interfaces welche sodann anhand dessen im Code erstellt werden können:

Code: Alles auswählen

*DSB8.IDIRECTSOUNDBUFFER8
*pDSB\QueryInterface(?IID_DirectSoundBuffer8,@*DSB8)
*DSN8.IDirectSoundNotify
*pDSB\QueryInterface(?IID_DirectSoundNotify8,@*DSN8)
An der Adresse *DSB8 wird so das IDIRECTSOUNDBUFFER8 Interface initialisiert und an DSN8 das IDirectSoundNotify Interface.
Hier gibts die OOP Option für PureBasic.
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

Re: Suche Informtionen DirectSound

Beitrag von moin »

Danke
Woher bekomme ich die Informationen, damit ich selber die COM-Interfaces richtig ansprechen kann?

Eine weitere Frage hätte ich auch noch ;-)
Im Code gibt zu HEX-Werte für einige Flags an. Wo finde ich eine Übersicht?

Grüße
moin
Benutzeravatar
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Suche Informtionen DirectSound

Beitrag von Kiffi »

moin hat geschrieben:Woher bekomme ich die Informationen, damit ich selber die COM-Interfaces richtig ansprechen kann?
wenn Du den einen oder anderen VB6-Schnippsel besorgen kannst, dann
könnten wir versuchen, das gemeinsam in PB (mit COMate) zu konvertieren.

Grüße ... Kiffi
a²+b²=mc²
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

Re: Suche Informtionen DirectSound

Beitrag von moin »

Ich gehe gerne auf euer Angebot ein und möchte mein Projekt genauer skizzieren.
Auf seiner Hompage erklärt Burkhard Kainka wie man in Visual Basic ein Programm für "Software-Defined Radio" SDR entwirft.
Ein sehr kleiner Empfänger wandelt die Radiosignale um und sendet zwei phasengedrehte Audio-Streams an die beiden Kanäle des Stereo-Mikrofon-Eingangs. Die Software bereitet diese Signale dann auf.
Das Programm wird auf dieser Homepage in Schritten aufgebaut. Ich möchte das Programm in PureBasic übersetzen und habe dabei starke Startschwierigkeiten.
In der ersten Programmversion wird ein RingPuffer aufgebaut:
Mit einem Mikrofon wird (z.B.) Sprache aufgenommen. Mit einem Schieberegler kann die Verstärkung eingestellt werden. Die Daten werden dann direkt "bearbeitet" (als Ersatz für eine spätere genauere Analyse) und direkt wieder ausgegeben.

Mit VB habe ich mich noch nie anfreunden können. Bisher habe ich meine Programme immer in PureBasic geschrieben. Bis jetzt habe ich auch fast immer einen Bogen um PureSound und DirectX gemacht. APIs habe ich auch immer und als "BlackBox" eingefügt. (Von dieser eher ungünstigen Startbedingung will ich mich aber nicht entmutigen lassen )

Im Netz habe ich in den letzten Tagen einige Tutorien über APIs und das Einfügen von Dlls gelesen und versucht die wenigen veröffentlichten kleinen PureBasic-Programme zu DirectSound zu verstehen.
Genauere Infos zu DirectSound finde ich nur hier:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Homepage von Burkhard Kainka
http://www.b-kainka.de/dsp1.htm

==> Hier das VisualBasic Programm, dass ich "übersetzen" möchte
http://www.b-kainka.de/DSP1_60dB.zip

Ich würde gerne in den nächsten Tage dieses Programm in mehreren Schritten übersetzen. :-) Mir ist klar, dass ich euch nicht bitten kann dies Programm für mich zu übersetzen.
In den nächsten Tage möchte ich euch bitten mir zu helfen, wenn ich nicht weiter komme.

Zusatzfrage:
Kann ich auch Programme hier als Attachments anhängen, damit die Beiträge leserlich bleiben? Solche kleinen Programm gehen doch schnell über 300 Zeilen.


Grüße moin
Antworten