19 May '13 - 05:07 *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Login Register  
Pages: [1]
  Reply  |  Print  
Author Topic: How to use BASS_ChannelGetData() with DarkBasicPro ?  (Read 794 times)
dman10001
Posts: 92


« on: 30 Mar '09 - 02:49 »
Reply with quoteQuote

Hi, I know I have to use a decoded stream to get the FFT data, but when I use this code I get only zeros.

ex. dim fft(512) as float
     call dll 1,"BASS_ChannelGetData",channel,fft,BASS_DATA_FLOAT
     print fft(n)

what to do to get the data ?

Please help..
thank you...
Logged
3D
Posts: 12


« Reply #1 on: 18 Apr '09 - 04:07 »
Reply with quoteQuote

REM Проект: audio
REM Создан: 02.01.2004 19:28:39
REM
REM ***** Главный исходный файл *****
REM
set display mode 1280,1024,32,1
sync on
sync rate 0
backdrop on
set normalization on

type CHANNELINFO
    freq    As dword
    chans   As dword
    flags   As dword
    ctype   As dword
    origres As dword
    plugin  As dword
EndType

type BASSINFO
    flags     AS DWORD
    hwsize    AS DWORD
    hwfree    AS DWORD
    freesam   AS DWORD
    free3d    AS DWORD
    minrate   AS DWORD
    maxrate   AS DWORD
    eax       AS BOOLEAN
    minbuf    AS DWORD
    dsver     AS DWORD
    latency   AS DWORD
    initflags AS DWORD
    speakers  AS DWORD
    freq      AS DWORD
ENDTYPE


DIM DDDDD(1024) AS BYTE
DIM BI(20) AS BASSINFO
DIM cianid(20) as CHANNELINFO




LOAD DLL "BASS.DLL",1
INIT= CALL DLL (1,"BASS_Init",-1, 44100, 0,dbpHwnd(), 0)
HD= CALL DLL (1,"BASS_StreamCreateFile",0, "Lava flow.mp3", 0, 0, 0)
CALL DLL 1,"BASS_ChannelSetPosition",HD, 1000000,0

`CALL DLL 1,"BASS_ChannelPreBuf",HD,1024
CALL DLL 1,"BASS_ChannelPlay",HD, 1
CALL DLL 1,"BASS_SetVolume",0.5
LENGHT= CALL DLL (1,"BASS_ChannelGetLength",HD,0)
LENGHT2 = CALL DLL (1,"BASS_ChannelGetInfo", HD ,cianid())
INFOA = CALL DLL (1,"BASS_GetInfo",BI())
CALL DLL 1,"BASS_ChannelSeconds2Bytes",HD, 0



MAKE OBJECT SPHERE 1,200

for f=50 to 307 STEP 2
make object SPHERE f,20
position object f,f*10,0,200
SET OBJECT LIGHT F,1
next f

for f=51 to 308 STEP 2
make object SPHERE f,20
position object f,(f*10)*-1,0,200
SET OBJECT LIGHT F,1
next f
SET CAMERA RANGE 0,1,10000
position camera 0,0,0,-1500

SET AMBIENT LIGHT 50

MAKE LIGHT 1
SET POINT LIGHT 1,3000,2000,-3000
SET LIGHT RANGE 1,10000
POINT LIGHT 1,0,0,0





do
filelenght =  CALL DLL (1,"BASS_StreamGetFilePosition",HD , 0)
filelenght2 =  CALL DLL (1,"BASS_StreamGetFilePosition",HD , 2)
LENGHT3 = CALL DLL (1,"BASS_ChannelGetData", HD ,DDDDD(0),1024)
SCALE OBJECT 1, OBJECT SIZE X(1)+(LEV/10000000), OBJECT SIZE Y(1)+(LEV/10000000), OBJECT SIZE Z(1)+(LEV/10000000)



POS = CALL DLL (1,"BASS_ChannelGetPosition",HD,0)
LEV= CALL DLL (1,"BASS_ChannelGetLevel",HD)









               text 20,620,"DC_"+str$(DC)
               text 20,640,"INIT_"+str$(INIT)
               text 20,660,"FPS_"+str$(SCREEN FPS())
               TEXT 1000,20,STR$(LENGHT3)




               TEXT 200,20,"filelenght-"+STR$(filelenght)
               TEXT 200,40,"filelenght-"+STR$(filelenght2)

               UU1= cianid(0).FREQ
               UU2= cianid(0).CHANS
               UU3= cianid(0).FLAGS
               UU4= cianid(0).CTYPE
               UU5= cianid(0).ORIGRES
               UU6= cianid(0).PLUGIN
               TEXT 10 ,20, "CHANNELINFO :"
               TEXT 10 ,40,   "FREQ   -"+  STR$(UU1)
               TEXT 10 ,60,   "CHANS  -"+  STR$(UU2)
               TEXT 10 ,80,   "FLAGS  -"+  STR$(UU3)
               TEXT 10 ,100,  "CTYPE  -"+  STR$(UU4)
               TEXT 10 ,120,  "ORIGRE -"+  STR$(UU5)
               TEXT 10 ,140,  "PLUGIN -"+  STR$(UU6)

               UU1= bi(0).flags
               UU2= bi(0).hwsize
               UU3= bi(0).hwfree
               UU4= bi(0).freesam
               UU5= bi(0).free3d
               UU6= bi(0).minrate
               UU7= bi(0).maxrate
               UU8= bi(0).eax
               UU9= bi(0).minbuf
               UU10= bi(0).dsver
               UU11= bi(0).latency
               UU12= bi(0).initflags
               UU13= bi(0).speakers
               UU15= bi(0).freq
               TEXT 10 ,220, "BASSINFO :"
               TEXT 10 ,240, "flags  -"+  STR$(UU1)
               TEXT 10 ,260, "hwsize -"+  STR$(UU2)
               TEXT 10 ,280, "hwfree -"+  STR$(UU3)
               TEXT 10 ,300, "freesam-"+  STR$(UU4)
               TEXT 10 ,320, "free3d -"+  STR$(UU5)
               TEXT 10 ,340, "minrate-"+  STR$(UU6)
               TEXT 10 ,360, "maxrate-"+  STR$(UU7)
               TEXT 10 ,380, "eax    -"+  STR$(UU8)
               TEXT 10 ,400, "minbuf -"+  STR$(UU9)
               TEXT 10 ,420, "dsver  -"+  STR$(UU10)
               TEXT 10 ,440, "latency-"+  STR$(UU11)
               TEXT 10 ,460, "initfla-"+  STR$(UU12)
               TEXT 10 ,480, "speaker-"+  STR$(UU13)
               TEXT 10 ,520, "freq   -"+  STR$(UU15)



               text 600,20,"POS_"+str$(POS)
               text 600,40,"LEN_"+str$(LENGHT)
               text 600,60,"LEV_"+str$(LEV)






COLOR OBJECT 1,LEV*50
if spacekey()=0
   FOR W=0 TO LENGHT3/2-1 step 2
      WW=DDDDD(W)

      IF WW < 100
         scale object 51+w/2,20*ww,60*ww,60*ww
         COLOR OBJECT 51+w/2,RGB(WW*3,0,0)
         POSITION OBJECT 51+w/2 , OBJECT POSITION X(51+w/2), 20*ww , OBJECT POSITION Z(51+w/2)
      ENDIF


      IF WW => 100 THEN scale object 51+w/2,0.1,0.1,0.1:COLOR OBJECT 51+w/2,RGB(0,0,0)
      DDDDD(W)=0
   NEXT W
endif



control camera using arrowkeys 0, 30, 2

IF INKEY$()="e"
CALL DLL 1,"BASS_ChannelStop",HD, 0
CALL DLL 1,"BASS_Stop"
 EXIT
endif
if inkey$()="y" then CALL DLL 1,"BASS_SetVolume",0.1
if inkey$()="u" then CALL DLL 1,"BASS_SetVolume",0.99

if inkey$()="o" then CALL DLL 1,"BASS_ChannelPause",HD, 0
if inkey$()="p" then CALL DLL 1,"BASS_ChannelPlay",HD, 0
if inkey$()="s" then CALL DLL 1,"BASS_ChannelStop",HD, 0


if inkey$()="=" then CALL DLL 1,"BASS_ChannelSetPosition",HD, filelenght+512,0   :  `CALL DLL 1,"BASS_ChannelSetSync",HD, 1073741824,11,0,0
`if inkey$()="-" then CALL DLL 1,"BASS_ChannelSetPosition",HD, 512  :  `CALL DLL 1,"BASS_ChannelSetSync",HD, 1073741824,11,0,0

HDDE= CALL DLL (1,"BASS_ErrorGetCode")

text 800,800,str$(HDDE)
sync
loop

END
Logged
Pages: [1]
  Reply  |  Print  
 
Jump to:  

Powered by SMF 1.1.18 | SMF © 2013, Simple Machines