Problem mit Bass.Dll und 3D Visualisierung
Übersicht
BlitzBasic
Blitz3D
CoReBetreff: Problem mit Bass.Dll und 3D Visualisierung |
Antworten mit Zitat |
|
|---|---|---|
|
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 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 |
Antworten mit Zitat |
|
|---|---|---|
|
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 |
Antworten mit Zitat |
|
|---|---|---|
|
jo danke, damit hab ich es jetzt auch probiert, ist aber das selbe problem.
entw. er sagt BBbank no exists oder er bleibt leer. PS. 2D mit einfachen balken gehen bei mir auch. |
||
CoRe |
Antworten mit Zitat |
|
|---|---|---|
|
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... 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 |
Antworten mit Zitat |
|---|---|---|
|
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 |
Antworten mit Zitat |
|
|---|---|---|
|
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 |
Antworten mit Zitat |
|
|---|---|---|
| Can't load test.mod! | ||
|
|
Vertex |
Antworten mit Zitat |
|---|---|---|
| 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 | ||
Übersicht
BlitzBasic
Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group
