Image credit to Michal Marcol / FreeDigitalPhotos.net
Powerpoint Templates Programowanie w środowisku
Windows
Użycie DirectSound i DirectMusic
Łukasz Rączkowski Toruń 30.11.2011
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." Plan prezentacji Czym jest DirectSound?
Jak działa DirectSound?
Czym jest DirectMusic?
Możliwości DirectMusic
Omówienie struktury plików WAVE
Stworzenie aplikacji wykorzystującej DirectSound
Pytania na kolokwium
Czym jest DirectSound? DirectSound to element biblioteki DirectX, który umożliwia szybką i
łatwą kontrolę nad urządzeniami audio. Komponent ten ma wiele zalet,
między innymi umożliwia:
Automatyczne użycie przyspieszenia sprzętowego (gdy jest dostępne)
Miksowanie nieograniczonej ilości dźwięków
Odtwarzanie z niskim opóźnieniem
Efekty przestrzenne
Wsparcie dla zbiorów własności, co daje dostęp do nowych możliwości sprzętu bez zawieszania API
Jak działa DirectSound?
DirectSound opiera się na buforach dźwiękowych. Podstawą jest
obiekt bufora drugorzędnego, który to reprezentuje pojedynczy dźwięk
(może być krótki i mieścić się w jednym bloku pamięci lub długi, co
wymaga streamowania). Bufor przechowuje dźwięk w postaci danych
PCM (Pulse Code Modulation). Możemy mieć dowolną ilość buforów
drugorzędnych, a w czasie odtwarzania DirectSound zmiksuje je do
bufora głównego i przeprowadzi na przykład operację konwersji
częstotliwości próbkowania albo doda efekty przestrzenne. Z bufora
głównego dane PCM są wysyłane do urządzenia wyjściowego.
Jak działa DirectSound?
Podobnie jak inne komponenty DirectX, DirectSound stara się używać
tak dużo przyspieszania sprzętowego jak to tylko możliwe. Gdy tylko
się da, umieszcza wszystkie bufory w pamięci sprzętu i używa
miksowania sprzętowego. W przypadku gdy nie jest to możliwe,
DirectSound użyje emulacji sprzętu aby wykonać zadanie. Proces ten
przestawiony jest na poniższym rysunku:
Czym jest DirectMusic?
DirectMusic jest wysokopoziomowym zestawem obiektów,
zbudowanym ponad DirectSound. Umożliwia pełną kontrolę nad
odtwarzaniem dźwięków bez konieczności odwoływania się do funkcji
niskiego poziomu. Obecnie komponent ten jest zarzucony. Dla 64-
bitowych aplikacji w Windows Vista nie jest dostępny w ogóle, a w
Windows 7 jest tylko częściowe wsparcie (nie ma dostępu do
komponentu wydajnościowego). DirectMusic był często
wykorzystywany w grach – umożliwia tworzenie dynamicznej ścieżki
dźwiękowej, która zmienia się w zależności od zdarzeń w programie.
DirectMusic daje możliwość:
Ładowania i odtwarzania dźwięków z plików lub zasobów w formatach MIDI, WAV lub w binarnym formacie DirectMusic Producer.
Ustalania dokładnego czasu zajścia zdarzeń muzycznych.
Odtwarzania z kilku źródeł jednocześnie, z czego każde z nich może mieć inny czas i zestaw instrumentów.
Wysyłania programowo zmian tempa, zmian ustawienia syntezatora i innych zdarzeń MIDI.
Lokalizowania dźwięków w przestrzeni 3D.
Łatwego zastosowania zmian wysokości dźwięku, pogłosu i innych efektów.
Użycia więcej niż 16 kanałów MIDI. DirectMusic umożliwia odtwarzanie dowolnej ilości głosów jednocześnie, ale nie można przekroczyć limitu syntezatora.
Odtwarzania segmentów na różnych ścieżkach audio, dzięki czemu efekty lub „uprzestrzennienie” mogą być dodane osobno do każdego dźwięku.
Przechwytywania danych MIDI lub przesyłania ich między portami.
Możliwości DirectMusic
Do tworzenia plików dźwiękowych wykorzystujących pełnię interaktywnych
możliwości DirectMusic możemy użyć narzędzia DirectMusic Producer.
Możliwości DirectMusic
Omówienie struktury plików WAVE
Pliki WAVE (*.wav) są zgodne ze specyfikacją RIFF (Resource
Interchange File Format). Oznacza to, że składają się w całości z
„porcji” (bloków danych), które mogą też zawierać „podporcje”. De
facto tworzą więc strukturę drzewiastą. Każdy blok zawiera nagłówek
oraz dane. Pierwszym i najważniejszym blokiem jest blok RIFF –
tworzy on korzeń drzewa. Format tego bloku to WAVE. Zawiera on
dwa podbloki: fmt (określający format danych) oraz data
(przechowujący właściwe dane dźwiękowe).
Omówienie struktury plików WAVE
Omówienie struktury plików WAVE
Stworzenie aplikacji
Przechodzimy do Visual Studio 2010.
Pytania na kolokwium
Narysuj diagram buforowania w DirectSound
2. Omów strukturę plików WAVE
Comments