Sound3D Funktion gesucht

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Puccini

Betreff: Sound3D Funktion gesucht

BeitragMo, Jul 16, 2007 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich suche eine ersatzfunktion für die EmitSound und Load3DSound funktion in B3D!
Ich hab gehört das diese auf manchen rechnern Probleme machen und auch bei mir kommt ab und zu ein fehler-ton einfach mal so raus ^^

daher hatte ich mal eine funktion hier im forum gefunden die geeigent schin, leider aber nicht vollständig ist!
ich hab die versucht zu erweitern, aber nich ganz so hinbekommen wie ich das wollte! :< mir fehlt da glaub ich etwas verständniss ^^ sooorry!

hier mal meine abgeänderte Version:

Code: [AUSKLAPPEN]
Type MusikDaten
Field Platz
Field Lied
Field Channel
Field Weite
Field Vol#
End Type

Graphics3D 1024,768,16,2
SetBuffer BackBuffer()
S = CreateSphere(16)
Global Cam = CreateCamera()
CameraRange Cam,1,10000
Global pan#
PositionEntity cam,0,0,-50

Musik.MusikDaten = New MusikDaten
Musik\Lied = LoadSound("Musik.mp3")
Musik\Channel = PlaySound(Musik\Lied)
Musik\Platz = CreatePivot()
Musik\Weite = 100
Musik\Vol = 0

While Not KeyHit(1)

Cls

If KeyDown(200) Then MoveEntity Cam,0,0,-1
If KeyDown(208) Then MoveEntity Cam,0,0,1
If KeyDown(203) Then TurnEntity Cam,0,1,0 
If KeyDown(205) Then TurnEntity Cam,0,-1,0

UpdateMusik()

Delay 10
RenderWorld

Text 0,0,pan#+" "+EntityYaw#(cam)

Flip
Wend
End



Function UpdateMusik()

For Musik.MusikDaten = Each MusikDaten

Dis# = EntityDistance(cam,Musik\Platz)
If Dis<>0.0 Then
Musik\Vol = 1.0 - (Dis#/(Musik\Weite))
ChannelVolume Musik\Channel,Musik\Vol
x#=EntityX(cam)-EntityX(Musik\Platz)
z#=EntityZ(cam)-EntityZ(Musik\Platz)
;Hier weis ich nicht wie ich die 2 Winkel unter einen Hut bekomme
pan# = (ATan2(x#,z#)+360+EntityRoll(cam)) Mod 360
pan# = (EntityYaw#(cam))/90      ;Leider ist das auch noch nich das gelbe vom Ei!

ChannelPan Musik\Channel,Pan#
EndIf
Next

End Function

wenn sich damit einer mehr auskennt kann er mir ja bitte mal nen tipp geben Very Happy vorranging ist es wichtig das richtig erkannt wird ob das objekt links oder rechts von der Kamera ist. Das mit der Weite klappt ja so schon wies soll.
Wink
MfG Puccini
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

Krümel

BeitragMo, Jul 16, 2007 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf die Schnelle würd ichs mit "DeltaYaw" machen:

Code: [AUSKLAPPEN]

Function UpdateMusik()
   For Musik.MusikDaten = Each MusikDaten

      Dis# = EntityDistance(cam,Musik\Platz)
      If Dis<>0.0 Then
         Musik\Vol = 1.0 - (Dis#/(Musik\Weite))
         ChannelVolume Musik\Channel,Musik\Vol
         x#=EntityX(cam)-EntityX(Musik\Platz)
         z#=EntityZ(cam)-EntityZ(Musik\Platz)


         ;Hier weis ich nicht wie ich die 2 Winkel unter einen Hut bekomme
         pan# = -Sin(DeltaYaw(cam,Musik\platz))

         ChannelPan Musik\Channel,Pan#
      EndIf
   Next

End Function

Puccini

BeitragDi, Jul 17, 2007 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

danke! genau das hab ich gesucht Very Happy oh man Rolling Eyes delta!! da hätte ich auch drauf kommen können! ich hab halt nur nach entityyaw und roll und so gesucht gehabt! aber das mit dem sinus is ne gute idee Wink

klappt soweit hervorragend!
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39
 

Omenaton_2

Betreff: Wozu Winkel ?

BeitragSo, Jul 22, 2007 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe auch gerade meine eigene Erfahrungen mit EmitSound und was dazugehört gemacht. Sehr schade, daß man diese 3D Sound Befehle nicht vernünftig nutzen kann. Bei mir war es so, daß das extrem auf die Performance ging und manchmal hat der 3D Sound den anderen, ambienten Sound ausgeschaltet.

Ich frage mich nur, welchen Sinn macht es die Lautstärke von dem Winkel abhängig zu machen ?
Ich habe beispielsweise einen "Generator" im Weltraum und wenn ich mich dem mit meinem Raumschiff nähere, dann soll es lauter werden. Wenn ich davor stehe dann ganz laut. Ob ich mich dabei drehe sollte egal sein.

Ich kann es schon verstehen, daß der Mensch ein klein wenig (minimal) besser hören kann, wenn man sein Ohr in die Richtung wendet, aus der der Schall kommt, aber das ist absolut zu vernachlässigen.

Xeres

Moderator

BeitragSo, Jul 22, 2007 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wär aber manchmal ganz günstig zu wissen, woher ein Geräusch kommt, besonders wenn ein unangenehmes Wesen dir ins Ohr Atmet Wink
Weniger die Lautstärke, sondern die Links/Rechts Verteilung auf die Boxen ist da wichtig, und da braucht man den Winkel zwischen Ohr und Quelle.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Puccini

BeitragSo, Jul 22, 2007 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab den Code im Codearchive gepostet, also wenn du ihn benutzen willst kannste ihn dir da rauskopieren Wink

Nich die Lautstärke wird vom winkel abhänging gemacht sonder die Balance!

Somit kannste hören von wo der Sound kommt und anhand der lautstärke (welche mittels entfernung berechnet wird) kannste hören wie weit weg er ist Very Happy
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group