mikmodmax mod player source

BlitzMax Forums/BlitzMax Programming/mikmodmax mod player source

Chris C(Posted 2005) [#1]
Had this mikwin code lying round for ages meant to do
something with it...

It shows using mikwin.dll to play a tracker mod

I've played around with the latency/thread sleep to
minimise "poping" I'm not totally happy

If you're not bothered about latency change
#define DEFAULT_DSBUFFERSIZE 4096 (in drv_ds_raw.c)
to somthing around 8000 or higher
It would work better non-threaded if you app is
working at a fixed fps

If I get time (and there's any interest) I may make a
non directsound driver and make it cross compatible

If should be fairly trivial to make your own linux/mac
version of this my using the apropriate mikmod source
for your platform.


supported formats:
669,amf,dsm,far,imf,it,m15,med,mod,mtm,s3m,stm,stx,utl,uni,xm

download it from:
http://www.traklink.com/component/option,com_docman/task,cat_view/gid,2/Itemid,2/

enjoy!


Filax(Posted 2005) [#2]
GreatWork ! but can you include a fonction to retrieve
mod data value ? like bass.dll for creating nice vumeter ?

Work fine for me :)


Chris C(Posted 2005) [#3]
just read the docs to find details of which routines
you need an add them to the example
ie Global MikMod_strerror:Byte Ptr(error:Int)"win32"=getprocaddress(mikmod,"MikMod_strerror")

feel free to contact me directly, if you get stuck!


there will be issues with latency

If theres enough interest I'll add the other routines, it can be used as a complete sound lib...

it really needs de-threading and fixed frame rate updating...

but its early days yet.


DannyD(Posted 2005) [#4]
Any news on a Mac port ?


Chris C(Posted 2005) [#5]
wanna buy me a mac :D

seriously
if you can get mikmod to compile for the mac
you *should* be able to import "-lmikmod.a" and do away
with all the win32 stuff in the demo
http://mikmod.raphnet.net/ is where mikmod lives
the unix version includes drivers of all 3 OS's
darned if I can get it to compile tho...


Filax(Posted 2005) [#6]
Very good job !! thanks for channel value for made vumeter :)

But a little question in your example the vumeter bar seem to be very slow ?
It is normal ?

Cheers !


Chris C(Posted 2005) [#7]
depends on the size of the buffer (latency) and
the speed of you machine.


Scott Shaver(Posted 2006) [#8]
Chris does this work in 1.20


Scott Shaver(Posted 2006) [#9]
Okay got it, is was a problem with

Local filenameptr:Byte Ptr=GlobalAllocString("klu_gren.xm")

which had to be changed to

Local filenameptr:Byte Ptr="klu_gren.xm".toCString()


Chris C(Posted 2006) [#10]
err i wouldnt do that!!
unless you do freemem filnameptr
should be okay with 1.2