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...
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...
the full bass.bb is...
The full archive is here...
http://www.nigelibrown.pwp.blueyonder.co.uk/blitz/userlibs/download/bass.zip
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