|
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
|