Author Topic: Help with Bass.dll  (Read 4423 times)

0 Members and 1 Guest are viewing this topic.

Offline DrewPee

  • I Toast Therefore I am
  • Pentium
  • *****
  • Posts: 563
  • Karma: 25
  • Eat Cheese - It's good for you!
    • View Profile
    • Retro Computer Museum
Help with Bass.dll
« on: July 20, 2009 »
off topic slightly - bass sound system - is there a piece about how to use that anywhere?
DrewPee
DrewPee
aka Falcon of The Lost Boyz (Amiga)
Ex-Amiga Coder and Graphic Designer
Administrator of > www.retrocomputermuseum.co.uk

Offline Clyde

  • A Little Fuzzy Wuzzy
  • DBF Aficionado
  • ******
  • Posts: 7271
  • Karma: 71
    • View Profile
Re: Help with Bass.dll
« Reply #1 on: July 22, 2009 »
dude there is infact an example of it in the main program directory of FreeBASIC -> Examples -> Libraries -> Sound.

You should see a file called bass_test, it should have the bass dll in there, if not you'll need anything from v 2.2.0 upwards from www.u4seen.com

Here's a lib I just knocked up for you, for loading in tracker formats that have been bin2bas'd. In other words from memory.

the lib file:

Code: [Select]
#include once "bass.bi"

dim shared as HMUSIC bass_music
dim shared as single bass_volume=100

declare sub free_bass()
declare sub initialize_bass()
declare sub load_bass_music( byval tune as ubyte ptr, byval length as integer )
declare sub play_bass_music()
declare sub set_bass_volume( byval volume as single )


sub free_bass()
 
    BASS_ChannelStop( bass_music )
BASS_MusicFree  ( bass_music )

BASS_Stop
BASS_Free

end Sub


sub initialize_bass()
   
    '
    ' Check correct version being used.
    '
if(BASS_GetVersion()<MAKELONG(2,2)) then
print "Error: BASS version 2.2 or above required"
sleep 2000
        end 1
end if

    '
    ' Initialize Bass with 441hzm sound quality.
    ' ( not 100% need to check bass.chm.
    '
if (BASS_Init( -1, 44100, 0, 0, 0 ))=0 then
print "Error: BASS_Init failed"
sleep 2000
        end 1
end if

end sub


sub load_bass_music( byval tune as ubyte ptr, byval length as integer )
   
    '
    ' Load the tune in as bass_music with looping enabled.
    '
    bass_music = BASS_MusicLoad( true, @tune[0], 0, length-1, BASS_MUSIC_LOOP or BASS_MUSIC_RAMP, 0 )

    if( bass_music=0 ) then
print "Error: BASS_MusicLoad failed"
sleep 2000
        BASS_Free
end 1
end If

end sub


sub play_bass_music()

    '
    ' And finally...
    '
    BASS_ChannelPlay( bass_music, false )

end sub


sub set_bass_volume( byval volume as single )
   
    '
' Ensure new volume is within acceptable range.
'
if volume<0 then
volume = 0
elseif volume>100 then
volume = 100
end if
   
    bass_volume=volume
   
    Bass_ChannelSetAttributes( bass_music, -1, cint( bass_volume ), -101 )

end sub


then in your main program:
Code: [Select]
'
' bass lib test
' - uses the black window! ;) remember to remove your -s gui
option explicit
option static

#include once "lib - bass music v1-2.bas"
#include once "media\your_tune.bas"

declare sub initialize_test()
declare sub run_test()
declare sub update_effect()

initialize_test()
run_test()
end

sub initialize_test()
   
    initialize_bass()
    load_bass_music( @music_data(0), 8837 ) ; music data is the variable name, 8837 will be the songs length
                                                             ; change as appropriate.
end sub


sub run_test()
   
    play_bass_music()
   
    while inkey<>chr(27)
       
        cls
       
        locate 1,1
        print "bAsS mUsIc TeSt ViA mR. cLyDe RaDcLifFe"
       
        print : print "zEe TuNe Iz NoW pLaYiNgZ..."
        sleep(1)
               
    wend

end sub

Hope it helps.
Clyde.
« Last Edit: July 22, 2009 by Clyde »
Still Putting The IT Into Gravy
If Only I Knew Then What I Know Now.

Challenge Trophies Won:

Offline DrewPee

  • I Toast Therefore I am
  • Pentium
  • *****
  • Posts: 563
  • Karma: 25
  • Eat Cheese - It's good for you!
    • View Profile
    • Retro Computer Museum
Re: Help with Bass.dll
« Reply #2 on: July 23, 2009 »
Thanks Clyde - I will have a play when I get home tonight! ;)

Drew
DrewPee
aka Falcon of The Lost Boyz (Amiga)
Ex-Amiga Coder and Graphic Designer
Administrator of > www.retrocomputermuseum.co.uk