JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=af310cd0e75ed2bfaad385129da226ddMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

DirectSound: Sekundäre Soundbuffer = Channel?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OLiver
Super JLI'ler


Alter: 32
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 29.04.2007, 13:24    Titel: DirectSound: Sekundäre Soundbuffer = Channel? Antworten mit Zitat

Um in DSound einen Sound abzuspielen, kann man ja eine Datei laden, sagen wir mal eine Wave, deren Inhalt in einen (sekundären) Soundbuffer kopieren und den dann abspieln. So hätte man für jeden Sound einen eigenen Soundbuffer. Wenn man jetzt allerdings den gleichen Sound mehrmals parallel abspielen will (man hat z.B. EINEN Kanonenschuss-Sound und mehrere Kanonen, die ggf. gleichzeitig bzw. zeitlich versetzt feuern könnten), funktioniert das ja so nicht mehr. Wenn man da einen Soundbuffer abspielen will, der bereits abgespielt wird, fängt er einfach wieder von vorne an.

Jetzt gibt es natürlich diverse Libs, z.B. FMOD, wo man beim Abspielen von nem Sound eine Channel-Nr. bekommt und wo man auch den GLEICHEN Sound MEHRMALS parallel abspielen kann. Wie wird sowas nun implementiert? Ich dachte mir, dass man einfach pro Channel einen Soundbuffer anlegt, also dass diese Channels nichts anderes als sekundäre Soundbuffer sind. Wenn man jetzt einen Sound abspielen will, sucht man sich einen Soundbuffer (sprich nen Channel), in dem noch kein Sound abgespielt ist, lockt den Buffer, kopiert den Inhalt des Sounds hinein und spielt den dann ab? Und wenn der gleiche Sound von nem Soundbuffer bereits abgespielt wird, nimmt man einfach einen anderen freien? Wird das wirklich so gemacht?
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 29.04.2007, 15:44    Titel: Antworten mit Zitat

Hm.
Also IMHO kann man das auch so machen, das man Soundbuffer clont, d.h. man hat die Wave Datei nur ein einziges mal, aber mehrere lese Zeiger.
So hat jeder Bufferklon eine eigene Position aber immer den selben Sound. Das spart viel Platz.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 29.04.2007, 15:49    Titel: Antworten mit Zitat

Meinst du mit DSound dasselbe wie DirectX Audio?
Mit letzterem sollte es meines Wissens ohne Probleme möglich sein, ein und denselben Soundbuffer mehrmals abzuspielen. Ich glaube, DirectSound und DirectMusic wurden ja unter Audio zusammengefasst, daher kanns sein, dass es nur an der Version liegt, die du verwendest. Wenn dus in etwa so wies in JLI1/2 (weiß nicht, wies in JLI3 ist) machst, sollte das gehen.
Möglich wäre auch, dass irgendwelche Parameter falsch gesetzt sind. Aber vllt. kannst du ja mal den relevanten Code zeigen Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 32
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 29.04.2007, 17:55    Titel: Antworten mit Zitat

Zitat:

Also IMHO kann man das auch so machen, das man Soundbuffer clont, d.h. man hat die Wave Datei nur ein einziges mal, aber mehrere lese Zeiger.
So hat jeder Bufferklon eine eigene Position aber immer den selben Sound. Das spart viel Platz.


Meinst du damit das hier?
http://msdn2.microsoft.com/en-us/library/bb206037.aspx
Ja, das klingt interessant..

Zitat:

Meinst du mit DSound dasselbe wie DirectX Audio?


Naja, DSound und DMusic sind doch immer noch getrennt. Ich versteh nich so richtig, was da zusammengelegt worden ist (ist wahrscheinlich nur ne Sammelbezeichnung?), das hat mich schon damals im Buch verwirrt. In JLI2 wird ja DMusic verwendet. DSound ist halt mehr low-level und außerdem kann es keine Midis abspielen, siehe auch hier: http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c_Dec_2005/DirectSound_and_DirectMusic.asp

Jedenfalls verwende ich DMusic zusammen mit DSound, ersteres halt nur für die Midis und letzteres für die waves, also geht es mir jetzt nur um DSound.
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 29.04.2007, 20:03    Titel: Antworten mit Zitat

OLiver hat Folgendes geschrieben:
Naja, DSound und DMusic sind doch immer noch getrennt. Ich versteh nich so richtig, was da zusammengelegt worden ist (ist wahrscheinlich nur ne Sammelbezeichnung?), das hat mich schon damals im Buch verwirrt.

Stimmt, hast Recht. Jetzt bin ich auch verwirrt Wink
Hab noch mal nachgeschaut. Ich habe früher immer nur DirectMusic verwendet(jeder Sound ein IDirectMusicSegment8). Ich kann mich sogar noch an Probleme erinnern, dass eine Soundloop nicht geklappt hat, weil das Segment zu oft am Stück ablief. Jedenfalls war es mir dabei bisher nie ein Problem, ein und dasselbe Segment mehrmals (gleichzeitig) abzuspielen.

Wieso nimmst du denn nicht einfach DirectMusic oder fmod? Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 32
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 30.04.2007, 14:54    Titel: Antworten mit Zitat

Weil mich solche low-level Sachen und wie das gemacht wird, auch interessiern und DMusic wohl nich so unbedingt für das Abspielen von waves ausgelegt ist..
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum