Sound mit DirectX SDK für VB

Teil 6: Sound mit DirectX SDK für VB

Wenn Ihnen die normale Wiedergabe zu langweilig erscheint, können Sie sie mit neun vordefinierten Effekten aufpolieren, von denen Sie eine beliebige Anzahl gleichzeitig verwenden können.

Sound mit DirectX SDK für VB

© Archiv

DAS FORMULAR des Beispielprojekts, seine Steuerelemente und deren wichtigste Eigenschaften.

DIRECTMUSIC-EFFEKTE

Konstante   Effekt
   
DSFX_STANDARD_CHORUS Chorus
DSFX_STANDARD_COMPRESSOR Kompressor
DSFX_STANDARD_DISTORTION Verzerrung
DSFX_STANDARD_ECHO Echo
DSFX_STANDARD_FLANGER Flanger
DSFX_STANDARD_GARGLE Gurgeln
DSFX_STANDARD_I3DL2REVERB Nachhall 1
DSFX_STANDARD_PARAMEQ Equalizer
DSFX_STANDARD_WAVES_REVERB Nachhall 2

Dazu benötigen Sie ein Effekt-Array vom Typ DSEFFECTDESC, in dem Sie für jeden Effekt ein Element reservieren. Gleichzeitig brauchen Sie ein weiteres Array, um Fehlermeldungen zurückgeben zu können. Das Beispiel

Dim dmsEffekte(0 To 1) As _ DSEFFECTDESC Dim lngResults(0 To 1) As Long

reserviert ein Effekt- und ein Fehlermeldungs- Array, die jeweils zwei Elemente (mit den Indexzahlen 0 und 1) aufnehmen können. Zum Festlegen der Effekte weisen Sie jedem Element des Effekt- Arrays über dessen guidDSFXClass-Eigenschaft die passende Konstante aus der vorigen Tabelle zu. Das Beispiel kombiniert die Effekte Echo und Verzerrung:

dmsEffekte(0).guidDSFXClass = _ DSFX_STANDARD_ECHO dmsEffekte(1).guidDSFXClass = _ DSFX_STANDARD_DISTORTION

Bevor Sie die Effekte anwenden können, müssen Sie den Inhalt des Audiopfads in einen sekundären Puffer kopieren, was Sie mit Hilfe der GetObjectinPath-Methode erledigen. Den Rückgabewert der Methode weisen Sie einer Variablen vom Typ DirectSoundSecondaryBuffer8 zu:

Set objPuffer = _ objDMPfad.GetObjectinPath _ (DMUS_PCHANNEL_ALL, _ DMUS_PATH_BUFFER, 0, GUID_ALL, _ 0,IID_DirectSoundSecondaryBuffer)

Nun müssen Sie den Audiopfad vorübergehend deaktivieren, wozu Sie eine gegebenenfalls laufende Wiedergabe zuvor stoppen müssen:

objDMPfad.Activate False

Mit dem Aufruf der Puffer-eigenen Set- FX-Methode übergeben Sie die Anzahl der Effekte (2), das Effekt- sowie das Fehlermeldungs-Array:

Sound mit DirectX SDK für VB

© Archiv

DAS FORMULAR des Beispielprojekts, seine Steuerelemente und deren wichtigste Eigenschaften. >>> Grossansicht

objPuffer.SetFX 2, dmsEffekte, lngResults

Danach können Sie den Audiopfad und damit die Effekte aktivieren:

objDMPfad.Activate True

Um alle Effekte auszuschalten, wiederholen Sie die Prozedur ab dem Kopieren des Audiopfads in einen sekundären Puffer, übergeben der SetFX-Methode aber eine Null sowie je ein leeres Effektund Fehlermeldungs-Array:

objPuffer.SetFX 0, dmsEffekte, lngResults

Mehr zum Thema

Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
Amazon Blitzangebote
Technik-Deals

Die Highlights der Amazon Blitzangebote - heute mit Weihnachts-Angebote-Woche, Asustor-NAS, 2-TB-SSD von Samsung, Laptop-Kühler und mehr.
Tipps zum leisen PC
Tipps und Tricks

Die Komponenten eines PCs erzeugen Hitze. Lüfter sorgen meist für eine lästige Geräuschkulisse. Mit unseren Tricks wird Ihr PC flüsterleise.
SSD Mythen Tipps
Solid State Disk

SSD-Tuning - was ist wahr, was ist falsch? Wir verraten, welche SSD-Mythen Sie vergessen können und welche Tipps wirklich helfen.
Urlaubsbilder
Fotografieren im Sommer

Von Sommerlicht bis Sonnernuntergang: Unsere 7 Tipps verraten, wie Sie Urlaubsfotos richtig machen und schöne Bilder mit nachhause bringen.