Getting bass.decls to work - HELP!

Blitz3D Forums/Blitz3D Programming/Getting bass.decls to work - HELP!

Boiled Sweets(Posted 2006) [#1]
I have Nigel Browns bass.decls and associated bass.dll but I get a memory access violation when I try the included bass.bb sample...

Function BASS_GetDeviceAvailable(iCount)
	Local mBankIn,iResult
	
	mBankIn  = CreateBank(4)
	PokeInt mBankIn,0,iCount

	iResult = BASS_GetDeviceDescription( mBankIn )
	
	FreeBank mBankIn
	Return iResult
	
End Function


Any idea why? I *really* would like to get this working as I need to use the record functions available in this version. The decls is...

.lib "bass.dll"

; BASS functions

BASS_ErrorGetCode%()									: "BASS_ErrorGetCode"
BASS_Free()											: "BASS_Free"
BASS_GetCPU()
BASS_GetDeviceDescription$( devnum% )						: "BASS_GetDeviceDescription"
BASS_GetDSoundObject()
BASS_GetGlobalVolumes()
BASS_GetInfo()
BASS_GetVersion%()									: "BASS_GetVersion"
BASS_GetVolume()
BASS_Init%( device%, freq%, flags%, win% )					: "BASS_Init"
BASS_Pause()
BASS_SetBufferLength()
BASS_SetCLSID()
BASS_SetGlobalVolumes( musvol%, samvol%, strvol% )				: "BASS_SetGlobalVolumes"
BASS_SetLongCurves()
BASS_SetNetConfig()
BASS_SetVolume%( volume% )								: "BASS_SetVolume"
BASS_Start%()										: "BASS_Start"
BASS_Stop%()										: "BASS_Stop"
BASS_Update%()										: "BASS_Update"

; 3D/EAX functions

BASS_Apply3D()
BASS_Get3DFactors()
BASS_Get3DPosition()
BASS_GetEaxParameters()
BASS_Set3DAlgorithm()
BASS_Set3DFactors()
BASS_Set3DPosition()
BASS_SetEAXParameters()

; CD Audio functions

BASS_CDDoor()
BASS_CDFree()
BASS_CDGetID()
BASS_CDGetTrackLength()
BASS_CDGetTracks()
BASS_CDInDrive()
BASS_CDInit()
BASS_CDPlay()

; Sample functions

BASS_SampleCreate()
BASS_SampleCreateDone()
BASS_SampleFree()
BASS_SampleGetInfo()
BASS_SampleLoad%( mem%, file$, offset%, length%, max%, flags% )		: "BASS_SampleLoad"
BASS_SamplePlay%( Handle% )								: "BASS_SamplePlay"
BASS_SamplePlay3D()
BASS_SamplePlay3DEx()
BASS_SamplePlayEx%( Handle%, start%, freq%, volume%, pan%, loop% )	: "BASS_SamplePlayEx"
BASS_SampleSetInfo()
BASS_SampleStop%( Handle% )

; Stream functions

BASS_StreamCreate()
BASS_StreamCreateFile()
BASS_StreamCreateURL()
BASS_StreamFree()
BASS_StreamGetFilePosition()
BASS_StreamGetLength()
BASS_StreamGetTags()
BASS_StreamPlay()
BASS_StreamPreBuf()

; MOD/3 music functions

BASS_MusicFree()
BASS_MusicGetChannelVol()
BASS_MusicGetLength()
BASS_MusicGetName()
BASS_MusicLoad()
BASS_MusicPlay()
BASS_MusicPlayEx()
BASS_MusicPreBuf()
BASS_MusicSetAmplify()
BASS_MusicSetChannelVol()
BASS_MusicSetPanSep()
BASS_MusicSetPositionScaler()

; Recording functions

BASS_RecordFree()
BASS_RecordGetDeviceDescription()
BASS_RecordGetInfo()
BASS_RecordGetInput()
BASS_RecordGetInputName()
BASS_RecordInit()
BASS_RecordSetInput()
BASS_RecordStart()

; Channel functions

BASS_ChannelBytes2Seconds()
BASS_ChannelGet3DAttributes()
BASS_ChannelGet3DPosition()
BASS_ChannelGetAttributes()
BASS_ChannelGetData()
BASS_ChannelGetEAXMix()
BASS_ChannelGetFlags()
BASS_ChannelGetLevel()
BASS_ChannelGetPosition()
BASS_ChannelIsActive%( Handle% )							: "BASS_ChannelIsActive"
BASS_ChannelPause()
BASS_ChannelRemoveDSP()
BASS_ChannelRemoveFX()
BASS_ChannelRemoveLink()
BASS_ChannelRemoveSync()
BASS_ChannelResume()
BASS_ChannelSeconds2Bytes()
BASS_ChannelSet3DAttributes()
BASS_ChannelSet3DPosition()
BASS_ChannelSetAttributes()
BASS_ChannelSetDSP()
BASS_ChannelSetEAXMix()
BASS_ChannelSetFX()
BASS_ChannelSetLink()
BASS_ChannelSetPosition()
BASS_ChannelSetSync()
BASS_ChannelStop%( Handle% )								: "BASS_ChanelStop"

; FX functions

BASS_FXGetParameters()
BASS_FXSetParameters()



the full bass.bb is...

; BASS_ChannelIsActive Return values

Const BASS_ACTIVE_STOPPED	=0
Const BASS_ACTIVE_PLAYING	=1
Const BASS_ACTIVE_STALLED	=2
Const BASS_ACTIVE_PAUSED	=3

; Error codes returned by BASS_GetErrorCode()
Const BASS_OK             = 0 ; all is OK
Const BASS_ERROR_MEM      = 1 ; memory error
Const BASS_ERROR_FILEOPEN = 2 ; can't open the file
Const BASS_ERROR_DRIVER   = 3 ; can't find a free/valid driver
Const BASS_ERROR_BUFLOST  = 4 ; the sample buffer was lost - please report this!
Const BASS_ERROR_HANDLE   = 5 ; invalid handle
Const BASS_ERROR_FORMAT   = 6 ; unsupported format
Const BASS_ERROR_POSITION = 7 ; invalid playback position
Const BASS_ERROR_INIT     = 8 ; BASS_Init has not been successfully called
Const BASS_ERROR_START    = 9 ; BASS_Start has not been successfully called
Const BASS_ERROR_INITCD   = 10; can't initialize CD
Const BASS_ERROR_CDINIT   = 11; BASS_CDInit has not been successfully called
Const BASS_ERROR_NOCD     = 12; no CD in drive
Const BASS_ERROR_CDTRACK  = 13; can't play the selected CD track
Const BASS_ERROR_ALREADY  = 14; already initialized
Const BASS_ERROR_CDVOL    = 15; CD has no volume control
Const BASS_ERROR_NOPAUSE  = 16; not paused
Const BASS_ERROR_NOTAUDIO = 17; not an audio track
Const BASS_ERROR_NOCHAN   = 18; can't get a free channel
Const BASS_ERROR_ILLTYPE  = 19; an illegal type was specified
Const BASS_ERROR_ILLPARAM = 20; an illegal parameter was specified
Const BASS_ERROR_NO3D     = 21; no 3D support
Const BASS_ERROR_NOEAX    = 22; no EAX support
Const BASS_ERROR_DEVICE   = 23; illegal device number
Const BASS_ERROR_NOPLAY   = 24; not playing
Const BASS_ERROR_FREQ     = 25; illegal sample rate
Const BASS_ERROR_NOA3D    = 26; A3D.DLL is not installed
Const BASS_ERROR_NOTFILE  = 27; the stream is not a file stream (WAV/MP3/MP2/MP1/OGG)
Const BASS_ERROR_NOHW     = 29; no hardware voices available
Const BASS_ERROR_NOSYNC   = 30; synchronizers have been disabled
Const BASS_ERROR_EMPTY    = 31; the MOD music has no sequence data
Const BASS_ERROR_NONET    = 32; no internet connection could be opened
Const BASS_ERROR_CREATE   = 33; couldn't create the file
Const BASS_ERROR_NOFX     = 34; effects are not enabled
Const BASS_ERROR_PLAYING  = 35; the channel is playing
Const BASS_ERROR_NOOGG    = 36; OGG.DLL/VORBIS.DLL could not be loaded
Const BASS_ERROR_NOTAVAIL = 37; requested data is not available
Const BASS_ERROR_DECODE   = 38; the channel is a "decoding channel"
Const BASS_ERROR_UNKNOWN  = -1; some other mystery error

; Device setup flags
Const BASS_DEVICE_8BITS = 1  ; use 8 bit resolution, else 16 bit
Const BASS_DEVICE_MONO  = 2  ; use mono, else stereo
Const BASS_DEVICE_3D    = 4  ; enable 3D functionality
; If the BASS_DEVICE_3D flag is not specified when initilizing BASS,
; then the 3D flags (BASS_SAMPLE_3D and BASS_MUSIC_3D) are ignored when
; loading/creating a sample/stream/music.
Const BASS_DEVICE_NOSYNC   = 16  ; disable synchronizers
Const BASS_DEVICE_LEAVEVOL = 32	 ; leave the volume as it is
Const BASS_DEVICE_OGG      = 64	 ; enable OGG support (requires OGG.DLL & VORBIS.DLL)
Const BASS_DEVICE_NOTHREAD = 128 ; update buffers manually (using BASS_Update)
Const BASS_DEVICE_LATENCY  = 256 ; calculate device latency (BASS_INFO struct)

; DirectSound interfaces (for use with BASS_GetDSoundObject)
Const BASS_OBJECT_DS    = 1 ; IDirectSound
Const BASS_OBJECT_DS3DL = 2 ; IDirectSound3DListener

; BASS_INFO flags (from DSOUND.H)
Const DSCAPS_CONTINUOUSRATE = $00000010
; supports all sample rates between min/maxrate
Const DSCAPS_EMULDRIVER     = $00000020
; device does NOT have hardware DirectSound support
Const DSCAPS_CERTIFIED      = $00000040
; device driver has been certified by Microsoft
; The following flags tell what type of samples are supported by HARDWARE
; mixing, all these formats are supported by SOFTWARE mixing
Const DSCAPS_SECONDARYMONO   = $00000100 ; mono
Const DSCAPS_SECONDARYSTEREO = $00000200 ; stereo
Const DSCAPS_SECONDARY8BIT   = $00000400 ; 8 bit
Const DSCAPS_SECONDARY16BIT  = $00000800 ; 16 bit

; Music flags
Const BASS_MUSIC_RAMP      = 1       ; normal ramping
Const BASS_MUSIC_RAMPS     = 2       ; sensitive ramping
; Ramping doesn't take a lot of extra processing and improves
; the sound quality by removing "clicks". Sensitive ramping will
; leave sharp attacked samples, unlike normal ramping.
Const BASS_MUSIC_LOOP      = 4       ; loop music
Const BASS_MUSIC_FT2MOD    = 16      ; play .MOD as FastTracker 2 does
Const BASS_MUSIC_PT1MOD    = 32      ; play .MOD as ProTracker 1 does
Const BASS_MUSIC_MONO      = 64      ; force mono mixing (less CPU usage)
Const BASS_MUSIC_3D        = 128     ; enable 3D functionality
Const BASS_MUSIC_POSRESET  = 256     ; stop all notes when moving position
Const BASS_MUSIC_SURROUND  = 512     ; surround sound
Const BASS_MUSIC_SURROUND2 = 1024    ; surround sound (mode 2)
Const BASS_MUSIC_STOPBACK  = 2048    ; stop the music on a backwards jump effect
Const BASS_MUSIC_FX        = 4096    ; enable DX8 effects
Const BASS_MUSIC_CALCLEN   = 8192    ; calculate playback length
Const BASS_MUSIC_DECODE    = $200000 ; don't play the music, only decode (BASS_ChannelGetData)

Const BASS_SAMPLE_8BITS     = 1       ; 8 bit, else 16 bit
Const BASS_SAMPLE_MONO      = 2       ; mono, else stereo
Const BASS_SAMPLE_LOOP      = 4       ; looped
Const BASS_SAMPLE_3D        = 8       ; 3D functionality enabled
Const BASS_SAMPLE_SOFTWARE  = 16      ; it's NOT using hardware mixing
Const BASS_SAMPLE_MUTEMAX   = 32      ; muted at max distance (3D only)
Const BASS_SAMPLE_VAM       = 64      ; uses the DX7 voice allocation & management
Const BASS_SAMPLE_FX        = 128     ; the DX8 effects are enabled
Const BASS_SAMPLE_OVER_VOL  = $10000  ; override lowest volume
Const BASS_SAMPLE_OVER_POS  = $20000  ; override longest playing
Const BASS_SAMPLE_OVER_DIST = $30000  ; override furthest from listener (3D only)

Const BASS_MP3_HALFRATE     = $10000  ; reduced quality MP3/MP2/MP1 (half sample rate)
Const BASS_MP3_SETPOS       = $20000  ; enable pin-point seeking on the MP3/MP2/MP1/OGG

Const BASS_STREAM_AUTOFREE  = $40000  ; automatically free the stream when it stop/ends
Const BASS_STREAM_RESTRATE  = $80000  ; restrict the download rate of internet file streams
Const BASS_STREAM_BLOCK     = $100000 ; download/play internet file stream (MPx/OGG) in small blocks
Const BASS_STREAM_DECODE    = $200000 ; don't play the stream, only decode (BASS_ChannelGetData)

; DX7 voice allocation flags
Const BASS_VAM_HARDWARE = 1
Const BASS_VAM_SOFTWARE = 2

; DX7 voice management flags
Const BASS_VAM_TERM_TIME = 4
Const BASS_VAM_TERM_DIST = 8
Const BASS_VAM_TERM_PRIO = 16

; 3D channel modes
Const BASS_3DMODE_NORMAL   = 0
Const BASS_3DMODE_RELATIVE = 1
Const BASS_3DMODE_OFF      = 2

Const BASS_3DALG_DEFAULT = 0
Const BASS_3DALG_OFF     = 1
Const BASS_3DALG_FULL    = 2
Const BASS_3DALG_LIGHT   = 3

Const BASS_SYNC_MUSICPOS  = 0
Const BASS_SYNC_POS       = 0
Const BASS_SYNC_MUSICINST = 1
Const BASS_SYNC_END       = 2
Const BASS_SYNC_MUSICFX   = 3
Const BASS_SYNC_MESSAGE   = $20000000 ; FLAG: post a Windows message (instead of callback)
Const BASS_SYNC_MIXTIME   = $40000000 ; FLAG: sync at mixtime, else at playtime
Const BASS_SYNC_ONETIME   = $80000000 ; FLAG: sync only once, else continuously

; BASS_ChannelGetData flags
Const BASS_DATA_FFT512  = $80000000 ; 512 sample FFT
Const BASS_DATA_FFT1024	= $80000001 ; 1024 FFT
Const BASS_DATA_FFT2048	= $80000002 ; 2048 FFT

; BASS_StreamGetTags flags : what's returned
Const BASS_TAG_ID3   = 0 ; ID3v1 tags : 128 byte block
Const BASS_TAG_ID3V2 = 1 ; ID3v2 tags : variable length block
Const BASS_TAG_OGG   = 2 ; OGG comments : array of null-terminated strings
Const BASS_TAG_HTTP  = 3 ; HTTP headers : array of null-terminated strings
Const BASS_TAG_ICY   = 4 ; ICY headers : array of null-terminated strings

; DX8 effect types, use with BASS_ChannelSetFX()
Const BASS_FX_CHORUS      = 0   ; GUID_DSFX_STANDARD_CHORUS
Const BASS_FX_COMPRESSOR  = 1   ; GUID_DSFX_STANDARD_COMPRESSOR
Const BASS_FX_DISTORTION  = 2   ; GUID_DSFX_STANDARD_DISTORTION
Const BASS_FX_ECHO        = 3   ; GUID_DSFX_STANDARD_ECHO
Const BASS_FX_FLANGER     = 4   ; GUID_DSFX_STANDARD_FLANGER
Const BASS_FX_GARGLE      = 5   ; GUID_DSFX_STANDARD_GARGLE
Const BASS_FX_I3DL2REVERB = 6   ; GUID_DSFX_STANDARD_I3DL2REVERB
Const BASS_FX_PARAMEQ     = 7   ; GUID_DSFX_STANDARD_PARAMEQ
Const BASS_FX_REVERB      = 8   ; GUID_DSFX_WAVES_REVERB

Const BASS_FX_PHASE_NEG_180 = 0
Const BASS_FX_PHASE_NEG_90  = 1
Const BASS_FX_PHASE_ZERO    = 2
Const BASS_FX_PHASE_90      = 3
Const BASS_FX_PHASE_180     = 4

Const CDCHANNEL = 0 ; CD channel, for use with BASS_Channel functions

; BASS_CDGetID flags
Const BASS_CDID_IDENTITY = 0
Const BASS_CDID_UPC      = 1


;:: NOTE - These are wrapped. Not actually BASS values for these..

Const EAX_PRESET_GENERIC         = 0
Const EAX_PRESET_PADDEDCELL      = 1
Const EAX_PRESET_ROOM            = 2
Const EAX_PRESET_BATHROOM        = 3
Const EAX_PRESET_LIVINGROOM      = 4
Const EAX_PRESET_STONEROOM       = 5
Const EAX_PRESET_AUDITORIUM      = 6
Const EAX_PRESET_CONCERTHALL     = 7
Const EAX_PRESET_CAVE            = 8
Const EAX_PRESET_ARENA           = 9
Const EAX_PRESET_HANGAR          = 10
Const EAX_PRESET_CARPETEDHALLWAY = 11
Const EAX_PRESET_HALLWAY         = 12 
Const EAX_PRESET_STONECORRIDOR   = 13
Const EAX_PRESET_ALLEY           = 14
Const EAX_PRESET_FOREST          = 15
Const EAX_PRESET_CITY            = 16
Const EAX_PRESET_MOUNTAINS       = 17
Const EAX_PRESET_QUARRY          = 18
Const EAX_PRESET_PLAIN           = 19
Const EAX_PRESET_PARKINGLOT      = 20
Const EAX_PRESET_SEWERPIPE       = 21
Const EAX_PRESET_UNDERWATER      = 22
Const EAX_PRESET_DRUGGED         = 23
Const EAX_PRESET_DIZZY           = 24
Const EAX_PRESET_PSYCHOTIC       = 25

Const EAX_ENVIRONMENT_GENERIC         = 0
Const EAX_ENVIRONMENT_PADDEDCELL      = 1
Const EAX_ENVIRONMENT_ROOM            = 2
Const EAX_ENVIRONMENT_BATHROOM        = 3
Const EAX_ENVIRONMENT_LIVINGROOM      = 4
Const EAX_ENVIRONMENT_STONEROOM       = 5
Const EAX_ENVIRONMENT_AUDITORIUM      = 6
Const EAX_ENVIRONMENT_CONCERTHALL     = 7
Const EAX_ENVIRONMENT_CAVE            = 8
Const EAX_ENVIRONMENT_ARENA           = 9
Const EAX_ENVIRONMENT_HANGAR          = 10
Const EAX_ENVIRONMENT_CARPETEDHALLWAY = 11
Const EAX_ENVIRONMENT_HALLWAY         = 12 
Const EAX_ENVIRONMENT_STONECORRIDOR   = 13
Const EAX_ENVIRONMENT_ALLEY           = 14
Const EAX_ENVIRONMENT_FOREST          = 15
Const EAX_ENVIRONMENT_CITY            = 16
Const EAX_ENVIRONMENT_MOUNTAINS       = 17
Const EAX_ENVIRONMENT_QUARRY          = 18
Const EAX_ENVIRONMENT_PLAIN           = 19
Const EAX_ENVIRONMENT_PARKINGLOT      = 20
Const EAX_ENVIRONMENT_SEWERPIPE       = 21
Const EAX_ENVIRONMENT_UNDERWATER      = 22
Const EAX_ENVIRONMENT_DRUGGED         = 23
Const EAX_ENVIRONMENT_DIZZY           = 24
Const EAX_ENVIRONMENT_PSYCHOTIC       = 25

; Originals..

; EAX presets, usage: BASS_SetEAXParameters(EAX_PRESET_xxx)
;Const EAX_PRESET_GENERIC         EAX_ENVIRONMENT_GENERIC,0.5F,1.493F,0.5F
;Const EAX_PRESET_PADDEDCELL      EAX_ENVIRONMENT_PADDEDCELL,0.25F,0.1F,0.0F
;Const EAX_PRESET_ROOM            EAX_ENVIRONMENT_ROOM,0.417F,0.4F,0.666F
;Const EAX_PRESET_BATHROOM        EAX_ENVIRONMENT_BATHROOM,0.653F,1.499F,0.166F
;Const EAX_PRESET_LIVINGROOM      EAX_ENVIRONMENT_LIVINGROOM,0.208F,0.478F,0.0F
;Const EAX_PRESET_STONEROOM       EAX_ENVIRONMENT_STONEROOM,0.5F,2.309F,0.888F
;Const EAX_PRESET_AUDITORIUM      EAX_ENVIRONMENT_AUDITORIUM,0.403F,4.279F,0.5F
;Const EAX_PRESET_CONCERTHALL     EAX_ENVIRONMENT_CONCERTHALL,0.5F,3.961F,0.5F
;Const EAX_PRESET_CAVE            EAX_ENVIRONMENT_CAVE,0.5F,2.886F,1.304F
;Const EAX_PRESET_ARENA           EAX_ENVIRONMENT_ARENA,0.361F,7.284F,0.332F
;Const EAX_PRESET_HANGAR          EAX_ENVIRONMENT_HANGAR,0.5F,10.0F,0.3F
;Const EAX_PRESET_CARPETEDHALLWAY EAX_ENVIRONMENT_CARPETEDHALLWAY,0.153F,0.259F,2.0F
;Const EAX_PRESET_HALLWAY         EAX_ENVIRONMENT_HALLWAY,0.361F,1.493F,0.0F
;Const EAX_PRESET_STONECORRIDOR   EAX_ENVIRONMENT_STONECORRIDOR,0.444F,2.697F,0.638F
;Const EAX_PRESET_ALLEY           EAX_ENVIRONMENT_ALLEY,0.25F,1.752F,0.776F
;Const EAX_PRESET_FOREST          EAX_ENVIRONMENT_FOREST,0.111F,3.145F,0.472F
;Const EAX_PRESET_CITY            EAX_ENVIRONMENT_CITY,0.111F,2.767F,0.224F
;Const EAX_PRESET_MOUNTAINS       EAX_ENVIRONMENT_MOUNTAINS,0.194F,7.841F,0.472F
;Const EAX_PRESET_QUARRY          EAX_ENVIRONMENT_QUARRY,1.0F,1.499F,0.5F
;Const EAX_PRESET_PLAIN           EAX_ENVIRONMENT_PLAIN,0.097F,2.767F,0.224F
;Const EAX_PRESET_PARKINGLOT      EAX_ENVIRONMENT_PARKINGLOT,0.208F,1.652F,1.5F
;Const EAX_PRESET_SEWERPIPE       EAX_ENVIRONMENT_SEWERPIPE,0.652F,2.886F,0.25F
;Const EAX_PRESET_UNDERWATER      EAX_ENVIRONMENT_UNDERWATER,1.0F,1.499F,0.0F
;Const EAX_PRESET_DRUGGED         EAX_ENVIRONMENT_DRUGGED,0.875F,8.392F,1.388F
;Const EAX_PRESET_DIZZY           EAX_ENVIRONMENT_DIZZY,0.139F,17.234F,0.666F
;Const EAX_PRESET_PSYCHOTIC       EAX_ENVIRONMENT_PSYCHOTIC,0.486F,7.563F,0.806F

; Makes a long from 2 words. Usful for the version info and a few of the channel commands...
; See bass C++ examples.


Print BASS_GetDeviceAvailable(1)
WaitKey 

Function MAKELONG(word1,word2)
	Return (word2 Shl 16) Or (word1 And $0000FFFF)
End Function

; Added wrapper... Gets whether or not a device is there (available)..


Function BASS_GetDeviceAvailable(iCount)
	Local mBankIn,iResult
	
	mBankIn  = CreateBank(4)
	PokeInt mBankIn,0,iCount

	iResult = BASS_GetDeviceDescription( mBankIn )
	
	FreeBank mBankIn
	Return iResult
	
End Function



The full archive is here...

http://www.nigelibrown.pwp.blueyonder.co.uk/blitz/userlibs/download/bass.zip


LAB[au](Posted 2006) [#2]
Bass.bb isn't a sample, but an include file with a bunch of constants ... furthermore it seems the decls is uncompleted, since most functions don't have parameters. I can send you my experimental Bass21.decls


Boiled Sweets(Posted 2006) [#3]
LAB[au]

great. If I could just get one function to work using the decls approach then I would be happy to work on all the other functions...


Boiled Sweets(Posted 2006) [#4]
*** SOLVED IT ***

Can get at the sample data from ANY input (internet radio, audio in, mic etc etc).

I am so happy!

If you want something done, do it yourself :-)


John Blackledge(Posted 2006) [#5]
Boiled, since development seems to have stopped on bass, if you could take your work to the point where you can produce the definitive decls (and point at the version of Bass that it works with) and maybe a few examples for the Toolbox, then I for one would be very grateful.

I'm still hoping to get back to this at some point in the future and produce a jaw-bone-movement function which reads a playing wav file in realtime and makes the character's mouth move as it speaks, all totally automatically.


Boiled Sweets(Posted 2006) [#6]
Hi,

the last update was in May 2006 so I wouldn't say development has halted.

I'm still 'playing' around it and will work on getting a complete decls working.

Out of interest I also have the WinAmp Visualisation plugin library working too, can even get it to draw in the Blitz window but it's not 100% yet. I don't think that I'll really be persuing this plugin as I cannot then sell my app.


LAB[au](Posted 2006) [#7]
Good you solved it, soory I had not more time to help you.


Boiled Sweets(Posted 2006) [#8]
Lab[au]


soory I had not more time to help you



Are you kidding? Your help was invaluable!!! I couldn't have done it without you!

Anyhow I still have a niggling problem.

It's to do with the FFT info. If the user has the volume down low then the FFT stuff is tiny and the bars drawn are tiny. If the volume is high then the bars are huge. I need a clever way of comparing the master volume to say the FFT info so that my 'meters' look correct.


LAB[au](Posted 2006) [#9]
I suggest retrieving the master volume and use it as a multiplier for FFT values. Use BASS_GetGlobalVolumes or GetVolume.


Boiled Sweets(Posted 2006) [#10]
Hi any idea what the opposites of these are?

Function LoWord(Value)
   Return (Value And $0000FFFF)
End Function

Function HiWord(Value)
   Return ((Value And $FFFF0000) Shr 16)
End Function


For example when setting the record volume I need to do...

Adjusts the settings of a recording input source.

BOOL BASS_RecordSetInput(
    int input,
    DWORD setting
); 


Parameters
input The input to adjust the settings of... 0 = first, -1 = master. 
setting The new setting... a combination of these flags.
BASS_INPUT_OFF Disable the input. This flag can't be used when the device supports only one input at a time.  
BASS_INPUT_ON Enable the input. If the device only allows one input at a time, then any previously enabled input will be disabled by this.  
BASS_INPUT_LEVEL Set the volume level of the input. The volume ranges 0 - 100 and is given in the LOWORD.  



Boiled Sweets(Posted 2006) [#11]
Woah...

this can add the words together...

Function MAKELONG(word1,word2)
	Return (word2 Shl 16) Or (word1 And $0000FFFF)
End Function


... but it needs

Const BASS_INPUT_ON = $20000
Const BASS_INPUT_LEVEL = $40000

and this...

50

passed in. Any ideas?


Boiled Sweets(Posted 2006) [#12]
Lab[au],


I suggest retrieving the master volume and use it as a multiplier for FFT values. Use BASS_GetGlobalVolumes or GetVolume.



GetVolume returns -1 : error code 8!

And there is no GetGlobalVolume in BASS 2.3!

Hmm. This is proving to be tricky