BlitzBASS who do i use?

Blitz3D Forums/Blitz3D Userlibs/BlitzBASS who do i use?

Boulderdash(Posted 2006) [#1]
My problem is that im making a multi system emulator similar to the spectrum emulator written in blitz3d, Like the spectrum emulator im using the BASS library.

I noticed the BASS lib has commands used in a organ program that are missing from; blitzBASS.bb

how do I generate a note using Blitz and BASS my guess is that the code exists in BASS but a couple of functions are missing from the blitzBASS.bb that I have, and a couple of lines of source code added could fix things up.


HERE IS THE COMMAND THAT I NEED, its missing from blitzBASS

/* create a stream, stereo so that effects sound nice */
str=BASS_StreamCreate(44100,2,0,WriteStream,0);

You can download the emulator from
www.gstsoftware.co.nz

it currently emulates: arcadia2001,vc4000,jupiter ace,vz200

Thanks, please help!


Boulderdash(Posted 2006) [#2]
OR to make things clearer ,I want to generate a plain note like the retro computers did.

Presently I have to loop a sound sample and i sounds terrible because you can hear a gap as the sound starts over ,also the samples increase the download size, and if I could use BASS i could do away with the sound samples.


Damien Sturdy(Posted 2006) [#3]
You could avoid a license problem by trynig out the synth in my Signature.

It does quite a few things and is quite easy to use. Try it out- Whats the worst that could happen? :)

On another note, I'm sure BASS is available from a link in the toolbox.


Boulderdash(Posted 2006) [#4]
;;;Declare Function BASS_StreamCreate Lib "bass.dll" (ByVal freq As Long, ByVal chans As Long, ByVal flags As Long, ByVal proc As Long, ByVal user As Long) As Long


I know that some code is missing from blitzsys.bb ,but I didnt write blitzsys so im lost, I know that the function would look something like this....


Function BASS_StreamCreate(freq,chans,flags,streamproc,user)

iBankSize = 20
BankIn = CreateBank(iBankSize)
PokeInt BankIn,0,freq
PokeInt BankIn,4,chans
PokeInt BankIn,8,flags
PokeInt BankIn,12,streamproc
PokeInt bankIn,16,user
iStream = CallDLL(sBlitzBASSDLLNameA101B6,sBlitzBASSDLLCommandPrefixA101B6 + "BASS_StreamCreate_Wrap",BankIn)
FreeBank BankIn
Return iStream

End Function


the problem is I dont know where or how to poke each byte into "bankin"


Boulderdash(Posted 2006) [#5]
Cygnus :-) does it save .wav files to make the sounds, I wanted to avoid that.

there are no license issues with BASS because my emulator is freeware.


Boulderdash(Posted 2006) [#6]
Cygnus :-) that demo was cool

is it useful for an emulator that has 255 frequencies that change rapidly.


Boulderdash(Posted 2006) [#7]
Problem is that when I try a plain note you can here it looping like normal blitz3d sound channels

That is a very important reason why I used BASS to solve that problem.


LAB[au](Posted 2006) [#8]
Blitzbass development stopped at version 1.6 of Bass, last update was including recording functions. I should say that it was done before the advent of userlibs and decls files in Blitz3D, I think some people actually did decls files for Bass, not requiring the BlitzBass.dll wrapper. I have still the C++ sourcecode of blitzbass somewhere. I am quite astonished that somebody is still using it!

I think you need to specify that by default it doesn't apply the BASS_SOUND_LOOP flag, or to the BASS_Streamplayfx ... but I am not sure...


Damien Sturdy(Posted 2006) [#9]
Gav, you shouldn't hear any loop sounds- the system uses 2 sample long self generated samples. What do you mean you can hear the sound looping? :O (In fact, the sound looping is what gives you the beep tone ;) )

Although the system creates WAV files, it only does this when it's generating the sample it will use to play, the WAV files are removed immediately after being loaded.


Boulderdash(Posted 2006) [#10]
Put simply, once the sound file finishs the note, there is a noticable gap before it starts over,this is below the quality that I require of my software.


LAB[au](Posted 2006) [#11]
I just crossed this Bass Userlib decls+bb files from Nigel Brown

http://www.nigelibrown.pwp.blueyonder.co.uk/blitz/userlibs/index.htm

Maybe more adequate than the old blitzbass wrapper ...


yinch(Posted 2006) [#12]
Hi,

Thanks LAB[au] for that link.
Does anyone have sample code for using the Bass commands from blitz3D?

yinch'06


Boiled Sweets(Posted 2006) [#13]
Bump.

Does anyone have any example code for using the Bass userlib decls posted above?


LAB[au](Posted 2006) [#14]
I still use my old BlitzBass.dll wrapper ... yet the usage is similar, Init bass, load some sample or streams, play these streams (call once), call bass update every frame.


Boiled Sweets(Posted 2006) [#15]
Is there a way with BlitzBASS to 'listen' to an incoming stream or even the output stream. For example if you were listening to an internet radio station or line in on your sound card how could you track that?

It seems the lastest BASS does this through BASS_RecordInit and BASS_RecordStart. These functions are not exposed/available in BlitzBASS.

HELP! Any thoughts?


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

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

I am so happy!

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


Damien Sturdy(Posted 2006) [#17]
Sorry for the late reply- Im still interested in Gavs issue:


Put simply, once the sound file finishs the note, there is a noticable gap before it starts over



Ok, well, im going to assume it just doesnt like your setup- you see, my sound files are so small that if there was any gap after the loop at all, you wouldnt hear any tones, just clicks :)

perhaps we are misunderstanding each other hehe, but I'd like to see if there is a real problem with the code and if so, try to find a workaround :)

Anyhow, Glad to hear you solved your issue :)


jfk EO-11110(Posted 2006) [#18]
BTW I think I remember I've downloaded a version of blitzbass from useen.com, and it contained a working example of CreateStream. A sinus wave sound was made in a bank or so, and then played.

EDIT: uh, cannot find it anymore. Maybe it's this one:
http://gorevolt.com/Rocko/Music/


Boiled Sweets(Posted 2006) [#19]
1.6 is old use 2.3


LAB[au](Posted 2006) [#20]
Look for vertex's Bass wrapper, I think it's based on Bass 2.2 or 2.1 and there are examples

mitglied.lycos.de/thevertex/download.php?c=media/BASSex.rar