Bass2.1 Befehle
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
Suco-XBetreff: Bass2.1 Befehle |
Sa, Jul 02, 2005 0:37 Antworten mit Zitat |
|
---|---|---|
Hi
Habe mir mal die Mühe gemacht die Funktionen und Variablen von der Bass Lib für Blitz Max bereit zu machen. Download der Lib gibt es hier: http://www.un4seen.com/ Den unteren Code in eine Datei Packen und in euer Projekt Inkludieren/Importieren. Die Bass.dll muss natürlich im gleichen Ordner sein. Falls ich was übersehen habe, bitte bescheid sagen. Code: [AUSKLAPPEN] Rem Bass.dll Version 2.1 Blitz Max Portierung von Suco-X Sollten Fehler gefunden werden, bitte bei mir im BlitzForum Melden(PN oder im bass Thread) Version 1.1 Mfg Suco End Rem ' Error codes returned by BASS_ErrorGetCode 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 Const BASS_ERROR_HANDLE =5 ' invalid handle Const BASS_ERROR_FORMAT =6 ' unsupported sample 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_ALREADY =14 ' already initialized/paused/whatever Const BASS_ERROR_NOPAUSE =16 ' Not paused 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_NOTFILE =27 ' the stream is Not a file stream Const BASS_ERROR_NOHW =29 ' no hardware voices available 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 available Const BASS_ERROR_PLAYING =35 ' the channel is playing Const BASS_ERROR_NOTAVAIL =37 ' requested data is Not available Const BASS_ERROR_DECODE =38 ' the channel is a "decoding channel" Const BASS_ERROR_DX =39 ' a sufficient DirectX version is Not installed Const BASS_ERROR_TIMEOUT =40 ' connection timedout Const BASS_ERROR_FILEFORM =41 ' unsupported file format Const BASS_ERROR_SPEAKER =42 ' unavailable speaker Const BASS_ERROR_UNKNOWN =-1 ' some other mystery error ' Initialization 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 Rem 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. End Rem Const BASS_DEVICE_LATENCY = 256 ' calculate device latency (BASS_INFO struct) Const BASS_DEVICE_SPEAKERS = 2048 ' force enabling of speaker assignment ' DirectSound interfaces (For use with BASS_GetDSoundObject) Const BASS_OBJECT_DS = 1 ' IDirectSound Const BASS_OBJECT_DS3DL = 2 ' IDirectSound3DListener Type BASS_INFO Field size:Int ' size of this struct (set this before calling the Function) Field flags:Int ' device capabilities (DSCAPS_xxx flags) Field hwsize:Int ' size of total device hardware memory Field hwfree:Int ' size of free device hardware memory Field freesam:Int ' number of free sample slots in the hardware Field free3d:Int ' number of free 3D sample slots in the hardware Field minrate:Int ' Min sample rate supported by the hardware Field maxrate:Int ' Max sample rate supported by the hardware Field eax:Byte ' device supports EAX? (always False If BASS_DEVICE_3D was Not used) Field minbuf:Int ' recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY) Field dsver:Int ' DirectSound version Field latency:Int ' Delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY) Field initflags:Int ' "flags" parameter of BASS_Init call Field speakers:Int ' number of speakers available Field driver:Byte Ptr ' driver End Type ' BASS_INFO flags (from DSOUND.H) Const DSCAPS_CONTINUOUSRATE = $00000010 Rem supports all sample rates between Min/maxrate End Rem Const DSCAPS_EMULDRIVER =$00000020 Rem device does Not have hardware DirectSound support End Rem Const DSCAPS_CERTIFIED = $00000040 Rem device driver has been certified by Microsoft End Rem Rem The following flags tell what Type of samples are supported by HARDWARE mixing, all these formats are supported by SOFTWARE mixing End Rem Const DSCAPS_SECONDARYMONO =$00000100 ' mono Const DSCAPS_SECONDARYSTEREO =$00000200 ' stereo Const DSCAPS_SECONDARY8BIT =$00000400 ' 8 bit Const DSCAPS_SECONDARY16BIT= $00000800 ' 16 bit Type BASS_RECORDINFO Field size:Int ' size of this struct (set this before calling the Function) Field flags:Int ' device capabilities (DSCCAPS_xxx flags) Field formats:Int ' supported standard formats (WAVE_FORMAT_xxx flags) Field inputs:Int ' number of inputs Field singlein:Byte ' True = only 1 Input can be set at a time Field driver:Byte Ptr ' driver End Type ' BASS_RECORDINFO flags (from DSOUND.H) Const DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER Rem device does Not have hardware DirectSound recording support End Rem Const DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED Rem device driver has been certified by Microsoft End Rem ' defines For formats Field of BASS_RECORDINFO (from MMSYSTEM.H) Const WAVE_FORMAT_1M08 = $00000001 ' 11.025 kHz, Mono, 8-bit Const WAVE_FORMAT_1S08 = $00000002 ' 11.025 kHz, Stereo, 8-bit Const WAVE_FORMAT_1M16 = $00000004 ' 11.025 kHz, Mono, 16-bit Const WAVE_FORMAT_1S16 = $00000008 ' 11.025 kHz, Stereo, 16-bit Const WAVE_FORMAT_2M08 = $00000010 ' 22.05 kHz, Mono, 8-bit Const WAVE_FORMAT_2S08 = $00000020 ' 22.05 kHz, Stereo, 8-bit Const WAVE_FORMAT_2M16 = $00000040 ' 22.05 kHz, Mono, 16-bit Const WAVE_FORMAT_2S16 = $00000080 ' 22.05 kHz, Stereo, 16-bit Const WAVE_FORMAT_4M08 = $00000100 ' 44.1 kHz, Mono, 8-bit Const WAVE_FORMAT_4S08 = $00000200 ' 44.1 kHz, Stereo, 8-bit Const WAVE_FORMAT_4M16 = $00000400 ' 44.1 kHz, Mono, 16-bit Const WAVE_FORMAT_4S16 = $00000800 ' 44.1 kHz, Stereo, 16-bit ' Sample info structure & flags Type BASS_SAMPLE Field freq:Int ' Default playback rate Field volume:Int ' Default volume (0-100) Field Pan:Int ' Default pan (-100=Left, 0=middle, 100=Right) Field flags:Int ' BASS_SAMPLE_xxx flags Field length:Int ' length (in samples, Not bytes) Field Max_:Int ' maximum simultaneous playbacks Field origres:Int ' original resolution bits Rem The following are the sample's default 3D attributes (if the sample is 3D, BASS_SAMPLE_3D is in flags) see BASS_ChannelSet3DAttributes End Rem Field mode3d:Int ' BASS_3DMODE_xxx mode Field mindist:Float ' minimum distance Field maxdist:Float ' maximum distance Field iangle:Int ' angle of inside projection cone Field oangle:Int ' angle of outside projection cone Field outvol:Int ' delta-volume outside the projection cone Rem The following are the defaults used If the sample uses the DirectX 7 voice allocation/management features. End Rem Field vam:Int ' voice allocation/management flags (BASS_VAM_xxx) Field priority:Int ' priority (0=lowest, $ffffffff=highest) End Type Const BASS_SAMPLE_8BITS = 1 ' 8 bit Const BASS_SAMPLE_FLOAT = 256 ' 32-bit floating-point 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 ' old implementation of 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_SETPOS = $20000 ' enable pin-point seeking on the MP3/MP2/MP1 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 in small blocks Const BASS_STREAM_DECODE = $200000' don't play the stream, only decode (BASS_ChannelGetData) Const BASS_STREAM_META =$400000' request metadata from a Shoutcast stream Const BASS_STREAM_STATUS =$800000' give server status info (HTTP/ICY tags) in DOWNLOADPROC Const BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT ' 32-bit floating-point Const BASS_MUSIC_MONO = BASS_SAMPLE_MONO ' force mono mixing (less CPU usage) Const BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP ' loop music Const BASS_MUSIC_3D = BASS_SAMPLE_3D ' enable 3D functionality Const BASS_MUSIC_FX = BASS_SAMPLE_FX ' enable old implementation of DX8 effects Const BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE ' automatically free the music when it stop/ends Const BASS_MUSIC_DECODE =BASS_STREAM_DECODE ' don't play the music, only decode (BASS_ChannelGetData) Const BASS_MUSIC_RAMP = $200 ' normal ramping Const BASS_MUSIC_RAMPS =$400 ' sensitive ramping Const BASS_MUSIC_SURROUND = $800 ' surround sound Const BASS_MUSIC_SURROUND2= $1000 ' surround sound (mode 2) Const BASS_MUSIC_FT2MOD =$2000 ' play .Mod as FastTracker 2 does Const BASS_MUSIC_PT1MOD =$4000 ' play .Mod as ProTracker 1 does Const BASS_MUSIC_CALCLEN = $8000 ' calculate playback length Const BASS_MUSIC_NONINTER =$10000 ' non-interpolated mixing Const BASS_MUSIC_POSRESET =$20000 ' stop all notes when moving position Const BASS_MUSIC_POSRESETEX =$400000' stop all notes And reset bmp/etc when moving position Const BASS_MUSIC_STOPBACK = $80000 ' stop the music on a backwards jump effect Const BASS_MUSIC_NOSAMPLE =$100000' don't load the samples ' Speaker assignment flags Const BASS_SPEAKER_FRONT =$1000000 ' front speakers Const BASS_SPEAKER_REAR =$2000000 ' rear/side speakers Const BASS_SPEAKER_CENLFE =$3000000 ' center & LFE speakers (5.1) Const BASS_SPEAKER_REAR2 =$4000000 ' rear center speakers (7.1) 'Const BASS_SPEAKER_N(n) ((n)<<24) ' n'th pair of speakers (max 15) Const BASS_SPEAKER_LEFT =$10000000 ' modifier: Left Const BASS_SPEAKER_RIGHT =$20000000 ' modifier: Right Const BASS_SPEAKER_FRONTLEFT =BASS_SPEAKER_FRONT|BASS_SPEAKER_LEFT Const BASS_SPEAKER_FRONTRIGHT =BASS_SPEAKER_FRONT|BASS_SPEAKER_RIGHT Const BASS_SPEAKER_REARLEFT =BASS_SPEAKER_REAR|BASS_SPEAKER_LEFT Const BASS_SPEAKER_REARRIGHT =BASS_SPEAKER_REAR|BASS_SPEAKER_RIGHT Const BASS_SPEAKER_CENTER =BASS_SPEAKER_CENLFE|BASS_SPEAKER_LEFT Const BASS_SPEAKER_LFE =BASS_SPEAKER_CENLFE|BASS_SPEAKER_RIGHT Const BASS_SPEAKER_REAR2LEFT =BASS_SPEAKER_REAR2|BASS_SPEAKER_LEFT Const BASS_SPEAKER_REAR2RIGHT =BASS_SPEAKER_REAR2|BASS_SPEAKER_RIGHT Const BASS_UNICODE =$80000000 Const BASS_RECORD_PAUSE =$8000 ' start recording paused ' DX7 voice allocation flags Const BASS_VAM_HARDWARE = 1 Rem Play the sample in hardware. If no hardware voices are available Then the "play" call will fail End Rem Const BASS_VAM_SOFTWARE =2 Rem Play the sample in software (ie. non-accelerated). No other VAM flags may be used together with this flag. End Rem ' DX7 voice management flags Rem These flags enable hardware resource stealing... If the hardware has no available voices, a currently playing buffer will be stopped To make room For the New buffer. NOTE: only samples loaded/created with the BASS_SAMPLE_VAM flag are considered For termination by the DX7 voice management. End Rem Const BASS_VAM_TERM_TIME = 4 Rem If there are no free hardware voices, the buffer To be terminated will be the one with the least time Left To play. End Rem Const BASS_VAM_TERM_DIST = 8 Rem If there are no free hardware voices, the buffer To be terminated will be one that was loaded/created with the BASS_SAMPLE_MUTEMAX flag And is beyond it's max distance. If there are no buffers that match this criteria, then the "play" call will fail. End Rem Const BASS_VAM_TERM_PRIO = 16 Rem If there are no free hardware voices, the buffer To be terminated will be the one with the lowest priority. End Rem Type BASS_CHANNELINFO Field freq:Int ' Default playback rate Field chans:Int ' channels Field flags:Int ' BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags Field ctype:Int ' Type of channel Field origres:Int ' original resolution End Type ' BASS_CHANNELINFO types Const BASS_CTYPE_SAMPLE = 1 Const BASS_CTYPE_RECORD = 2 Const BASS_CTYPE_STREAM =$10000 Const BASS_CTYPE_STREAM_WAV =$10001 Const BASS_CTYPE_STREAM_OGG =$10002 Const BASS_CTYPE_STREAM_MP1 =$10003 Const BASS_CTYPE_STREAM_MP2 =$10004 Const BASS_CTYPE_STREAM_MP3= $10005 Const BASS_CTYPE_MUSIC_MOD =$20000 Const BASS_CTYPE_MUSIC_MTM =$20001 Const BASS_CTYPE_MUSIC_S3M =$20002 Const BASS_CTYPE_MUSIC_XM =$20003 Const BASS_CTYPE_MUSIC_IT =$20004 Const BASS_CTYPE_MUSIC_MO3 =$00100 ' mo3 flag ' 3D vector (For 3D positions/velocities/orientations) Type BASS_3DVECTOR Field x:Float ' +=Right, -=Left Field y:Float ' +=up, -=down Field z:Float ' +=front, -=behind End Type ' 3D channel modes Const BASS_3DMODE_NORMAL = 0 Rem normal 3D processing end rem Const BASS_3DMODE_RELATIVE 1 rem The channel's 3D position (position/velocity/orientation) are relative to the listener. When the listener's position/velocity/orientation is changed with BASS_Set3DPosition, the channel's position relative to the listener does Not change. End Rem Const BASS_3DMODE_OFF = 2 Rem Turn off 3D processing on the channel, the sound will be played in the center. End Rem Rem ' EAX environments, use with BASS_SetEAXParameters enum { EAX_ENVIRONMENT_GENERIC, EAX_ENVIRONMENT_PADDEDCELL, EAX_ENVIRONMENT_ROOM, EAX_ENVIRONMENT_BATHROOM, EAX_ENVIRONMENT_LIVINGROOM, EAX_ENVIRONMENT_STONEROOM, EAX_ENVIRONMENT_AUDITORIUM, EAX_ENVIRONMENT_CONCERTHALL, EAX_ENVIRONMENT_CAVE, EAX_ENVIRONMENT_ARENA, EAX_ENVIRONMENT_HANGAR, EAX_ENVIRONMENT_CARPETEDHALLWAY, EAX_ENVIRONMENT_HALLWAY, EAX_ENVIRONMENT_STONECORRIDOR, EAX_ENVIRONMENT_ALLEY, EAX_ENVIRONMENT_FOREST, EAX_ENVIRONMENT_CITY, EAX_ENVIRONMENT_MOUNTAINS, EAX_ENVIRONMENT_QUARRY, EAX_ENVIRONMENT_PLAIN, EAX_ENVIRONMENT_PARKINGLOT, EAX_ENVIRONMENT_SEWERPIPE, EAX_ENVIRONMENT_UNDERWATER, EAX_ENVIRONMENT_DRUGGED, EAX_ENVIRONMENT_DIZZY, EAX_ENVIRONMENT_PSYCHOTIC, EAX_ENVIRONMENT_COUNT ' total number of environments }; End Rem 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 Const EAX_ENVIRONMENT_COUNT = 26 ' total number of environments Rem ' 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 End Rem ' software 3D mixing algorithm modes (used with BASS_Set3DAlgorithm) Const BASS_3DALG_DEFAULT = 0 Rem Default algorithm (currently translates To BASS_3DALG_OFF) End Rem Const BASS_3DALG_OFF = 1 Rem Uses normal Left And Right panning. The vertical axis is ignored except For scaling of volume due To distance. Doppler shift And volume scaling are still applied, but the 3D filtering is Not performed. This is the most CPU efficient software implementation, but provides no virtual 3D audio effect. Head Related Transfer Function processing will Not be done. Since only normal stereo panning is used, a channel using this algorithm may be accelerated by a 2D hardware voice If no free 3D hardware voices are available. End Rem Const BASS_3DALG_FULL = 2 Rem This algorithm gives the highest quality 3D audio effect, but uses more CPU. Requires Windows 98 2nd Edition Or Windows 2000 that uses WDM drivers, If this mode is Not available Then BASS_3DALG_OFF will be used instead. End Rem Const BASS_3DALG_LIGHT = 3 Rem This algorithm gives a good 3D audio effect, And uses less CPU than the FULL mode. Requires Windows 98 2nd Edition Or Windows 2000 that uses WDM drivers, If this mode is Not available Then BASS_3DALG_OFF will be used instead. End Rem 'typedef DWORD (CALLBACK STREAMPROC)(HSTREAM handle, void *buffer, DWORD length, DWORD user) Rem User stream callback function. NOTE: A stream Function should obviously be as quick as possible, other streams (And Mod musics) can't be mixed until it's finished. handle : The stream that needs writing buffer : Buffer To write the samples in length : Number of bytes To write user : The 'user' parameter value given when calling BASS_StreamCreate Return : Number of bytes written. Set the BASS_STREAMPROC_END flag To End the stream. End Rem Const BASS_STREAMPROC_END = $80000000 ' End of user stream flag ' BASS_StreamGetFilePosition modes Const BASS_FILEPOS_DECODE = 0 Const BASS_FILEPOS_DOWNLOAD= 1 Const BASS_FILEPOS_END =2 Const BASS_FILEPOS_START =3 ' STREAMFILEPROC actions Const BASS_FILE_CLOSE = 0 Const BASS_FILE_READ =1 Const BASS_FILE_QUERY =2 Const BASS_FILE_LEN =3 Const BASS_FILE_SEEK =4 'typedef DWORD (CALLBACK STREAMFILEPROC)(DWORD action, DWORD param1, DWORD param2, DWORD user); Rem User file stream callback function. action : The action To perform, one of BASS_FILE_xxx values. param1 : Depends on "action" param2 : Depends on "action" user : The 'user' parameter value given when calling BASS_StreamCreate Return : Depends on "action" End Rem 'typedef void (CALLBACK DOWNLOADPROC)(void *buffer, DWORD length, DWORD user); Rem Internet stream download callback function. buffer : Buffer containing the downloaded data... Null=End of download length : Number of bytes in the buffer user : The 'user' parameter value given when calling BASS_StreamCreateURL End Rem Rem Sync types (with BASS_ChannelSetSync "param" And SYNCPROC "data" definitions) & flags. End Rem Const BASS_SYNC_MUSICPOS = 0 Const BASS_SYNC_POS = 0 Rem Sync when a channel reaches a position. If HMUSIC... param: LOWORD=order (0=first, -1=all) HIWORD=row (0=first, -1=all) data : LOWORD=order HIWORD=row If HSTREAM... param: position in bytes data : Not used End Rem Const BASS_SYNC_MUSICINST =1 Rem Sync when an instrument (sample For the non-instrument based formats) is played in a music (Not including retrigs). param: LOWORD=instrument (1=first) HIWORD=note (0=c0...119=b9, -1=all) data : LOWORD=note HIWORD=volume (0-64) End Rem Const BASS_SYNC_END =2 Rem Sync when a channel reaches the end. param: Not used data : 1 = the sync is triggered by a backward jump in a Mod music, otherwise Not used End Rem Const BASS_SYNC_MUSICFX =3 Rem Sync when the "sync" effect (XM/MTM/Mod: E8x/Wxx, IT/S3M: S2x) is used. param: 0:data=pos, 1:data="x" value data : param=0: LOWORD=order HIWORD=row, param=1: "x" value End Rem Const BASS_SYNC_META = 4 Rem Sync when metadata is received in a Shoutcast stream. param: Not used data : pointer To the metadata End Rem Const BASS_SYNC_SLIDE = 5 Rem Sync when an attribute slide is completed. param: Not used data : the Type of slide completed (one of the BASS_SLIDE_xxx values) End Rem Const BASS_SYNC_STALL = 6 Rem Sync when playback has stalled. param: Not used data : 0=stalled, 1=resumed End Rem Const BASS_SYNC_DOWNLOAD =7 Rem Sync when downloading of an internet (Or "buffered" user file) stream has ended. param: Not used data : Not used End Rem Const BASS_SYNC_FREE = 8 Rem Sync when a channel is freed. param: Not used data : Not used End Rem Const BASS_SYNC_MESSAGE =$20000000 ' FLAG: post a Windows message (instead of callback) Rem When using a window message "callback", the message To post is given in the "proc" parameter of BASS_ChannelSetSync, And is posted To the window specified in the BASS_Init call. The message parameters are: WPARAM = data, LPARAM = user. End Rem Const BASS_SYNC_MIXTIME =$40000000 ' FLAG: sync at mixtime, Else at playtime Const BASS_SYNC_ONETIME =$80000000 ' FLAG: sync only once, Else continuously 'typedef void (CALLBACK SYNCPROC)(HSYNC handle, DWORD channel, DWORD data, DWORD user); Rem Sync callback function. NOTE: a sync callback Function should be very quick as other syncs can't be processed until it has finished. If the sync is a "mixtime" sync, Then other streams And Mod musics can't be mixed until it's finished either. handle : The sync that has occured channel: Channel that the sync occured in data : Additional data associated with the sync's occurance user : The 'user' parameter given when calling BASS_ChannelSetSync End Rem 'typedef void (CALLBACK DSPPROC)(HDSP handle, DWORD channel, void *buffer, DWORD length, DWORD user); Rem DSP callback function. NOTE: A DSP Function should obviously be as quick as possible... other DSP functions, streams And Mod musics can Not be processed Until it's finished. handle : The DSP handle channel: Channel that the DSP is being applied To buffer : Buffer To apply the DSP To length : Number of bytes in the buffer user : The 'user' parameter given when calling BASS_ChannelSetDSP End Rem 'typedef BOOL (CALLBACK RECORDPROC)(HRECORD handle, void *buffer, DWORD length, DWORD user); Rem Recording callback function. handle : The recording handle buffer : Buffer containing the recorded sample data length : Number of bytes user : The 'user' parameter value given when calling BASS_RecordStart Return : True = Continue recording, False = stop End Rem ' BASS_ChannelGetData flags Const BASS_DATA_AVAILABLE =0 ' query how much data is buffered Const BASS_DATA_FFT512 =$80000000 ' 512 sample FFT Const BASS_DATA_FFT1024 =$80000001 ' 1024 FFT Const BASS_DATA_FFT2048 =$80000002 ' 2048 FFT Const BASS_DATA_FFT4096 = $80000003 ' 4096 FFT Const BASS_DATA_FFT_INDIVIDUAL =$10 ' FFT flag: FFT For each channel, Else all combined Const BASS_DATA_FFT_NOWINDOW =$20 ' FFT flag: no Hanning window ' BASS_StreamGetTags types : 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 Const BASS_TAG_META =5 ' ICY metadata : Null-terminated String ' BASS_MusicSet/GetAttribute options Const BASS_MUSIC_ATTRIB_AMPLIFY= 0 Const BASS_MUSIC_ATTRIB_PANSEP =1 Const BASS_MUSIC_ATTRIB_PSCALER =2 Const BASS_MUSIC_ATTRIB_BPM =3 Const BASS_MUSIC_ATTRIB_SPEED = 4 Const BASS_MUSIC_ATTRIB_VOL_GLOBAL =5 Const BASS_MUSIC_ATTRIB_VOL_CHAN =$100 ' + channel # Const BASS_MUSIC_ATTRIB_VOL_INST =$200 ' + instrument # Rem ' DX8 effect types, use with BASS_ChannelSetFX enum { BASS_FX_CHORUS, ' GUID_DSFX_STANDARD_CHORUS BASS_FX_COMPRESSOR, ' GUID_DSFX_STANDARD_COMPRESSOR BASS_FX_DISTORTION, ' GUID_DSFX_STANDARD_DISTORTION BASS_FX_ECHO, ' GUID_DSFX_STANDARD_ECHO BASS_FX_FLANGER, ' GUID_DSFX_STANDARD_FLANGER BASS_FX_GARGLE, ' GUID_DSFX_STANDARD_GARGLE BASS_FX_I3DL2REVERB, ' GUID_DSFX_STANDARD_I3DL2REVERB BASS_FX_PARAMEQ, ' GUID_DSFX_STANDARD_PARAMEQ BASS_FX_REVERB ' GUID_DSFX_WAVES_REVERB }; End Rem 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 Type BASS_FXCHORUS Field fWetDryMix:Float Field fDepth:Float Field fFeedback:Float Field fFrequency:Float Field lWaveform:Int ' 0=triangle, 1=sine Field fDelay:Float Field lPhase:Int ' BASS_FX_PHASE_xxx End Type Type BASS_FXCOMPRESSOR Field fGain:Float Field fAttack:Float Field fRelease:Float Field fThreshold:Float Field fRatio:Float Field fPredelay:Float End Type Type BASS_FXDISTORTION Field fGain:Float Field fEdge:Float Field fPostEQCenterFrequency:Float Field fPostEQBandwidth:Float Field fPreLowpassCutoff:Float End Type Type BASS_FXECHO Field fWetDryMix:Float Field fFeedback:Float Field fLeftDelay:Float Field fRightDelay:Float Field lPanDelay:Byte End Type Type BASS_FXFLANGER Field fWetDryMix:Float Field fDepth:Float Field fFeedback:Float Field fFrequency:Float Field lWaveform:Int ' 0=triangle, 1=sine Field fDelay:Float Field lPhase:Int ' BASS_FX_PHASE_xxx End Type Type BASS_FXGARGLE Field dwRateHz:Int ' Rate of modulation in hz Field dwWaveShape:Int ' 0=triangle, 1=square End Type ' DSFXGargle Type BASS_FXI3DL2REVERB Field lRoom:Int ' [-10000, 0] Default: -1000 mB Field lRoomHF:Int ' [-10000, 0] Default: 0 mB Field flRoomRolloffFactor:Float ' [0.0, 10.0] Default: 0.0 Field flDecayTime:Float ' [0.1, 20.0] Default: 1.49s Field flDecayHFRatio:Float ' [0.1, 2.0] Default: 0.83 Field lReflections:Int ' [-10000, 1000] Default: -2602 mB Field flReflectionsDelay:Float ' [0.0, 0.3] Default: 0.007 s Field lReverb:Int ' [-10000, 2000] Default: 200 mB Field flReverbDelay:Float ' [0.0, 0.1] Default: 0.011 s Field flDiffusion:Float ' [0.0, 100.0] Default: 100.0 % Field flDensity:Float ' [0.0, 100.0] Default: 100.0 % Field flHFReference:Float ' [20.0, 20000.0] Default: 5000.0 Hz End Type ' DSFXI3DL2Reverb Type BASS_FXPARAMEQ Field fCenter:Float Field fBandwidth:Float Field fGain:Float End Type ' DSFXParamEq Type BASS_FXREVERB Field fInGain:Float ' [-96.0,0.0] Default: 0.0 dB Field fReverbMix:Float ' [-96.0,0.0] Default: 0.0 db Field fReverbTime:Float ' [0.001,3000.0] Default: 1000.0 ms Field fHighFreqRTRatio:Float ' [0.001,0.999] Default: 0.001 End Type ' DSFXWavesReverb 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 ' BASS_ChannelIsActive Return values Const BASS_ACTIVE_STOPPED =0 Const BASS_ACTIVE_PLAYING =1 Const BASS_ACTIVE_STALLED =2 Const BASS_ACTIVE_PAUSED =3 ' BASS_ChannelIsSliding Return flags Const BASS_SLIDE_FREQ =1 Const BASS_SLIDE_VOL =2 Const BASS_SLIDE_PAN =4 ' BASS_RecordSetInput flags Const BASS_INPUT_OFF = $10000 Const BASS_INPUT_ON =$20000 Const BASS_INPUT_LEVEL =$40000 Const BASS_INPUT_TYPE_MASK =$ff000000 Const BASS_INPUT_TYPE_UNDEF =$00000000 Const BASS_INPUT_TYPE_DIGITAL = $01000000 Const BASS_INPUT_TYPE_LINE =$02000000 Const BASS_INPUT_TYPE_MIC = $03000000 Const BASS_INPUT_TYPE_SYNTH =$04000000 Const BASS_INPUT_TYPE_CD = $05000000 Const BASS_INPUT_TYPE_PHONE =$06000000 Const BASS_INPUT_TYPE_SPEAKER = $07000000 Const BASS_INPUT_TYPE_WAVE =$08000000 Const BASS_INPUT_TYPE_AUX = $09000000 Const BASS_INPUT_TYPE_ANALOG =$0a000000 ' BASS_Set/GetConfig options Const BASS_CONFIG_BUFFER = 0 Const BASS_CONFIG_UPDATEPERIOD =1 Const BASS_CONFIG_MAXVOL = 3 Const BASS_CONFIG_GVOL_SAMPLE =4 Const BASS_CONFIG_GVOL_STREAM =5 Const BASS_CONFIG_GVOL_MUSIC =6 Const BASS_CONFIG_CURVE_VOL =7 Const BASS_CONFIG_CURVE_PAN =8 Const BASS_CONFIG_FLOATDSP =9 Const BASS_CONFIG_3DALGORITHM =10 Const BASS_CONFIG_NET_TIMEOUT =11 Const BASS_CONFIG_NET_BUFFER =12 Const BASS_CONFIG_PAUSE_NOPLAY =13 Const BASS_CONFIG_NET_NOPROXY =14 Const BASS_CONFIG_NET_PREBUF =15 Const DllName:String = "bass.dll" Local DllHandle = LoadLibraryA(DllName) If DLLhandle = 0 Assert DLLHandle, "BASS.DLL konnte nicht geladen werden" EndIf Global BASS_SetConfig(option:Int, value:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SetConfig") 'DWORD BASSDEF(BASS_SetConfig)(DWORD option, DWORD value); Global BASS_GetConfig(option:Int)"Win32" = GetProcAddress(DllHandle,"BASS_GetConfig") 'DWORD BASSDEF(BASS_GetConfig)(DWORD option); Global BASS_GetVersion()"Win32" = GetProcAddress(DllHandle,"BASS_GetVersion") 'DWORD BASSDEF(BASS_GetVersion)(); Global BASS_GetDeviceDescription:Byte Ptr(device:Int)"Win32" = GetProcAddress(DllHandle,"BASS_GetDeviceDescription") 'char *BASSDEF(BASS_GetDeviceDescription)(DWORD device); Global BASS_ErrorGetCode()"Win32" = GetProcAddress(DllHandle,"BASS_ErrorGetCode") 'DWORD BASSDEF(BASS_ErrorGetCode)(); Global BASS_Init(device:Int, freq:Int, flags:Int, hwnd:Int, dsguid:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_Init") 'BOOL BASSDEF(BASS_Init)(DWORD device, DWORD freq, DWORD flags, HWND win, Const GUID *dsguid); Global BASS_SetDevice(device:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SetDevice") 'BOOL BASSDEF(BASS_SetDevice)(DWORD device); Global BASS_GetDevice()"Win32" = GetProcAddress(DllHandle,"BASS_GetDevice") 'DWORD BASSDEF(BASS_GetDevice)(); Global BASS_Free()"Win32" = GetProcAddress(DllHandle,"BASS_Free") 'BOOL BASSDEF(BASS_Free)(); Global BASS_GetDSoundObject:Byte Ptr(obj:Int)"Win32" = GetProcAddress(DllHandle,"BASS_GetDSoundObject") 'void *BASSDEF(BASS_GetDSoundObject)(DWORD Object); Global BASS_GetInfo(BASS_INFO_Info:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_GetInfo") 'BOOL BASSDEF(BASS_GetInfo)(BASS_INFO *info); Global BASS_Update()"Win32" = GetProcAddress(DllHandle,"BASS_Update") 'BOOL BASSDEF(BASS_Update)(); Global BASS_GetCPU:Float()"Win32" = GetProcAddress(DllHandle,"BASS_GetCPU") 'Float BASSDEF(BASS_GetCPU)(); Global BASS_Start()"Win32" = GetProcAddress(DllHandle,"BASS_Start") 'BOOL BASSDEF(BASS_Start)(); Global BASS_Stop()"Win32" = GetProcAddress(DllHandle,"BASS_Stop") 'BOOL BASSDEF(BASS_Stop)(); Global BASS_Pause()"Win32" = GetProcAddress(DllHandle,"BASS_Pause") 'BOOL BASSDEF(BASS_Pause)(); Global BASS_SetVolume(volume:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SetVolume") 'BOOL BASSDEF(BASS_SetVolume)(DWORD volume); Global BASS_GetVolume()"Win32" = GetProcAddress(DllHandle,"BASS_GetVolume") 'DWORD BASSDEF(BASS_GetVolume)(); Global BASS_Set3DFactors(distf:Float,rollf:Float, doppf:Float)"Win32" = GetProcAddress(DllHandle,"BASS_Set3DFactors") 'BOOL BASSDEF(BASS_Set3DFactors)(Float distf, Float rollf, Float doppf); Global BASS_Get3DFactors(distf:Float Ptr, rollf:Float Ptr, doppf:Float Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_Get3DFactors") 'BOOL BASSDEF(BASS_Get3DFactors)(Float *distf, Float *rollf, Float *doppf); Global BASS_Set3DPosition(BASS_3DVECTOR_Pos:Byte Ptr , BASS_3DVECTOR_Vel:Byte Ptr, BASS_3DVECTOR_Front:Byte Ptr, BASS_3DVECTOR_Top:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_Set3DPosition") 'BOOL BASSDEF(BASS_Set3DPosition)(Const BASS_3DVECTOR *pos, Const BASS_3DVECTOR *vel, Const BASS_3DVECTOR *front, Const BASS_3DVECTOR *top); Global BASS_Get3DPosition(BASS_3DVECTOR_Pos:Byte Ptr , BASS_3DVECTOR_Vel:Byte Ptr, BASS_3DVECTOR_Front:Byte Ptr, BASS_3DVECTOR_Top:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_Get3DPosition") 'BOOL BASSDEF(BASS_Get3DPosition)(BASS_3DVECTOR *pos, BASS_3DVECTOR *vel, BASS_3DVECTOR *front, BASS_3DVECTOR *top); Global BASS_Apply3D()"Win32" = GetProcAddress(DllHandle,"BASS_Apply3D") 'void BASSDEF(BASS_Apply3D)(); Global BASS_SetEAXParameters(env:Int, vol:Float, decay:Float, damp:Float)"Win32" = GetProcAddress(DllHandle,"BASS_SetEAXParameters") 'BOOL BASSDEF(BASS_SetEAXParameters)(Int env, Float vol, Float decay, Float damp); Global BASS_GetEAXParameters(env:Int Ptr, vol:Float Ptr, decay:Float Ptr, damp:Float Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_GetEAXParameters") 'BOOL BASSDEF(BASS_GetEAXParameters)(DWORD *env, Float *vol, Float *decay, Float *damp); Global BASS_MusicLoad(mem:Int, file:Byte Ptr, offset:Int, length:Int, flags:Int, freq:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicLoad") 'HMUSIC BASSDEF(BASS_MusicLoad)(BOOL mem, Const void *file, DWORD offset, DWORD length, DWORD flags, DWORD freq); Global BASS_MusicFree(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicFree") 'BOOL BASSDEF(BASS_MusicFree)(HMUSIC handle); Global BASS_MusicGetName:Byte Ptr(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicGetName") 'char *BASSDEF(BASS_MusicGetName)(HMUSIC handle); Global BASS_MusicGetLength(handle:Int, playlen:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicGetLength") 'DWORD BASSDEF(BASS_MusicGetLength)(HMUSIC handle, BOOL playlen); Global BASS_MusicSetAttribute(handle:Int, attrib:Int, value:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicSetAttribute") 'DWORD BASSDEF(BASS_MusicSetAttribute)(HMUSIC handle, DWORD attrib, DWORD value); Global BASS_MusicGetAttribute(handle:Int, attrib:Int)"Win32" = GetProcAddress(DllHandle,"BASS_MusicGetAttribute") 'DWORD BASSDEF(BASS_MusicGetAttribute)(HMUSIC handle, DWORD attrib); Global BASS_SampleLoad(mem:Int, file:Byte Ptr, offset:Int, length:Int, Max_:Int, flags:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SampleLoad") 'HSAMPLE BASSDEF(BASS_SampleLoad)(BOOL mem, Const void *file, DWORD offset, DWORD length, DWORD Max, DWORD flags); Global BASS_SampleCreate:Byte Ptr(length:Int, freq:Int, Max_:Int, flags:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SampleCreate") 'void* BASSDEF(BASS_SampleCreate)(DWORD length, DWORD freq, DWORD Max, DWORD flags); Global BASS_SampleCreateDone()"Win32" = GetProcAddress(DllHandle,"BASS_SampleCreateDone") 'HSAMPLE BASSDEF(BASS_SampleCreateDone)(); Global BASS_SampleFree(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SampleFree") 'BOOL BASSDEF(BASS_SampleFree)(HSAMPLE handle); Global BASS_SampleGetInfo(handle:Int, BASS_SAMPLE_Info:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_SampleGetInfo") 'BOOL BASSDEF(BASS_SampleGetInfo)(HSAMPLE handle, BASS_SAMPLE *info); Global BASS_SampleSetInfo(handle:Int, BASS_SAMPLE_Info:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_SampleSetInfo") 'BOOL BASSDEF(BASS_SampleSetInfo)(HSAMPLE handle, Const BASS_SAMPLE *info); Global BASS_SampleGetChannel(handle:Int, onlynew:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SampleGetChannel") 'HCHANNEL BASSDEF(BASS_SampleGetChannel)(HSAMPLE handle, BOOL onlynew); Global BASS_SampleStop(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_SampleStop") 'BOOL BASSDEF(BASS_SampleStop)(HSAMPLE handle); Global BASS_StreamCreate(freq:Int, chans:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamCreate") 'HSTREAM BASSDEF(BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, STREAMPROC *proc, DWORD user); Global BASS_StreamCreateFile(mem:Int, file:Byte Ptr, offset:Int, length:Int, flags:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamCreateFile") 'HSTREAM BASSDEF(BASS_StreamCreateFile)(BOOL mem, Const void *file, DWORD offset, DWORD length, DWORD flags); Global BASS_StreamCreateURL(url$z, offset:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamCreateURL") 'HSTREAM BASSDEF(BASS_StreamCreateURL)(Const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, DWORD user); Global BASS_StreamCreateFileUser(buffered:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamCreateFileUser") 'HSTREAM BASSDEF(BASS_StreamCreateFileUser)(BOOL buffered, DWORD flags, STREAMFILEPROC *proc, DWORD user); Global BASS_StreamFree(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamFree") 'BOOL BASSDEF(BASS_StreamFree)(HSTREAM handle); Global BASS_StreamGetLength:Long(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamGetLength") 'QWORD BASSDEF(BASS_StreamGetLength)(HSTREAM handle); Global BASS_StreamGetTags:Byte Ptr(handle:Int, tags:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamGetTags") 'char *BASSDEF(BASS_StreamGetTags)(HSTREAM handle, DWORD tags); Global BASS_StreamGetFilePosition(handle:Int, mode:Int)"Win32" = GetProcAddress(DllHandle,"BASS_StreamGetFilePosition") 'DWORD BASSDEF(BASS_StreamGetFilePosition)(HSTREAM handle, DWORD mode); Global BASS_RecordGetDeviceDescription:Byte Ptr(device:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordGetDeviceDescription") 'char *BASSDEF(BASS_RecordGetDeviceDescription)(DWORD device); Global BASS_RecordInit(device:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordInit") 'BOOL BASSDEF(BASS_RecordInit)(DWORD device); Global BASS_RecordSetDevice(device:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordSetDevice") 'BOOL BASSDEF(BASS_RecordSetDevice)(DWORD device); Global BASS_RecordGetDevice()"Win32" = GetProcAddress(DllHandle,"BASS_RecordGetDevice") 'DWORD BASSDEF(BASS_RecordGetDevice)(); Global BASS_RecordFree()"Win32" = GetProcAddress(DllHandle,"BASS_RecordFree") 'BOOL BASSDEF(BASS_RecordFree)(); Global BASS_RecordGetInfo(BASS_RECORDINFO_Info:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_RecordGetInfo") 'BOOL BASSDEF(BASS_RecordGetInfo)(BASS_RECORDINFO *info); Global BASS_RecordGetInputName:Byte Ptr(Input_:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordGetInputName") 'char *BASSDEF(BASS_RecordGetInputName)(DWORD Input); Global BASS_RecordSetInput(Input_:Int, setting:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordSetInput") 'BOOL BASSDEF(BASS_RecordSetInput)(DWORD Input, DWORD setting); Global BASS_RecordGetInput(Input_:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordGetInput") 'DWORD BASSDEF(BASS_RecordGetInput)(DWORD Input); Global BASS_RecordStart(freq:Int, chans:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle,"BASS_RecordStart") 'HRECORD BASSDEF(BASS_RecordStart)(DWORD freq, DWORD chans, DWORD flags, RECORDPROC *proc, DWORD user); Global BASS_ChannelBytes2Seconds:Float(handle:Int, pos:Long)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelBytes2Seconds") 'Float BASSDEF(BASS_ChannelBytes2Seconds)(DWORD handle, QWORD pos); Global BASS_ChannelSeconds2Bytes:Long(handle:Int, pos:Float)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSeconds2Bytes") 'QWORD BASSDEF(BASS_ChannelSeconds2Bytes)(DWORD handle, Float pos); Global BASS_ChannelGetDevice(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetDevice") 'DWORD BASSDEF(BASS_ChannelGetDevice)(DWORD handle); Global BASS_ChannelIsActive(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelIsActive") 'DWORD BASSDEF(BASS_ChannelIsActive)(DWORD handle); Global BASS_ChannelGetInfo(handle:Int, BASS_CHANNELINFO_Info:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetInfo") 'BOOL BASSDEF(BASS_ChannelGetInfo)(DWORD handle, BASS_CHANNELINFO *info); Global BASS_ChannelSetFlags(handle:Int, flags:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetFlags") 'BOOL BASSDEF(BASS_ChannelSetFlags)(DWORD handle, DWORD flags); Global BASS_ChannelPreBuf(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelPreBuf") 'BOOL BASSDEF(BASS_ChannelPreBuf)(DWORD handle); Global BASS_ChannelPlay(handle:Int, restart:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelPlay") 'BOOL BASSDEF(BASS_ChannelPlay)(DWORD handle, BOOL restart); Global BASS_ChannelStop(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelStop") 'BOOL BASSDEF(BASS_ChannelStop)(DWORD handle); Global BASS_ChannelPause(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelPause") 'BOOL BASSDEF(BASS_ChannelPause)(DWORD handle); Global BASS_ChannelSetAttributes(handle:Int, freq:Int, volume:Int, pan:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetAttributes") 'BOOL BASSDEF(BASS_ChannelSetAttributes)(DWORD handle, Int freq, Int volume, Int pan); Global BASS_ChannelGetAttributes(handle:Int, freq:Int Ptr, volume:Int Ptr, pan:Int Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetAttributes") 'BOOL BASSDEF(BASS_ChannelGetAttributes)(DWORD handle, DWORD *freq, DWORD *volume, Int *pan); Global BASS_ChannelSlideAttributes(handle:Int, freq:Int, volume:Int , pan:Int, time:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSlideAttributes") 'BOOL BASSDEF(BASS_ChannelSlideAttributes)(DWORD handle, Int freq, Int volume, Int pan, DWORD time); Global BASS_ChannelIsSliding(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelIsSliding") 'DWORD BASSDEF(BASS_ChannelIsSliding)(DWORD handle); Global BASS_ChannelSet3DAttributes(handle:Int, mode:Int, Min_:Float, Max_:Float, iangle:Int, oangle:Int, outvol:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSet3DAttributes") 'BOOL BASSDEF(BASS_ChannelSet3DAttributes)(DWORD handle, Int mode, Float Min, Float Max, Int iangle, Int oangle, Int outvol); Global BASS_ChannelGet3DAttributes(handle:Int, mode:Int Ptr, Min_:Float Ptr, Max_:Float Ptr, iangle:Int Ptr, oangle:Int Ptr, outvol:Int Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGet3DAttributes") 'BOOL BASSDEF(BASS_ChannelGet3DAttributes)(DWORD handle, DWORD *mode, Float *Min, Float *Max, DWORD *iangle, DWORD *oangle, DWORD *outvol); Global BASS_ChannelSet3DPosition(handle:Int, BASS_3DVECTOR_Pos:Byte Ptr, BASS_3DVECTOR_Orient:Byte Ptr, BASS_3DVECTOR_Vel:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSet3DPosition") 'BOOL BASSDEF(BASS_ChannelSet3DPosition)(DWORD handle, Const BASS_3DVECTOR *pos, Const BASS_3DVECTOR *orient, Const BASS_3DVECTOR *vel); Global BASS_ChannelGet3DPosition(handle:Int, BASS_3DVECTOR_Pos:Byte Ptr, BASS_3DVECTOR_Orient:Byte Ptr, BASS_3DVECTOR_Vel:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGet3DPosition") 'BOOL BASSDEF(BASS_ChannelGet3DPosition)(DWORD handle, BASS_3DVECTOR *pos, BASS_3DVECTOR *orient, BASS_3DVECTOR *vel); Global BASS_ChannelSetPosition(handle:Int, pos:Long)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetPosition") 'BOOL BASSDEF(BASS_ChannelSetPosition)(DWORD handle, QWORD pos); Global BASS_ChannelGetPosition:Long(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetPosition") 'QWORD BASSDEF(BASS_ChannelGetPosition)(DWORD handle); Global BASS_ChannelGetLevel(handle:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetLevel") 'DWORD BASSDEF(BASS_ChannelGetLevel)(DWORD handle); Global BASS_ChannelGetData(handle:Int, buffer:Byte Ptr, length:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetData") 'DWORD BASSDEF(BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length); Global BASS_ChannelSetSync(handle:Int, Type_:Int, param:Long, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetSync") 'HSYNC BASSDEF(BASS_ChannelSetSync)(DWORD handle, DWORD Type, QWORD param, SYNCPROC *proc, DWORD user); Global BASS_ChannelRemoveSync(handle:Int, sync:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelRemoveSync") 'BOOL BASSDEF(BASS_ChannelRemoveSync)(DWORD handle, HSYNC sync); Global BASS_ChannelSetDSP(handle:Int, proc:Byte Ptr, user:Int, priority:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetDSP") 'HDSP BASSDEF(BASS_ChannelSetDSP)(DWORD handle, DSPPROC *proc, DWORD user, Int priority); Global BASS_ChannelRemoveDSP(handle:Int, dsp:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelRemoveDSP") 'BOOL BASSDEF(BASS_ChannelRemoveDSP)(DWORD handle, HDSP dsp); Global BASS_ChannelSetFX(handle:Int, type_:Int, priority:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetFX") 'HFX BASSDEF(BASS_ChannelSetFX)(DWORD handle, DWORD Type, DWORD priority); Global BASS_ChannelRemoveFX(handle:Int, fx:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelRemoveFX") 'BOOL BASSDEF(BASS_ChannelRemoveFX)(DWORD handle, HFX fx); Global BASS_ChannelSetEAXMix(handle:Int, mix:Float)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetEAXMix") 'BOOL BASSDEF(BASS_ChannelSetEAXMix)(DWORD handle, Float mix); Global BASS_ChannelGetEAXMix(handle:Int, mix:Float Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelGetEAXMix") 'BOOL BASSDEF(BASS_ChannelGetEAXMix)(DWORD handle, Float *mix); Global BASS_ChannelSetLink(handle:Int, chan:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelSetLink") 'BOOL BASSDEF(BASS_ChannelSetLink)(DWORD handle, DWORD chan); Global BASS_ChannelRemoveLink(handle:Int, chan:Int)"Win32" = GetProcAddress(DllHandle,"BASS_ChannelRemoveLink") 'BOOL BASSDEF(BASS_ChannelRemoveLink)(DWORD handle, DWORD chan); Global BASS_FXSetParameters(handle:Int, par:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_FXSetParameters") 'BOOL BASSDEF(BASS_FXSetParameters)(HFX handle, Const void *par); Global BASS_FXGetParameters(handle:Int, par:Byte Ptr)"Win32" = GetProcAddress(DllHandle,"BASS_FXGetParameters") 'BOOL BASSDEF(BASS_FXGetParameters)(HFX handle, void *par); Function LoWord:Short(Value:Int) Return Value & $0000FFFF End Function Function HiWord:Short(Value:Int) Return (Value & $FFFF0000) Shr 16 End Function Function StripTags:String[](Data:Byte Ptr) Local TempArray:String[] Local TempChar Local NewString:String For Local i:Int = 0 Until 128 If Data[i] = 0 Continue EndIf NewString = "" Repeat TempChar = Data[i] If TempChar = 0 Exit EndIf NewString:+Chr(TempChar) i:+1 Forever TempChar=0 NewString = Trim(NewString) If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf Next Return TempArray End Function Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
- Zuletzt bearbeitet von Suco-X am Sa, Jul 02, 2005 11:31, insgesamt 6-mal bearbeitet
Suco-XBetreff: ....... |
Sa, Jul 02, 2005 1:55 Antworten mit Zitat |
|
---|---|---|
So, ich habe noch ein paar Änderungen vorgenommen (Bitte Code aus dem ersten Thread neu aufpielen).
Habe dazu auch mal das erste Beispiel gemacht: Code: [AUSKLAPPEN] Strict Import "bass.bmx" Graphics 640,480,0 If Not BASS_Init(1, 44100, 0, 0, Null) Notify("Fehler bei der Initialisierung") End EndIf 'Beliebige MP3, MP2, MP1, OGG oder WAV Datei kann geladen werden Global MusicStream:Int = BASS_StreamCreateFile(False,"lookatwhatifoundinthegarden.ogg",0,0,0) BASS_ChannelPlay(MusicStream,0) Repeat Cls Local Level:Int = BASS_ChannelGetLevel(MusicStream) Local LeftLevel:Float = LoWord(Level)/100.0 Local RightLevel:Float = HiWord(Level)/100.0 SetColor 255,0,0 DrawRect 30,GraphicsHeight()-50, 100, -LeftLevel SetColor 0,255,0 DrawRect GraphicsWidth()-160,GraphicsHeight()-50, 100, -RightLevel SetColor 255,255,255 DrawText "BASS CPU: "+BASS_GetCPU(),10,10 DrawText "Linker Level: "+LoWord(Level),10,30 DrawText "Rechter Level: "+HiWord(Level),10, 50 Flip FlushMem() Until KeyDown(KEY_ESCAPE) Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Suco-XBetreff: ....... |
Sa, Jul 02, 2005 2:27 Antworten mit Zitat |
|
---|---|---|
Hi
Und noch ein Beispiel. Hier wird eine Datei anhand einer Url geladen, abgespielt und testweise auch noch auf dem Computer gespeichert. Interessant ist hier die Benutzung von Callback Funktionen. Code: [AUSKLAPPEN] Strict Import "bass.bmx" 'Ohne Win32 hinter der Funktion gibt es einen Absturz da sich die Aufrufkonventionen sonst unterscheiden Function SaveMusicCallback(buffer:Byte Ptr, length:Int, user:Int)"Win32" Global FileStream:TStream If FileStream = Null FileStream = WriteFile("c:\dateidownload.mp3") EndIf If Buffer = Null CloseFile(FileStream) Else For Local i:Int = 0 Until length WriteByte(FileStream, buffer[i]) Next EndIf End Function Graphics 640,480,0 If Not BASS_Init(1, 44100, 0, 0, Null) Notify("Fehler bei der Initialisierung") End EndIf 'Beliebige MP3, MP2, MP1, OGG oder WAV Datei kann geladen werden Global MusicStream:Int = BASS_StreamCreateUrl("http://www.rektor.no/filarkiv/princesstream.mp3",0, BASS_STREAM_META|BASS_STREAM_STATUS,SaveMusicCallback,0) If MusicStream = 0 Notify("Musik konnte nicht geladen werden") End EndIf BASS_ChannelPlay(MusicStream,0) Repeat Cls Local Level:Int = BASS_ChannelGetLevel(MusicStream) Local LeftLevel:Float = LoWord(Level)/100.0 Local RightLevel:Float = HiWord(Level)/100.0 SetColor 255,0,0 DrawRect 30,GraphicsHeight()-50, 100, -LeftLevel SetColor 0,255,0 DrawRect GraphicsWidth()-160,GraphicsHeight()-50, 100, -RightLevel SetColor 255,255,255 DrawText "BASS CPU: "+BASS_GetCPU(),10,10 DrawText "Linker Level: "+LoWord(Level),10,30 DrawText "Rechter Level: "+HiWord(Level),10, 50 Flip FlushMem() Until KeyDown(KEY_ESCAPE) Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
D2006Administrator |
Sa, Jul 02, 2005 9:11 Antworten mit Zitat |
|
---|---|---|
Hi,
Seeeeehr feine Sache! Gute Arbeit! Wirklich top wie du dich geopfert hast. MfG D2006 |
||
Suco-XBetreff: ...... |
Sa, Jul 02, 2005 10:32 Antworten mit Zitat |
|
---|---|---|
np
Übrigens neue Version da, habe einige Rückgabetypen bei Funktionen ändern müssen. Neu Laden. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Suco-XBetreff: ...... |
Sa, Jul 02, 2005 11:30 Antworten mit Zitat |
|
---|---|---|
So, noch ein Beispiel zum Auslesen der Daten wie Titel, Author usw. eines liedes. Hat sich etwas komplizierter gestaltet, funktioniert aber. Benötigen tut ihr dafür die neue Version von meinem Bass Code (Siehe erster Post).
Code: [AUSKLAPPEN] Strict Import "bass.bmx" Graphics 640,480,0 If Not BASS_Init(1, 44100, 0, 0, Null) Notify("Fehler bei der Initialisierung") End EndIf 'Beliebige MP3, MP2, MP1, OGG oder WAV Datei kann geladen werden Global MusicStream:Int = BASS_StreamCreateFile(False,"Zoe - Rock Steady.mp3",0,0,0) Local TagDaten:Byte Ptr = BASS_StreamGetTags(MusicStream, BASS_TAG_ID3V2) Local StringDaten:String[] If TagDaten = Null Print "Keine Tag Daten vorhanden" Else StringDaten = StripTags(TagDaten) For Local TempString:String = EachIn StringDaten Print TempString Next EndIf BASS_ChannelPlay(MusicStream,0) Repeat Cls Local Level:Int = BASS_ChannelGetLevel(MusicStream) Local LeftLevel:Float = LoWord(Level)/100.0 Local RightLevel:Float = HiWord(Level)/100.0 SetColor 255,0,0 DrawRect 30,GraphicsHeight()-50, 100, -LeftLevel SetColor 0,255,0 DrawRect GraphicsWidth()-160,GraphicsHeight()-50, 100, -RightLevel SetColor 255,255,255 DrawText "BASS CPU: "+BASS_GetCPU(),10,10 DrawText "Linker Level: "+LoWord(Level),10,30 DrawText "Rechter Level: "+HiWord(Level),10, 50 Flip FlushMem() Until KeyDown(KEY_ESCAPE) Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Bigmichi |
Sa, Jul 02, 2005 15:06 Antworten mit Zitat |
|
---|---|---|
Hier noch eine verbesserte Version um Mp3 V1 Tags auszulesen =)
Code: [AUSKLAPPEN] Function StripTagIDE3:String[](Data:Byte Ptr)
Local TempArray:String[] Local TempChar Local NewString:String 'Title NewString = "" For Local i:Int = 3 to 32 If Data[i] <> 0 then TempChar = Data[i] NewString:+Chr(TempChar) End IF Next If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf 'Artist NewString = "" For i:Int = 33 to 62 If Data[i] <> 0 then TempChar = Data[i] NewString:+Chr(TempChar) End IF Next If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf 'Album NewString = "" For i:Int = 63 to 92 If Data[i] <> 0 then TempChar = Data[i] NewString:+Chr(TempChar) End IF Next If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf 'Jahr NewString = "" For i:Int = 93 to 96 If Data[i] <> 0 then TempChar = Data[i] NewString:+Chr(TempChar) End IF Next If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf 'Comment NewString = "" For i:Int = 97 to 125 If Data[i] <> 0 then TempChar = Data[i] NewString:+Chr(TempChar) End IF Next If NewString.length>0 TempArray = TempArray[..TempArray.length+1] TempArray[TempArray.length-1] = NewString EndIf Return TempArray End Function |
||
Artemis |
Di, Nov 01, 2005 11:07 Antworten mit Zitat |
|
---|---|---|
und für die version 2.2
Code: [AUSKLAPPEN] Import PUB.win32
'initialize Const DllName:String = "bass.dll" Local DllHandle:Int = LoadLibraryA(DllName) If DllHandle = 0 RuntimeError("the file ~q"+DllName+"~q could not be load") EndIf 'consts ' error codes returned by BASS_ErrorGetCode Const BASS_OK = 0 ' everything 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 Const BASS_ERROR_HANDLE = 5 ' invalid handle Const BASS_ERROR_FORMAT = 6 ' unsupported sample 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_NOCD = 12 ' no CD in drive 'Const BASS_ERROR_CDTRACK = 13 ' invalid track number Const BASS_ERROR_ALREADY = 14 ' already initialized/paused/whatever Const BASS_ERROR_NOPAUSE = 16 ' Not paused 'Const BASS_ERROR_NOTAUDIO = 17 ' not 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_NOTFILE = 27 ' the stream is Not a file stream Const BASS_ERROR_NOHW = 29 ' no hardware voices available 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 available Const BASS_ERROR_PLAYING = 35 ' the channel is playing Const BASS_ERROR_NOTAVAIL = 37 ' requested data is Not available Const BASS_ERROR_DECODE = 38 ' the channel is a "decoding channel" Const BASS_ERROR_DX = 39 ' a sufficient DirectX version is Not installed Const BASS_ERROR_TIMEOUT = 40 ' connection timedout Const BASS_ERROR_FILEFORM = 41 ' unsupported file format Const BASS_ERROR_SPEAKER = 42 ' unavailable speaker Const BASS_ERROR_UNKNOWN = -1 ' some other mystery error ' initialization 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 Const BASS_DEVICE_LATENCY = 256 ' calculate device latency (BASS_INFO struct) Const BASS_DEVICE_SPEAKERS = 2048 ' force enabling of speaker assignment ' DirectSound interfaces (For use with BASS_GetDSoundObject) Const BASS_OBJECT_DS = 1 ' IDirectSound Const BASS_OBJECT_DS3DL = 2 ' IDirectSound3DListener ' BASS_INFO flags Const DSCAPS_CONTINUOUSRATE = $10 Const DSCAPS_EMULDRIVER = $20 Const DSCAPS_CERTIFIED = $40 Const DSCAPS_SECONDARYMONO = $100 ' mono Const DSCAPS_SECONDARYSTEREO = $200 ' stereo Const DSCAPS_SECONDARY8BIT = $400 ' 8 bit Const DSCAPS_SECONDARY16BIT = $800 ' 16 bit ' BASS_RECORDINFO flags Const DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER Const DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED ' defines For formats Field of BASS_RECORDINFO Const WAVE_FORMAT_1M08 = $00000001 ' 11.025 kHz, Mono, 8-bit Const WAVE_FORMAT_1S08 = $00000002 ' 11.025 kHz, Stereo, 8-bit Const WAVE_FORMAT_1M16 = $00000004 ' 11.025 kHz, Mono, 16-bit Const WAVE_FORMAT_1S16 = $00000008 ' 11.025 kHz, Stereo, 16-bit Const WAVE_FORMAT_2M08 = $00000010 ' 22.05 kHz, Mono, 8-bit Const WAVE_FORMAT_2S08 = $00000020 ' 22.05 kHz, Stereo, 8-bit Const WAVE_FORMAT_2M16 = $00000040 ' 22.05 kHz, Mono, 16-bit Const WAVE_FORMAT_2S16 = $00000080 ' 22.05 kHz, Stereo, 16-bit Const WAVE_FORMAT_4M08 = $00000100 ' 44.1 kHz, Mono, 8-bit Const WAVE_FORMAT_4S08 = $00000200 ' 44.1 kHz, Stereo, 8-bit Const WAVE_FORMAT_4M16 = $00000400 ' 44.1 kHz, Mono, 16-bit Const WAVE_FORMAT_4S16 = $00000800 ' 44.1 kHz, Stereo, 16-bit ' Sample info flags Const BASS_SAMPLE_8BITS = 1 ' 8 bit Const BASS_SAMPLE_FLOAT = 256 ' 32-bit floating-point 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 ' old implementation of 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_SETPOS = $20000 ' enable pin-point seeking on the MP3/MP2/MP1 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 in small blocks Const BASS_STREAM_DECODE = $200000 ' don't play the stream, only decode (BASS_ChannelGetData) Const BASS_STREAM_META = $400000 ' request metadata from a Shoutcast stream Const BASS_STREAM_STATUS = $800000 ' give server status info (HTTP/ICY tags) in DOWNLOADPROC Const BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT ' 32-bit floating-point Const BASS_MUSIC_MONO = BASS_SAMPLE_MONO ' force mono mixing (less CPU usage) Const BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP ' loop music Const BASS_MUSIC_3D = BASS_SAMPLE_3D ' enable 3D functionality Const BASS_MUSIC_FX = BASS_SAMPLE_FX ' enable old implementation of DX8 effects Const BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE ' automatically free the music when it stop/ends Const BASS_MUSIC_DECODE = BASS_STREAM_DECODE ' don't play the music, only decode (BASS_ChannelGetData) Const BASS_MUSIC_RAMP = $200 ' normal ramping Const BASS_MUSIC_RAMPS = $400 ' sensitive ramping Const BASS_MUSIC_SURROUND = $800 ' surround sound Const BASS_MUSIC_SURROUND2 = $1000 ' surround sound (mode 2) Const BASS_MUSIC_FT2MOD = $2000 ' play .Mod as FastTracker 2 does Const BASS_MUSIC_PT1MOD = $4000 ' play .Mod as ProTracker 1 does Const BASS_MUSIC_CALCLEN = $8000 ' calculate playback length Const BASS_MUSIC_NONINTER = $10000 ' non-interpolated mixing Const BASS_MUSIC_POSRESET = $20000 ' stop all notes when moving position Const BASS_MUSIC_POSRESETEX = $400000 ' stop all notes And reset bmp/etc when moving position Const BASS_MUSIC_STOPBACK = $80000 ' stop the music on a backwards jump effect Const BASS_MUSIC_NOSAMPLE = $100000 ' don't load the samples ' Speaker assignment flags Const BASS_SPEAKER_FRONT =$1000000 ' front speakers Const BASS_SPEAKER_REAR =$2000000 ' rear/side speakers Const BASS_SPEAKER_CENLFE =$3000000 ' center & LFE speakers (5.1) Const BASS_SPEAKER_REAR2 =$4000000 ' rear center speakers (7.1) Const BASS_SPEAKER_LEFT =$10000000 ' modifier: Left Const BASS_SPEAKER_RIGHT =$20000000 ' modifier: Right Const BASS_SPEAKER_FRONTLEFT =BASS_SPEAKER_FRONT | BASS_SPEAKER_LEFT Const BASS_SPEAKER_FRONTRIGHT =BASS_SPEAKER_FRONT | BASS_SPEAKER_RIGHT Const BASS_SPEAKER_REARLEFT =BASS_SPEAKER_REAR | BASS_SPEAKER_LEFT Const BASS_SPEAKER_REARRIGHT =BASS_SPEAKER_REAR | BASS_SPEAKER_RIGHT Const BASS_SPEAKER_CENTER =BASS_SPEAKER_CENLFE | BASS_SPEAKER_LEFT Const BASS_SPEAKER_LFE =BASS_SPEAKER_CENLFE | BASS_SPEAKER_RIGHT Const BASS_SPEAKER_REAR2LEFT =BASS_SPEAKER_REAR2 | BASS_SPEAKER_LEFT Const BASS_SPEAKER_REAR2RIGHT =BASS_SPEAKER_REAR2 | BASS_SPEAKER_RIGHT Function BASS_SPEAKER_N(n) Return n Shl 24 EndFunction Const BASS_UNICODE = $80000000 Const BASS_RECORD_PAUSE = $8000 ' start recording paused ' DX7 voice allocation flags Const BASS_VAM_HARDWARE = 1 ' Play the sample in hardware. If no hardware voices are available Then the "play" call will fail Const BASS_VAM_SOFTWARE = 2 ' Play the sample in software (ie. non-accelerated). No other VAM flags may be used together with this flag. ' DX7 voice management flags Const BASS_VAM_TERM_TIME = 4 ' If there are no free hardware voices, the buffer To be terminated will be the one with the least time Left To play. Const BASS_VAM_TERM_DIST = 8 ' If there are no free hardware voices, the buffer To be terminated will be one that was loaded/created with the BASS_SAMPLE_MUTEMAX flag And is beyond it's max distance. If there are no buffers that match this criteria, then the "play" call will fail. Const BASS_VAM_TERM_PRIO = 16 ' If there are no free hardware voices, the buffer To be terminated will be the one with the lowest priority. ' BASS_CHANNELINFO types Const BASS_CTYPE_SAMPLE = $00001 Const BASS_CTYPE_RECORD = $00002 Const BASS_CTYPE_STREAM = $10000 Const BASS_CTYPE_STREAM_WAV = $10001 Const BASS_CTYPE_STREAM_OGG = $10002 Const BASS_CTYPE_STREAM_MP1 = $10003 Const BASS_CTYPE_STREAM_MP2 = $10004 Const BASS_CTYPE_STREAM_MP3 = $10005 Const BASS_CTYPE_MUSIC_MOD = $20000 Const BASS_CTYPE_MUSIC_MTM = $20001 Const BASS_CTYPE_MUSIC_S3M = $20002 Const BASS_CTYPE_MUSIC_XM = $20003 Const BASS_CTYPE_MUSIC_IT = $20004 Const BASS_CTYPE_MUSIC_MO3 = $00100 ' 3D channel modes Const BASS_3DMODE_NORMAL = 0 Const BASS_3DMODE_OFF = 2 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 Const EAX_ENVIRONMENT_COUNT = 26 ' total number of environments ' software 3D mixing algorithm modes (used with BASS_Set3DAlgorithm) Const BASS_3DALG_DEFAULT = 0 Const BASS_3DALG_OFF = 1 ' Uses normal Left And Right panning. The vertical axis is ignored except For scaling of volume due To distance. Doppler shift And volume scaling are still applied, but the 3D filtering is Not performed. This is the most CPU efficient software implementation, but provides no virtual 3D audio effect. Head Related Transfer Function processing will Not be done. Since only normal stereo panning is used, a channel using this algorithm may be accelerated by a 2D hardware voice If no free 3D hardware voices are available. Const BASS_3DALG_FULL = 2 ' This algorithm gives the highest quality 3D audio effect, but uses more CPU. Requires Windows 98 2nd Edition Or Windows 2000 that uses WDM drivers, If this mode is Not available Then BASS_3DALG_OFF will be used instead. Const BASS_3DALG_LIGHT = 3 ' This algorithm gives a good 3D audio effect, And uses less CPU than the FULL mode. Requires Windows 98 2nd Edition Or Windows 2000 that uses WDM drivers, If this mode is Not available Then BASS_3DALG_OFF will be used instead. Const BASS_STREAMPROC_END = $80000000 ' End of user stream flag ' BASS_StreamGetFilePosition modes Const BASS_FILEPOS_DECODE = 0 Const BASS_FILEPOS_DOWNLOAD = 1 Const BASS_FILEPOS_END = 2 Const BASS_FILEPOS_START = 3 ' STREAMFILEPROC actions Const BASS_FILE_CLOSE = 0 Const BASS_FILE_READ = 1 Const BASS_FILE_QUERY = 2 Const BASS_FILE_LEN = 3 Const BASS_FILE_SEEK = 4 Const BASS_SYNC_MUSICPOS = 0 Const BASS_SYNC_POS = 0 Rem Sync when a channel reaches a position. If HMUSIC... param: LOWORD=order, HIWORD=row 'order & row = 0(first) | -1(all) data : LOWORD=order, HIWORD=row If HSTREAM... param: position in bytes End Rem Const BASS_SYNC_MUSICINST = 1 Rem Sync when an instrument (sample For the non-instrument based formats) is played in a music (Not including retrigs). param: LOWORD=instrument (1=first) HIWORD=note (0=c0...119=b9, -1=all) data : LOWORD=note HIWORD=volume (0-64) End Rem Const BASS_SYNC_END = 2 Rem Sync when a channel reaches the end. param: Not used data : 1 = the sync is triggered by a backward jump in a Mod music, otherwise Not used End Rem Const BASS_SYNC_MUSICFX = 3 Rem Sync when the "sync" effect (XM/MTM/Mod: E8x/Wxx, IT/S3M: S2x) is used. param: 0:data=pos, 1:data="x" value data : param=0: LOWORD=order HIWORD=row, param=1: "x" value End Rem Const BASS_SYNC_META = 4 Rem Sync when metadata is received in a Shoutcast stream. param: Not used data : pointer To the metadata End Rem Const BASS_SYNC_SLIDE = 5 Rem Sync when an attribute slide is completed. param: Not used data : the Type of slide completed (one of the BASS_SLIDE_xxx values) End Rem Const BASS_SYNC_STALL = 6 Rem Sync when playback has stalled. param: Not used data : 0=stalled, 1=resumed End Rem Const BASS_SYNC_DOWNLOAD = 7 Rem Sync when downloading of an internet (Or "buffered" user file) stream has ended. param: Not used data : Not used End Rem Const BASS_SYNC_FREE = 8 Rem Sync when a channel is freed. param: Not used data : Not used End Rem Const BASS_SYNC_MESSAGE =$20000000 ' FLAG: post a Windows message (instead of callback) Rem When using a window message "callback", the message To post is given in the "proc" parameter of BASS_ChannelSetSync, And is posted To the window specified in the BASS_Init call. The message parameters are: WPARAM = data, LPARAM = user. End Rem 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_AVAILABLE = 0 ' query how much data is buffered Const BASS_DATA_FFT512 = $80000000 ' 512 sample FFT Const BASS_DATA_FFT1024 = $80000001 ' 1024 FFT Const BASS_DATA_FFT2048 = $80000002 ' 2048 FFT Const BASS_DATA_FFT4096 = $80000003 ' 4096 FFT Const BASS_DATA_FFT_INDIVIDUAL = $10 ' FFT flag: FFT For each channel, Else all combined Const BASS_DATA_FFT_NOWINDOW = $20 ' FFT flag: no Hanning window ' BASS_StreamGetTags types : 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 Const BASS_TAG_META = 5 ' ICY metadata : Null-terminated String ' BASS_MusicSet/GetAttribute options Const BASS_MUSIC_ATTRIB_AMPLIFY = 0 Const BASS_MUSIC_ATTRIB_PANSEP = 1 Const BASS_MUSIC_ATTRIB_PSCALER = 2 Const BASS_MUSIC_ATTRIB_BPM = 3 Const BASS_MUSIC_ATTRIB_SPEED = 4 Const BASS_MUSIC_ATTRIB_VOL_GLOBAL = 5 Const BASS_MUSIC_ATTRIB_VOL_CHAN = $100 ' + channel # Const BASS_MUSIC_ATTRIB_VOL_INST = $200 ' + instrument # ' BASS_FX 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 ' BASS_ChannelIsActive Return values Const BASS_ACTIVE_STOPPED = 0 Const BASS_ACTIVE_PLAYING = 1 Const BASS_ACTIVE_STALLED = 2 Const BASS_ACTIVE_PAUSED = 3 ' BASS_ChannelIsSliding Return flags Const BASS_SLIDE_FREQ = 1 Const BASS_SLIDE_VOL = 2 Const BASS_SLIDE_PAN = 4 ' BASS_RecordSetInput flags Const BASS_INPUT_OFF = $10000 Const BASS_INPUT_ON = $20000 Const BASS_INPUT_LEVEL = $40000 Const BASS_INPUT_TYPE_MASK = $ff000000 Const BASS_INPUT_TYPE_UNDEF = $00000000 Const BASS_INPUT_TYPE_DIGITAL = $01000000 Const BASS_INPUT_TYPE_LINE = $02000000 Const BASS_INPUT_TYPE_MIC = $03000000 Const BASS_INPUT_TYPE_SYNTH = $04000000 Const BASS_INPUT_TYPE_CD = $05000000 Const BASS_INPUT_TYPE_PHONE = $06000000 Const BASS_INPUT_TYPE_SPEAKER = $07000000 Const BASS_INPUT_TYPE_WAVE = $08000000 Const BASS_INPUT_TYPE_AUX = $09000000 Const BASS_INPUT_TYPE_ANALOG = $0a000000 ' BASS_Set/GetConfig options Const BASS_CONFIG_BUFFER = 0 Const BASS_CONFIG_UPDATEPERIOD = 1 Const BASS_CONFIG_MAXVOL = 3 Const BASS_CONFIG_GVOL_SAMPLE = 4 Const BASS_CONFIG_GVOL_STREAM = 5 Const BASS_CONFIG_GVOL_MUSIC = 6 Const BASS_CONFIG_CURVE_VOL = 7 Const BASS_CONFIG_CURVE_PAN = 8 Const BASS_CONFIG_FLOATDSP = 9 Const BASS_CONFIG_3DALGORITHM = 10 Const BASS_CONFIG_NET_TIMEOUT = 11 Const BASS_CONFIG_NET_BUFFER = 12 Const BASS_CONFIG_PAUSE_NOPLAY = 13 Const BASS_CONFIG_NET_NOPROXY = 14 Const BASS_CONFIG_NET_PREBUF = 15 Rem BASS_CD_ Const BASS_CONFIG_CD_FREEOLD = $10200 ' "rwflag" read capability flags Const BASS_CD_RWFLAG_READCDR = 1 Const BASS_CD_RWFLAG_READCDRW = 2 Const BASS_CD_RWFLAG_READCDRW2 = 4 Const BASS_CD_RWFLAG_READDVD = 8 Const BASS_CD_RWFLAG_READDVDR = 16 Const BASS_CD_RWFLAG_READDVDRAM = 32 Const BASS_CD_RWFLAG_READANALOG = $10000 Const BASS_CD_RWFLAG_READM2F1 = $100000 Const BASS_CD_RWFLAG_READM2F2 = $200000 Const BASS_CD_RWFLAG_READMULTI = $400000 Const BASS_CD_RWFLAG_READCDDA = $1000000 Const BASS_CD_RWFLAG_READCDDASIA = $2000000 Const BASS_CD_RWFLAG_READSUBCHAN = $4000000 Const BASS_CD_RWFLAG_READSUBCHANDI = $8000000 Const BASS_CD_RWFLAG_READISRC = $20000000 Const BASS_CD_RWFLAG_READUPC = $40000000 ' additional BASS_CD_StreamCreate/File flags Const BASS_CD_SUBCHANNEL = $200 Const BASS_CD_SUBCHANNEL_NOHW = $400 ' additional CD sync Type Const BASS_SYNC_CD_ERROR = 1000 ' BASS_CD_Door actions Const BASS_CD_DOOR_CLOSE = 0 Const BASS_CD_DOOR_OPEN = 1 Const BASS_CD_DOOR_LOCK = 2 Const BASS_CD_DOOR_UNLOCK = 3 ' BASS_CD_GetID flags Const BASS_CDID_UPC = 1 Const BASS_CDID_CDDB = 2 Const BASS_CDID_CDDB2 = 3 Const BASS_CDID_TEXT = 4 Const BASS_CDID_CDPLAYER = 5 Const BASS_CDID_ISRC = $100 ' + track # ' BASS_CHANNELINFO Type Const BASS_CTYPE_STREAM_CD = $10200 EndRem 'functions 'A Global BASS_Apply3D:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Apply3D") 'C Global BASS_ChannelBytes2Seconds:Float(handle:Int, pos:Long)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelBytes2Seconds") Global BASS_ChannelGet3DAttributes:Int(handle:Int, mode:Int Ptr, min_:Float Ptr, max_:Float Ptr, iangle:Int Ptr, oangle:Int Ptr, outvol:Int Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGet3DAttributes") Global BASS_ChannelGet3DPosition:Int(handle:Int, BASS_3DVECTOR_pos:Byte Ptr, BASS_3DVECTOR_orient:Byte Ptr, BASS_3DVECTOR_vel:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGet3DPosition") Global BASS_ChannelGetAttributes:Int(handle:Int, frequency:Int Ptr, volume:Int Ptr, pan:Int Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetAttributes") Global BASS_ChannelGetData:Int(handle:Int, buffer:Byte Ptr, length:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetData") Global BASS_ChannelGetDevice:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetDevice") Global BASS_ChannelGetEAXMix:Int(handle:Int, mix:Float Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetEAXMix") Global BASS_ChannelGetInfo:Int(handle:Int, BASS_CHANNELINFO_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetInfo") Global BASS_ChannelGetLength:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetLength") Global BASS_ChannelGetLevel:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetLevel") Global BASS_ChannelGetPosition:Long(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelGetPosition") Global BASS_ChannelIsActive:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelIsActive") Global BASS_ChannelIsSliding:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelIsSliding") Global BASS_ChannelPause:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelPause") Global BASS_ChannelPlay:Int(handle:Int, restart:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelPlay") Global BASS_ChannelPreBuf:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelPreBuf") Global BASS_ChannelRemoveDSP:Int(handle:Int, dsp:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelRemoveDSP") Global BASS_ChannelRemoveFX:Int(handle:Int, fx:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelRemoveFX") Global BASS_ChannelRemoveLink:Int(handle:Int, chan:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelRemoveLink") Global BASS_ChannelRemoveSync:Int(handle:Int, sync:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelRemoveSync") Global BASS_ChannelSeconds2Bytes:Long(handle:Int, pos:Float)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSeconds2Bytes") Global BASS_ChannelSet3DAttributes:Int(handle:Int, mode:Int, min_:Float, max_:Float, iangle:Int, oangle:Int, outvol:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSet3DAttributes") Global BASS_ChannelSet3DPosition:Int(handle:Int, BASS_3DVECTOR_pos:Byte Ptr, BASS_3DVECTOR_orient:Byte Ptr, BASS_3DVECTOR_vel:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSet3DPosition") Global BASS_ChannelSetAttributes:Int(handle:Int, frequency:Int, volume:Int, pan:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetAttributes") Global BASS_ChannelSetDSP:Int(handle:Int, proc:Byte Ptr, user:Int, priority:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetDSP") Global BASS_ChannelSetEAXMix:Int(handle:Int, mix:Float)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetEAXMix") Global BASS_ChannelSetFX:Int(handle:Int, type_:Int, priority:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetFX") Global BASS_ChannelSetFlags:Int(handle:Int, flags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetFlags") Global BASS_ChannelSetLink:Int(handle:Int, chan:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetLink") Global BASS_ChannelSetPosition:Int(handle:Int, pos:Long)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetPosition") Global BASS_ChannelSetSync:Int(handle:Int, type_:Int, param:Long, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSetSync") Global BASS_ChannelSlideAttributes:Int(handle:Int, frequency:Int, volume:Int , pan:Int, time:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelSlideAttributes") Global BASS_ChannelStop:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_ChannelStop") 'E Global BASS_ErrorGetCode:Int()"Win32" = GetProcAddress(DllHandle, "BASS_ErrorGetCode") 'F Global BASS_FXGetParameters:Int(handle:Int, par:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_FXGetParameters") Global BASS_FXSetParameters:Int(handle:Int, par:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_FXSetParameters") Global BASS_Free:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Free") 'G Global BASS_Get3DFactors:Int(dist_f:Float Ptr, roll_f:Float Ptr, dopp_f:Float Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_Get3DFactors") Global BASS_Get3DPosition:Int(BASS_3DVECTOR_pos:Byte Ptr, BASS_3DVECTOR_vel:Byte Ptr, BASS_3DVECTOR_front:Byte Ptr, BASS_3DVECTOR_top:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_Get3DPosition") Global BASS_GetCPU:Float()"Win32" = GetProcAddress(DllHandle, "BASS_GetCPU") Global BASS_GetConfig:Int(option:Int)"Win32" = GetProcAddress(DllHandle, "BASS_GetConfig") Global BASS_GetDSoundObject:Byte Ptr(obj:Int)"Win32" = GetProcAddress(DllHandle, "BASS_GetDSoundObject") Global BASS_GetDevice:Int()"Win32" = GetProcAddress(DllHandle, "BASS_GetDevice") Global BASS_GetDeviceDescription:Byte Ptr(device:Int)"Win32" = GetProcAddress(DllHandle, "BASS_GetDeviceDescription") Global BASS_GetEAXParameters:Int(env:Int Ptr, vol:Float Ptr, decay:Float Ptr, damp:Float Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_GetEAXParameters") Global BASS_GetInfo:Int(BASS_INFO_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_GetInfo") Global BASS_GetVersion:Int()"Win32" = GetProcAddress(DllHandle, "BASS_GetVersion") Global BASS_GetVolume:Int()"Win32" = GetProcAddress(DllHandle, "BASS_GetVolume") 'I Global BASS_Init:Int(device:Int, frequency:Int, flags:Int, hwnd:Int, dsguid:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_Init") 'M Global BASS_MusicFree:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicFree") Global BASS_MusicGetAttribute:Int(handle:Int, attribut:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicGetAttribute") Global BASS_MusicGetName:Byte Ptr(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicGetName") Global BASS_MusicGetOrderPosition:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicGetOrderPosition") Global BASS_MusicGetOrders:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicGetOrders") Global BASS_MusicLoad:Int(mem:Int, file:Byte Ptr, offset:Int, length:Int, flags:Int, frequency:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicLoad") Global BASS_MusicSetAttribute:Int(handle:Int, attribut:Int, value:Int)"Win32" = GetProcAddress(DllHandle, "BASS_MusicSetAttribute") 'P Global BASS_Pause:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Pause") Global BASS_PluginFree:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_PluginFree") Global BASS_PluginLoad:Int(file:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_PluginLoad") 'R Global BASS_RecordFree:Int()"Win32" = GetProcAddress(DllHandle, "BASS_RecordFree") Global BASS_RecordGetDevice:Int()"Win32" = GetProcAddress(DllHandle, "BASS_RecordGetDevice") Global BASS_RecordGetDeviceDescription:Byte Ptr(device:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordGetDeviceDescription") Global BASS_RecordGetInfo:Int(BASS_RECORDINFO_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_RecordGetInfo") Global BASS_RecordGetInput:Int(input_:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordGetInput") Global BASS_RecordGetInputName:Byte Ptr(input_:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordGetInputName") Global BASS_RecordInit:Int(device:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordInit") Global BASS_RecordSetDevice:Int(device:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordSetDevice") Global BASS_RecordSetInput:Int(input_:Int, setting:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordSetInput") Global BASS_RecordStart:Int(frequency:Int, chans:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle, "BASS_RecordStart") 'S Global BASS_SampleCreate:Byte Ptr(length:Int, frequency:Int, max_:Int, flags)"Win32" = GetProcAddress(DllHandle, "BASS_SampleCreate") Global BASS_SampleCreateDone:Int()"Win32" = GetProcAddress(DllHandle, "BASS_SampleCreateDone") Global BASS_SampleFree:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SampleFree") Global BASS_SampleGetChannel:Int(handle:Int, onlynew:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SampleGetChannel") Global BASS_SampleGetInfo:Int(handle:Int, BASS_SAMPLE_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_SampleGetInfo") Global BASS_SampleLoad:Int(mem:Int, file:Byte Ptr, offset:Int, length:Int, max_:Int, flags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SampleLoad") Global BASS_SampleSetInfo:Int(handle:Int, BASS_SAMPLE_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_SampleSetInfo") Global BASS_SampleStop:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SampleStop") Global BASS_Set3DFactors:Int(dist_f:Float, roll_f:Float, dopp_f:Float)"Win32" = GetProcAddress(DllHandle, "BASS_Set3DFactors") Global BASS_Set3DPosition:Int(BASS_3DVECTOR_pos:Byte Ptr, BASS_3DVECTOR_vel:Byte Ptr, BASS_3DVECTOR_front:Byte Ptr, BASS_3DVECTOR_top:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_Set3DPosition") Global BASS_SetConfig:Int(option:Int, value:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SetConfig") Global BASS_SetDevice:Int(device:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SetDevice") Global BASS_SetEAXParameters:Int(env:Int, vol:Float, decay:Float, damp:Float)"Win32" = GetProcAddress(DllHandle, "BASS_SetEAXParameters") Global BASS_SetVolume:Int(volume:Int)"Win32" = GetProcAddress(DllHandle, "BASS_SetVolume") Global BASS_Start:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Start") Global BASS_Stop:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Stop") Global BASS_StreamCreate:Int(frequency:Int, chans:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamCreate") Global BASS_StreamCreateFile:Int(mem:Int, file:Byte Ptr, offset:Int, length:Int, flags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamCreateFile") Global BASS_StreamCreateFileUser:Int(buffered:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamCreateFileUser") Global BASS_StreamCreateURL:Int(url:String, offset:Int, flags:Int, proc:Byte Ptr, user:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamCreateURL") Global BASS_StreamFree:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamFree") Global BASS_StreamGetFilePosition:Int(handle:Int, mode:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamGetFilePosition") Global BASS_StreamGetTags:Byte Ptr(handle:Int, tags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_StreamGetTags") 'U Global BASS_Update:Int()"Win32" = GetProcAddress(DllHandle, "BASS_Update") Rem 'CD_ Global BASS_CD_Analog_GetPosition:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Analog_GetPosition") Global BASS_CD_Analog_IsActive:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Analog_IsActive") Global BASS_CD_Analog_Play:Int(drive:Int, track:Int, pos:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Analog_Play") Global BASS_CD_Analog_PlayFile:Int(file:Byte Ptr, pos:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Analog_PlayFile") Global BASS_CD_Analog_Stop:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Analog_Stop") Global BASS_CD_Door:Int(drive:Int, action:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Door") Global BASS_CD_DoorIsLocked:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_DoorIsLocked") Global BASS_CD_DoorIsOpen:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_DoorIsOpen") Global BASS_CD_GetDriveDescription:Byte Ptr(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetDriveDescription") Global BASS_CD_GetDriveLetter:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetDriveLetter") Global BASS_CD_GetID:Byte Ptr(drive:Int, id:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetID") Global BASS_CD_GetInfo:Int(drive:Int, BASS_CD_info:Byte Ptr)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetInfo") Global BASS_CD_GetTrackLength:Int(drive:Int, track:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetTrackLength") Global BASS_CD_GetTracks:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_GetTracks") Global BASS_CD_IsReady:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_IsReady") Global BASS_CD_Release:Int(drive:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_Release") Global BASS_CD_StreamCreate:Int(drive:Int, track:Int, flags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_StreamCreate") Global BASS_CD_StreamCreateFile:Int(file:Byte Ptr, flags:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_StreamCreateFile") Global BASS_CD_StreamGetTrack:Int(handle:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_StreamGetTrack") Global BASS_CD_StreamSetTrack:Int(handle:Int, track:Int)"Win32" = GetProcAddress(DllHandle, "BASS_CD_StreamSetTrack") EndRem Function LoWord:Short(Value:Int) Return Value & $0000FFFF End Function Function HiWord:Short(Value:Int) Return (Value & $FFFF0000) Shr 16 End Function das auskommentierte is für die bass_cd.dll version 2.2 gibts auch hier: http://www.un4seen.com/ |
||
Garfield |
Mo, Dez 05, 2005 20:22 Antworten mit Zitat |
|
---|---|---|
Ich habe den Player von Suco-X (1. Beispiel) mit einer einfachen GUI Version ausgestattet und ein Levelmeter integriert.
Benötigt werden im gleichen Verzeichnis die bass.bmx (von Suco-X) und Levelmeter.bmx Global LMSize_X = 40 ' hier kann die Breite der Anzeige variiert werden Global LMSize_Y = 680 ' hier kann die Höhe der Anzeige variiert werden Was jetzt fehlt, ist eine Integration der LevelWerte um den Pegel etwas ruhiger werden zu lassen. Die Abstände der Pegelmessung in der Zeit zu vergrößern ist leider nicht der richtige Weg, da gehen Pegelspitzen verloren bzw. bekommt man dann erst recht Sprünge. Außerdem habe ich die Rückfallzeit des Meters bei Signal = 0 noch nicht hinbekommen Player: BlitzBasic: [AUSKLAPPEN]
Datei Levelmeter.bmx: BlitzBasic: [AUSKLAPPEN]
|
||
BlitzPlus|BMax|BMax-GUI -- Sony VAIO Win7 * MacBookPro Sierra |
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group