Problem mit Bass.Dll und 3D Visualisierung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

CoRe

Betreff: Problem mit Bass.Dll und 3D Visualisierung

BeitragMi, Mai 05, 2004 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe mich ein wenig mit Bass.dll beschäftigt und wollte gerne eine 3D- Visualisierung machen.

Aber irgendwie ist meine Bank leer, wo er die Daten rausliest.

Ich muss dazu satgen das ich nicht grade ein profi bin Embarassed

Hier den Code:


Code: [AUSKLAPPEN]


Include "bass.bb"
file$="test.mod"

Const width=800
Const height=600
Graphics3D width,height,16,2
SetBuffer BackBuffer()

Global gentCameraVu            
Global gentVuPivot            
Dim aryVuEntity( 4, 4 )         
Dim aryVuLevel#( 4, 4 )         
gentCameraVu = CreateCamera()
   CameraClsMode gentCameraVu, False, True
gentVuPivot = CreatePivot( gentCameraVu )

   For intX = 1 To 4
      For intY = 1 To 4
         entVu = CreateCube( gentVuPivot )
         PositionEntity entVu, (intX-2.5)*2, 0.5, (intY-2.5)*2
         ScaleMesh entVu, 0.75, 1, 0.75
         EntityColor entVu, 128+intY*32, 255-intX*32, 255-intY*32
         EntityAlpha entVu, 0.5
         aryVuEntity(intX,intY) = entVu
         aryVuLevel(intX,intY)  = 2
      Next
   Next
   PositionEntity gentCameraVu, 50, 250, -100
   PositionEntity gentVuPivot, 0, -3, 10
   PointEntity gentCameraVu, gentVuPivot

hWnd = GetActiveWindow()
If Not BASS_Init(-1,44100,0,hWnd) Then
        RuntimeError "BASS.dll can't be initialize!"
EndIf
If Not BASS_Start() Then
        BASS_Free()
        RuntimeError "Can't start it!"
EndIf
tune = BASS_MusicLoad(0,File$,0,0,BASS_MUSIC_LOOP Or BASS_MUSIC_RAMP Or BASS_MUSIC_FX)
BASS_StreamPlay(tune, 0, BASS_SAMPLE_LOOP)
BASS_MusicPlay(tune)

While Not KeyDown( 1 )


Cls
   
bnkChannelData = BASS_ChannelGetData( gchnMusic, BASS_DATA_FFT2048 )
      
For intX=1 To 4
For intY=1 To 4
intVu = (intX-1) * 8 + intY-1
entVu = aryVuEntity(intX,intY)
fltVuLevel# = PeekFloat(bnkChannelData, intVu*1)*2
aryVuLevel(intX,intY) = aryVuLevel(intX,intY) - 0.05
If fltVuLevel > aryVuLevel(intX,intY) Then
aryVuLevel( intX,intY ) = fltVuLevel
Else
fltVuLevel = aryVuLevel(intX,intY)
End If
If aryVuLevel(intX,intY)<0.2 Then
   aryVuLevel(intX,intY) = 0.2
End If
ScaleEntity entVu, 1, fltVuLevel, 1
PositionEntity entVu, EntityX(entVu), 0.5+fltVuLevel, EntityZ(entVu)
    Next
      Next

      FreeBank bnkChannelData
   

RenderWorld
Flip

Wend

BASS_Stop : BASS_StreamFree(tune)
BASS_MusicFree(tune) : BASS_Free()
End



Function BASS_ChannelGetData(iHandle,iBufferSize)
   Local mBankIn,iResult,iBankSize
   
   mBankIn  = CreateBank(8)
   PokeInt mBankIn,0,iHandle
   Select iBufferSize
      Case BASS_DATA_FFT512
         iBankSize = (256 * 4) + 4
      Case BASS_DATA_FFT1024
         iBankSize = (512 * 4) + 4
        Case BASS_DATA_FFT2048
         iBankSize = (1024 * 4) + 4
      Default
         iBankSize = iBufferSize
   End Select

   PokeInt mBankIn,4,iBufferSize
   mBankOut = CreateBank(iBankSize)
      
   iResult = CallDLL(sBlitzBASSDLLNameA101B6,sBlitzBASSDLLCommandPrefixA101B6 + "BASS_ChannelGetData_Wrap",mBankIn,mBankOut)
   FreeBank mBankIn

   Return mBankOut
End Function


wäre cool, wenn ihr mal drüber schaun könntet.

mfg
core
 

IonPainter

BeitragMi, Mai 05, 2004 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
arg, wieso machst du das auch mit calldll? vertex hat da sone spitzen userlib gecodet und da is auch visualisierungsexample dabei...

http://www.blitzbasic.com/arch...opic=21552
 

CoRe

BeitragMi, Mai 05, 2004 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
jo danke, damit hab ich es jetzt auch probiert, ist aber das selbe problem.

entw. er sagt BBbank no exists oder er bleibt leer. Sad

PS. 2D mit einfachen balken gehen bei mir auch.
 

CoRe

BeitragMi, Mai 05, 2004 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ist der Code mit Vortex's Bass.dll

Jetzt geht es zwar ohne Fehler, aber ich habe das gefühl das die Bank
keine Daten liefert... Sad

Code: [AUSKLAPPEN]

Include "bass.bb"
file$="test.mod"

Const width=800
Const height=600
Graphics3D width,height,16,2
SetBuffer BackBuffer()
camera=CreateCamera ()

Global gentCameraVu            
Global gentVuPivot
Dim aryVuEntity( 4, 4 )         
Dim aryVuLevel#( 4, 4 )   
gentCameraVu = CreateCamera()
   CameraClsMode gentCameraVu, False, True
gentVuPivot = CreatePivot( gentCameraVu )

   For intX = 1 To 4
      For intY = 1 To 4
         entVu = CreateCube( gentVuPivot )
         PositionEntity entVu, (intX-2.5)*2, 0.5, (intY-2.5)*2
         ScaleMesh entVu, 0.75, 1, 0.75
         EntityColor entVu, 128+intY*32, 255-intX*32, 255-intY*32
         EntityAlpha entVu, 0.5
         aryVuEntity(intX,intY) = entVu
         aryVuLevel(intX,intY)  = 2

      Next
   Next
   PositionEntity gentCameraVu, 50, 250, -100
   PositionEntity gentVuPivot, 0, -3, 10
   PointEntity gentCameraVu, gentVuPivot

hWnd = GetActiveWindow()
If Not BASS_Init(-1,44100,0,hWnd) Then
        RuntimeError "BASS.dll can't be initialize!"
EndIf
If Not BASS_Start() Then
        BASS_Free()
        RuntimeError "Can't start it!"
EndIf
tune = BASS_MusicLoad(0,File$,0,0,BASS_MUSIC_LOOP Or BASS_MUSIC_RAMP Or BASS_MUSIC_FX)
BASS_StreamPlay(tune, 0, BASS_SAMPLE_LOOP)
BASS_MusicPlay(tune)

Buffer = CreateBank(512 * 4)


Result = BASS_ChannelGetData(Stream,Buffer,BASS_DATA_FFT512)

While Not KeyDown( 1 )

BASS_ChannelGetData(Stream,Buffer,BASS_DATA_FFT512)      


Cls
   
For intX=1 To 4
For intY=1 To 4
intVu = (intX-1) * 8 + intY-1
entVu = aryVuEntity(intX,intY)
fltVuLevel# = PeekFloat(buffer, intVu*1)*2

aryVuLevel(intX,intY) = aryVuLevel(intX,intY) - 0.05
If fltVuLevel > aryVuLevel(intX,intY) Then
aryVuLevel( intX,intY ) = fltVuLevel
Else
fltVuLevel = aryVuLevel(intX,intY)
End If
If aryVuLevel(intX,intY)<0.2 Then
   aryVuLevel(intX,intY) = 0.2
End If
ScaleEntity entVu, 1, fltVuLevel, 1
PositionEntity entVu, EntityX(entVu), 0.5+fltVuLevel, EntityZ(entVu)
    Next
      Next

   

RenderWorld
Flip

Wend

BASS_ChannelStop(Channel)
BASS_Stop()
BASS_Free()
End


tft

BeitragMi, Mai 05, 2004 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.....

weis einer wo ich die Bass Dll 1.45 mit den Beispielen bekomme. Die Liks im BlitzBase Forum sind alle tot.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!
 

IonPainter

BeitragDo, Mai 06, 2004 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
probier mal das:

Code: [AUSKLAPPEN]

Graphics 640,480,32,2 : SetBuffer BackBuffer()
AppTitle "Lips-Example" : Include "bass.bb"

;hWnd = GetActiveWindow()
If Not BASS_Init(-1,44100,0,hWnd) Then
   RuntimeError "bass.dll can't be initialize!"
EndIf

If Not BASS_Start() Then
   BASS_Free()
   RuntimeError "Can't start it!"
EndIf

Stream = BASS_StreamCreateFile(0,"test.mod",0,0,BASS_SAMPLE_LOOP)
If Not Stream Then
   BASS_Free()
   RuntimeError "Can't load test.mod!"
EndIf

Channel = BASS_StreamPlay(Stream,0,BASS_SAMPLE_LOOP)
If Not Channel Then
   BASS_StreamFree(Stream)
   BASS_Free()
   RuntimeError "Cant't play test.mod!"
EndIf


While Not KeyDown(1)
   Cls

   Level = BASS_ChannelGetLevel(Stream)
   
   ; Head
   Color 255,255,0 : Oval 120,40,400,400,0
   
   ; Lips
   Color 255,0,0   : Oval 235,330 - (Level / 40000) / 2,170,0 + (Level / 40000),0
   
   ; Eyes
   Color 0,255,255
   Oval 200,150,50,70,0
   Oval 390,150,50,70,0
   
   ; brows
   Color 255,255,255
   Line 160,130 - Level / 80000,250,120 - Level / 120000
   Line 390,120 - Level / 120000,480,130 - Level / 80000
   
   Flip
Wend

BASS_Stop : BASS_StreamFree(Stream)



[/quote]
 

CoRe

BeitragFr, Mai 07, 2004 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Can't load test.mod!

Vertex

BeitragFr, Mai 07, 2004 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Streams können ja auch nur MP3, MP2, MP1, OGG oder WAV Dateien sein. Versuchs mal über BASS_MusicLoad. Das Musichandle übergibst Du dann einfach an BASS_ChannelGetData.
vertex.dreamfall.at | GitHub

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group