1 / 16

Sound und Musik

Sound und Musik. Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Prof. Dr. Manfred Thaller Referent: Tobias Kemper. Inhalt. Direct Sound Soundpuffer Kontrolle eines Sounds

cissy
Download Presentation

Sound und Musik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sound und Musik Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Prof. Dr. Manfred Thaller Referent: Tobias Kemper

  2. Inhalt Direct Sound Soundpuffer Kontrolle eines Sounds WAV-Dateien laden 3D-Sound Echtzeiteffekte Musik Direct Sound in TriBase

  3. Direct Sound Komponente von DirectX Mischen einer unbegrenzten Anzahl an Sounds Nutzung von Echtzeiteffekten 3D-Sound (!) Alle Sounds werden in Soundpuffern organisiert Mixer mischt alle spielenden Soundpuffer zu einem zusammen und schreibt das Ergebnis zum Abspielen in den primären Soundpuffer

  4. Direct Sound Schnittstellen: IDirectSound8 und IDirectSoundBuffer8 Abzählen der Geräte mit DirectSoundEnumerate Die DirectSound-Schnittstelle IDirectSound8 wird durch DirectSoundCreate8 erzeugt Mit IDirectSound8::SetCooperativeLevel setzt man die Kooperationsebene von Direct-Sound

  5. Soundpuffer Soundpuffer mit IDirectSound8::CreateSoundBuffererzeugen Ein Primärer und mehrere Sekundäre für die einzelnen Sounds Drei Parameter : -Zeiger auf eine DSBUFFERDESC-Struktur -Adresse eines Zeigers auf die Schnittstelle -nicht verwendeter Parameter (NULL) Struktur DSBUFFERDESC beinhaltet verschiedene Informationen über den Soundbuffer, die Größe (Länge) des Soundpuffers und sein Format Flags zu „Sonderwünschen“ auf Seite 424 Das Format (Audioformat) bestimmt die Soundqualität: Sampling-Frequenz, Anzahl der Bits pro Sample und die Anzahl der Kanäle Um IDirectSoundBuffer8zu erhalten wird die COM-Methode QueryInterfaceaufgerufen -> Mehr Fähigkeiten als die „Normale“

  6. Soundpuffer g_pSound->Lock(0, //Sperren abPosition 0, //Anz zu sperr Bytes (void**)(&pSamples), //Zeiger 1 &dwNumBytes, //Zeiger 2 NULL, NULL, DSBLOCK_ENTIREBUFFER)//Flag Gesamt/Teil Soundpuffer sperren Ringförmiger Soundpuffer (Looping) Stückweises Füllen mit Streaming Abspiel- und Schreibcursor

  7. Beispielprogramm Beispiel 05-02 Soundpuffer

  8. Kontrolle eines Sounds IDirectSoundBuffer8::Play spielt einen Soundpuffer ab Mit Stopwird er angehalten SetVolume setzt die Abspiellautstärke eines Soundpuffers –10000 (totale Stille) bis 0 (Originallautstärke) Soundpuffer FlagDSBCAPS_CTRLVOLUMEsetzen! Balance mit der SetPan-Methode –10000 bedeutet 100% links und 0% rechts, +10000 bedeutet 0% links und 100% rechts Die Frequenz eines Sounds lässt sich mit SetFrequency anpassen

  9. WAV-Dateien laden unkomprimierte PCM-Rohdaten bestehen aus einem Header und mehreren Chunks LoadWAVFile WAV-Dateien können direkt geladen und in den Soundpuffer geschrieben werden

  10. 3D Sound Sound und Hörer besitzen eine Position und eine Geschwindigkeit Effekte und Geräuschspositionen können simuliert werden IDirectSound3DBuffer8 steht für einen 3D-Soundpuffer QueryInterface auf einem Soundpuffer aufrufen, der mit dem FlagDSBCAPS_CTRL3D erstellt wurde und nur einen Kanal hat 3D-Algorithmus: DS3DALG_NO_VIRTUALIZATION (einfach und schnell) DS3DALG_HRTF_FULL (realistischstes Ergebnis, viel Rechenzeit) DS3DALG_HRTF_LIGHT (fast so gut wie „FULL“ , weniger Rechenzeit) Hörerschnittstelle IDirectSound3DListener8 repräsentiert den virtuellen Hörer

  11. 3D Sound SetPositionund SetVelocity weisen dem 3D-Soundpuffer bzw. dem Hörer eine Position und einen Geschwindigkeitsvektor im Raum zu SetOrientation -> Orientierung für den Hörer BEISPIELPROGRAMM 3D Sound Bsp. 05-04

  12. Echtzeiteffekte Sounds in Echtzeit verändern: Echo, Verzerrung, Widerhall muss mit dem FlagDSBCAPS_CTRLFX erstellt worden sein Effekte dem Soundpuffer zuweisen, bevor er abgespielt wird und während er nicht gesperrt ist -> SetFX

  13. Echtzeiteffekte Jeder Effekttyp besitzt eine eigene Schnittstelle, über die man die Effektparameter einstellen kann Über die Methode GetObjectInPath des Soundpuffers Mit IDirectSound3DListener8::SetDopplerFactor und SetRolloffFactor die Intensität des Dopplereffekts beziehungsweise der Schallabschwächung über- oder untertreiben

  14. Musik DirectShow für alle Multimediaformate alle Audio und Videodaten durchlaufen ein Filtersystem Schnittstelle IMediaControlerlaubt Kontrolle über Play, Pause und Stop Über IMediaSeeking lässt sich der Abspielcursor verschieben und die Geschwindigkeit verändern

  15. Direct Sound in TriBase tbDirectSound tbSound tbMusic automatische Berechnung der Geschwindigkeit des Hörers Laden von Sounds und Musik weitere Methoden zum Generieren der Schnittstellen BEISPIELPROGRAMM 05-06

  16. Vielen Dank für Ihre Aufmerksamkeit! Verwendete Literatur:David Scherfgen: 3D-Spiele-Programmierung. München, 2006, S. 418-480.

More Related