MaxMod Music Module
BlitzMax Forums/BlitzMax Module Tweaks/MaxMod Music Module
| ||
I have just uploaded version 1 of MaxMod, a free mod music player for BlitzMax (PC only ATM) http://www.redi.me.uk/forum/index.php |
| ||
Great! Keep up the good work, and all that. :-) Small bug in the tracker: If you are walking through the sample list with the cursor down key, the program will crash without error when you hit the first empty slot. |
| ||
Thanks xlsior, bug noted :) |
| ||
Thanks, Papa Lazarou! I have some documentation on various other module formats if you want them, including a Pascal source for playing mod/s3m/xm mods. Just let me know. Russell |
| ||
Thanks Russell, that Pascal source code might come in handy :) |
| ||
[EDIT: I decided to put all of the zip files in this message plus the one in the following message PLUS some more excellent info on mod formats (such as madtracker, etc) all in one zip: http://www.geocities.com/amiga5k/MusicModInfo/mods.zip (about 1MB) But if you want to look individually, they're here:] http://www.geocities.com/amiga5k/MusicModInfo/modform.zip http://www.geocities.com/amiga5k/MusicModInfo/mpw100.zip http://www.geocities.com/amiga5k/MusicModInfo/otloader.zip http://www.geocities.com/amiga5k/MusicModInfo/s3mform.zip Ok, those are the ones I have. The one called 'otloader.zip' is the most informative, but only covers .mod format. The one called 'mpw100.zip' has the pascal source, but "requires" the Seal100 library, which is not free. However, I'm pretty sure the seal lib is only used to play the audio that is created, rather than have some other purpose related to mod-playing. In other words, it should be easily adaptable to not require the seal library (the source is included - not the seal source). Hope this is helpful to you! Russell p.s. There's this website, too: http://www.wotsit.org which is LOADED with various formats. Very helpful if you're looking for some obscure format info. |
| ||
Oh, I added another one: www.geocities.com/amiga5k/MusicModInfo/modfil11.zip Supposedly, this is the "most comprehensive mod format description, covering 40 variations". I haven't checked it out yet, but have a look! Russell |
| ||
Thanks a lot Russell, I've made a few changes since reading modfil11, sounds quite good now on most songs :) Problem... I'm not 100% sure what a sample number without a note is supposed to do, some docs say to just reset the volume to that of the sample, but I swear it does something else, anyone know? |
| ||
Hmm... I think a few of the docs in the zip have an e-mail address of the author(s). Maybe they could help? Or, here's the e-mail of Jeff Limm, the author of Impulse Tracker: jeff@... Hope this helps! Glad to know that modfil11 was helpful (I found it surprisingly interesting myself). Russell p.s. I was wondering if you would consider putting out a polled version of your mod player that gets called within the main loop every so often, perhaps when a timer event occurs, etc. Maybe that would be easier to adapt to other platforms since threading would not be required? |
| ||
p.s. I was wondering if you would consider putting out a polled version of your mod player that gets called within the main loop every so often, perhaps when a timer event occurs, etc. Maybe that would be easier to adapt to other platforms since threading would not be required? I might have a go at this at some point, trouble is I'm not getting much spare time atm :( version 1.2 now up, sounding much better :) |
| ||
p.s. I was wondering if you would consider putting out a polled version of your mod player that gets called within the main loop every so often, perhaps when a timer event occurs, etc. Maybe that would be easier to adapt to other platforms since threading would not be required? It would probably be safer too, less chances of seperate threads going wrong. Anyway, I threw some modules at it, and find that the 1.2 sounds significantly worse than the previous 1.1 release with some songs... It is especially noticable using the 'Cannon Fodder' tune -- there are very noticable delays and stuttering between some of the samples, making the tune sound very disjointed when played with 1.2. It sounded much better with 1.1 Yet other songs (e.g. the 'Chuck Rock' theme) appear to sound identical in 1.1 and 1.2. You can download the module in question here, if you want to try it yourself: http://minus-9.com/stuff/CannonFodder.mod |
| ||
hmm, It does sound wrong, I'll 'av a go later, mind you I just played it in Madtracker and its a bit gappy with that as well. Thanks xlsior |
| ||
I dont know if nullsoft have made the source to winamps mod plugin available but it plays okay in that... sure brings back some memories does cannon fodder... |
| ||
It sounds the same in version 1.1 of your module as it does in ModPlug -- but 1.2 gives very noticable delays between some of the samples. |
| ||
There's a version of mikmod that includes the source: http://mikmod.raphnet.net/ (about halfway down the page). Maybe it could help? It's too bad BMax doesn't have the Fmod built-in like BB, B3D and B+ (I think it was a re-licensing issue?). miniFMod, available here: http://www.fmod.org/ (download page, near the bottom) is TEANY TINY (about 5k when compiled according to the docs), and version 1.60 (also available) is for GCC/MinGW and compiles on Linux and Windows! Version 1.70 includes source code also. Anyone had a look at it? Is it adaptable to BMax? Russell |
| ||
Thanks for the link Russell, I'll have a read (when I get some time, way to much work on atm) xlsior, I think cannon fodder is okay now. |
| ||
Good work, everyone! One way or another we'll get real mod support built-in to Bmax! I wish I knew C/C++ so I could get miniFmod working with Bmax myself (the license seems to be 'public', although it "only" plays xm format <not a bad deal actually>) The included "test.exe" that comes with the miniFMod installation is only 11k! (And seems to work fine) Russell |
| ||
Yup, sounds much better again. Thanks for the quick response! |
| ||
<bump> So, Papa, any new developments? Russell |
| ||
I'm having a break from this for a bit, will come back to it one day (xm next!), or I might even wait for "built in" thread support for BM ( *NUDGE NUDGE* BRL, Purebasic has it ;-) ). Anyway I'm working on a visual MaxGUI designer ATM. |
| ||
is there a none thread version available? Is there any source code so someone could contribute a non threaded version? |
| ||
No none thread version ATM, but if you're offering your services Chris, I could send you a copy of the source. |
| ||
I'd love to help out, no problem at all email in account details.... |
| ||
Check your mail mate |
| ||
ditto ;) still locking my machine tho, but its de-threaded and it works in debug mode now I get about 4 seconds of play out of it before it locks my machine solid, could by dsound??? is it still running okay on your machine? |
| ||
MaxMod 1.5 (portaudio version) is now up :D http://www.armbell.com/forum/index.php?mforum=papa |
| ||
MaxMod 1.5 (portaudio version) is now up :D Does that mean it no longer requires DirectSound? I noticed that the thread.mod module is no longer there either -- does that mean that you are no longer using the potentially unsafe threading? Modules still sounds great with the latest version! |
| ||
Yep, Thanks to Chris C and Skidracer, it uses portaudio now, no more threads and no more DirectSound! (it doesnt even use a timer :) ) |
| ||
I think the best thing was getting the threads out! plus for some reason dsound hung on my craptastic onboard sound... It was a lot of work, but worth it, internally its damn impressive (tho I say so myself) Cliff put a lot of work into redoing how the sound was mixed, there are definate improvements on sound quality! |
| ||
I'd like to post the source code on my website so other people can contribute improvements and other loaders... However Cliff (Papa Lazarou) has failed to reply to any of my emails. I'm somewhat sure as to how to proceed? anyone have any thoughts on this? Cliff?? |
| ||
Had problems with my ISP, havnt been able to get online for the last couple of weeks :(( gave up hope with wanadoos customer support and switched to BT now, so I'm finaly back :D I dont really want to release the source just yet Chris, I'm gonna add a proper instrument class first, also atm it can only handle mono samples, the mixer needs rewriting to handle stereo samples as well (and with pan), then we'll have a decent base to let people build on if they wanted (loaders/players). When I get a bit more spare time I'll polish it off. |
| ||
HE LIVES!!!! (you were right theres no so much interest, we're better off keeping it closed source) |
| ||
Closed source is fine with me, and I would certainly understand. As long as you don't have plans to attach licensing issues, etc, we're all good :) Good job, everyone! Who needs FMod, anyway? ;) Russell |
| ||
Tested this yesterday and found no flaws yet - great job guys! |
| ||
<Bump> Hey Papa! How is .xm support coming? :^D I believe xm supports 16 bit samples, right? If so, that's all I'm waiting for! Russell |
| ||
cliffs real pushed for time at the moment, and you wouldnt believe how complex xm format is! He's much better at sussing out file formats than I am! I'm sure he'd apreciate any feed back you could send him tho... |
| ||
I'd love to see this working too. /me piles on the pressure. |
| ||
:) I'm still working on it when i've got the time, it plays basic xm's okay, just need to work on the effects and instrument envelopes, other than that its going great! wish i had more time for it. thanks for your support guys! |
| ||
Listen Papa, you're doing great. I/we greatly appreciate all of the work you've done so far (You too, Chris!). I think you have the .xm format specs, so I can't help you any further there. And your programming abilities are about 3 miles above mine, so I can't help you there, either... :( But! I can offer you some encouragement. And here it is: If you finish this, it will be the greatest achievement in the history of mankind! Landing on the moon was nothing compared to the thrill MaxMod with XM support will offer us mortals. Was that too over-the-top? ;) Russell |
| ||
Was that too over-the-top? ;) er yeah *HIDES FROM NUTTER* ;) I'm lucky if i get a couple of hours free a week ATM, so progress is pretty slow, but it IS getting there :) |
| ||
Progress is progress! I'm really looking forward to .xm support, but even before then, there are many thousands of 4 channel mods out there to play (and some are absolutely incredible - they sound like 8 or more channels) :) Good job all around! Russell |
| ||
In case you didn't see the other post in BM Programming: http://pipin.tmd.ns.ac.yu/extra/fileformat/modules/index.htm Looks like it contains a good bit of info on various formats. Russell |
| ||
Thanks Russell, nice find |
| ||
keep pluging away papa ;) |
| ||
After we get this, Max3D and some more MaxGUI features, then all we need is a (major) doc-overhaul and we'll be sitting pretty, eh? :) I suppose there are a few things we could all wish for on top of these, but for me, I'd be in pig heaven if this happens! Thanks again, Russell |
| ||
<bump> |
| ||
Sorry Russell, not been about much :( Quick progress report to keep you happy... ADDED: * Multi sample instruments * Proper panning * Volume envelopes * New Catmull-rom interpolation * Faster linear interpolation * Fadeout on KeyOff REMOVED: * Channel Scopes TODO: * Pan envelopes * amiga periods * some XM effects I'll stick it up soon, when i get round to buying some webspace (as i cant use my old wanadoo account anymore) |
| ||
Good news, Papa! Thanks! What XM effects are left to do? Was XM supported on Amiga? If not, are Amiga periods necessary to play XMs? (I assume Protracker capability already has this?) Good work! Thanks again, Russell |
| ||
What XM effects are left to do? Was XM supported on Amiga? If not, are Amiga periods necessary to play XMs? I think amiga periods were just added to fasttracker so it could support mod files, but quite a few xm files still used the amiga periods setting, so i need to support it. |
| ||
finaly version 1.6 is here (including fasttracker routines)... http://redi.me.uk/forum/index.php |
| ||
opinions please, I've just cobbled together a polled version (so you need to call song.update) using openal, would this be more desirable to you than the current method (portaudio callback)? any thoughts? |
| ||
portaudio does use a seperate thread, (which can be benificial on multi core machines), it can cause stability problems with the max debugger If the openal (itself) has no need of any threads, then it could work better. Give me a shout if you want me to have a crack at making a linux version of your openal version! Best Chris |
| ||
Sweet work! Slightly off topic, I'm still trying to get code to read a Midi file properly and place the notes into data statements. No such luck. I did get it to almost play SuperMario.mid though :) I don't suppose you've managed anything with Midi have you? (I know it's not in the scope of a Mod player really :) ) |
| ||
@Chris, I'll tidy it up a bit and send you a copy, or if you register on the forum I'll add you to the MaxMod Dev group, then you can download the code from there. @Cygnus, as it goes I wrote a midi parser for Chris C a while ago if thats any help, I'll see if i can find it for ya (if chris has no objections). |
| ||
go for your life! if you hanage to work out midi file playback delays for speed do let us know! |
| ||
Hope this helps Cygnus, I alterd it to just print out to the screen, so it should be pretty easy for you see whats going on. |
| ||
Heh sweet! Thats a coinsidence since I'm working (and trying to help :P) Chris C with Sow at the mo :-) I got Midi playback on a simple MIDI working, I had issues converting the notes accurately into data statements. it played the mario tune mostly before a huge gap appears, and I cant seem to see where the problem is. This parser looks much cleaner than my own. It might help me do a better job! I'll take a look at your code when I get a chance. Thanks for your help! |
| ||
MaxMod 1.7 openal release with ogg streaming :D Not sure if the mod player routines survived the swap from portaudio to openal, if you find a dodgy mod/xm please let me know. \/ Click the forum link below |
| ||
I noticed this appears to be PC only, is this still the case? Wondering if it is possible to work this mod on Mac Os ? If not how come? |
| ||
PC only atm, Chris C will be taking a look at linux, but i dont have access to a mac yet... one day :D |
| ||
Was it a complete swap from freeaudio to OpenAL or are you supporting both now? What caused the swap exactly? |
| ||
it was from portaudio as I understand it the path went directX 'cause max's audio cant do realtime mixing! portaudio because directX choose to lock my machine solid OpenAl because max debugger is flaky while dealing with threads! (oh and theres a good chance that OpenAL will work better for MaxOS) |
| ||
What Chris said :) @BRL, lil request... would it be possible for "Document Modules" to add the docs for compiled modules? the docs are already there, they just need adding to the TreeView. |
| ||
Since the latest version apparently needs some DLL's -- is there any way to embed/incbin a DLL into an executable and use them without needing to manually extract them again first? |
| ||
nah, i dont think its possible xlsior, but i've just (next version) removed the need for "alut.dll", and the "openal32.dll" is not required if openal is already installed on the machine, so could check for it during installation and prompt accordingly. |
| ||
This looks good but the demo makes no sounds on my Audigy. Position stays at 62500 of 28168308 (or xxxx depending on the ogg selected. |
| ||
oh, does it print any error messages at all? do you have openal installed? if not could you try it... http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=38&aid=46 (OpenALwEAX.exe at the bottom of the page) just to see if that makes a difference. |
| ||
Doesn't print any errors but I don't have OpenAl installed. Got the same problem with OpenAL installed but tried another .ogg and it all worked OK. Guess the OGG I used was naff. Works very well. Does this mean that anybody playing a game with music code provided by this mod will need OpenAL installed? |
| ||
*EDIT* yes |