Flod – JS/AS3 Tracker Replay Libs
Flod 4.0 and FlodJS 2.0
Released: 1st April 2012
Flod is a set of JavaScript and Flash/AS3 libraries written by Christian Corti that can accurately playback lots of different Amiga, PC and Atari ST music formats natively. It supports the following formats:
- FastTracker II XM PC + DigiBooster Pro 2.18 detection
- The Ultimate Soundtracker (Karsten Obarski)
- DOC Soundtracker 9, DOC Soundtracker 2.0
- Master Soundtracker
- Soundtracker 2.3, Soundtracker 2.5
- NoiseTracker 1.0, NoiseTracker 1.1, NoiseTracker 2.0
- His Master’s NoiseTracker
- ProTracker 1.0, ProTracker 1.1, ProTracker 1.2
- SoundFX 1.0, SoundFX 1.8, SoundFX 1.9, SoundFX 2.0
- FutureComposer 1.0, FutureComposer 1.2, FutureComposer 1.3, FutureComposer 1.4
- SidMON
- SidMON II
- Brian Postma’s SoundMon 1.0, 2.0 and 3.0
- DeltaMusic 1.0
- DeltaMusic 2.0, Delta Music 2.2
- Digital Mugician
- Digital Mugician 7 Voices
- David Whittaker
- FredEd
- Jochen Hippel (regular and COSO formats, 4 voices only)
- Rob Hubbard
Christian has spent a long time preparing this brand new release. Before this version there used to be FlodXM for FastTracker replay, FlodES for extended formats, FlodPro for an interface and all kinds of files everywhere. With this release everything is consolidated together at last. One simple point of entry, one great playback.
HTML5 / JavaScript Download
This is a JavaScript port of my AS3 Flod library, it currently works only in Chrome (I’ve used version
17.0.942.0 to develop it), hopefully in the future other browsers will add support for the Web Audio API.
https://github.com/photonstorm/FlodJS
Flash / AS3 Download
The ActionScript 3 version of Flod requires Flash Player 10. It only adds a tiny footprint to the final SWF size. On the github repo you’ll find the new version and all previous releases, including the old Flod Beginners Guide, Flectrum, Flym and more.
https://github.com/photonstorm/Flod
There’s a great tutorial on getting started with Flod/AS3 on TIGForums.
Flym
Flym is an Atari ST YM format music replay class. YM files are typically created by Atari ST emulators, and are raw register dumps of the Yamaha soundchip. There are lots available for download and most ST emulators can create them by recording the music currently being played in a game or demo.
If you need to play Atari ST music, this is the only way to do it (short of converting a 5KB YM file into a multi-MB MP3
What’s New
April 1st 2012
- new David Whittaker player
- new FredEd player
- new Jochen Hippel player (regular and COSO formats, 4 voices only)
- new Rob Hubbard player
- added DigiBooster Pro 2.18 detection to the XM player
- Delta Music 1.0, fixed wrong sustain value
- Delta Music 2.0, fixed Warfalcons-Intromusik 2 crash
- Delta Music 2.0, fixed wrong restart pointer
- Digital Mugician, fixed sample loop pointer (fixes Hoi Level 4)
- Future Composer (Flod only), 1.0/1.3 was using the wrong waves
- SoundFX, fixed effect 7/8 [step down/up] (fixes Forever Tonight)
- SidMON 2, fixed effect C/F [volume and speed] (fixes Cool Module)
- SidMON 2 was processing effects at tick 0, it shouldn’t
- SoundMon, fixed buffer restore, most modules didn’t play at all
- ProTracker/NoiseTracker fixed vibrato depth value not set at the beginning
- Fixed and updated Flip/Unzip
Commercial Use License
The Flod range of classes were a huge amount of work, and as such if you plan on using it in a commercial SWF the author requests you make a donation (minimum of $5) towards the project. “Commercial” means anything that is going to make money. This includes (but is not limited to): Flash games seeking sponsorship, Flash games with MochiAds / cpmStar / or any other form of advertising, games you will upload to Kongregate or NewGrounds (if it contains their ads API), and all forms of Flash work sold to clients / publishers.
If your SWF will not directly earn you money (for example using it for music replay in a demo) then you are free to use it without paying.
To obtain a copy of your license please make your donation (minimum of $5) by PayPal to: chreil at hotmail dot com – if possible include a link to your project (more for our interest in seeing how Flod is used than anything else). You will receive a license back by email.
60 Responses
Leave a commentMake yourself heard
Hire Us
All about Photon Storm and our
HTML5 game development services
Recent Posts
OurGames
Filter our Content
- ActionScript3
- Art
- Cool Links
- Demoscene
- Flash Game Dev Tips
- Game Development
- Gaming
- Geek Shopping
- HTML5
- In the Media
- Phaser
- Phaser 3
- Projects
Brain Food
Wow. Just… WOW.
I absolutely can’t wait to start playing with this.
Thanks, guys!
Why call it amiga sound tracker music? What formats does it play? mod, s3m,…? They were played and composed just as well on PC!
No, it doesn’t play S3M, just .mod files – the vast majority of which were created on the Amiga, and exist because of the Amiga.
Got everything quickly wired up and working on my test game demo!
Quick question… I noticed that the load method signature for ModProcessor (could be others as well) are quite different between v1 and the latest pro release. Do you recommend using one over the other? I opted for the package under FlodPro as it only required me to do the following:
var mp:ModProcessor = new ModProcessor();
mp.load(modResource.data);
mp.play();
And bypass using ModSong at all. Is this considered ‘best practice’ or am I missing something obvious?
Thanks!
This is awesomeness in cans!!
Hi everybody…
ding: “Why call it amiga sound tracker music?”
Flod is a replay routine based on the Sound/Noise/ProTracker software on the Amiga, it plays .mod only and it does try to emulate the real amiga hardware unlike most of the mod player out there.
Phil Peron:
You should use Flod version 2.0, the one included with FlodPro. The replay routine has been rewritten from scratch and is several times more compatible with weird mods and a little bit faster as well; and no you’re not missint anything…
glad everbody likes it, have fun
just a quick note, the license has changed from free for all to free for non-commercial use…
If you need to use it for any commercial project you can either use Flod 1.0 or just contact me…
Any comments, questions, bugs report, ideas, features request:
flod@neoartcr.com
Source code provided? that’s pretty awesome. I can’t wait to dig through this and see what’s going on. I’ve been very interested in working closer with sound in AS3, looking forward to checking this out, thanks.
Without recompiling the .as file in the zip, is there any way to make the flodpro.swf load and play automaticlly
I love the program but dont know action script yet
downloaded flash cs4 trial but dont understand how to compile.
Im a GLBasic man usually .
Thanks
Sweeeeeeet:)
When I try to load a .mod file created in MilkyTracker into FlodPro.swf (the one included in FlodPro_v1.zip) it fails with
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at neoart.flod::ModProcessor/load()
at neoart.flod::ModProcessorEx/load()
at neoart.flodpro::ProPlayer/loadCompleteHandler()
I guess there’s something wrong with the settings I use. Did anyone try and succeed?
How many channels does it have? Flod only supports 4. Send me the mod if you like and I can test it here (rdavey@gmail.com)
That’s it, thanks.
Problem was I assumed that unused channels don’t count, turns out they have to be removed (“Sub” button in Milky).
I have exactly the same question as “Paul Smith” i would like to get rid of the file browser part and just play a .mod file wich is on the server. But my programming skills are 0, if someone could post a modified “Player.as” file i think Paul and me are very happy!
Very very cool!, i read someone is also programming an sid player in flash/flex wich would be really cool too!
Many thanks for the guide!! think alot of people will be very happy with it.
Thanks Richard for the beginners Guide, Excellent work.
Frank hope you got it working ok.
I used the “basic mod replay with flectrum.swf” in the beginner guide zip and renamed my mod file to “the_enemy_within.mod” and it works great.
And now I’ve just go the source to compile with Flashdevelop 3.0.6 and FlexSDK (all free, but bit of a pain to get working )
Let me know if you want help with this
Wow! What can I say apart from that? Up and running in my Flex engine in FlashDevelop in *minutes*, and works a treat. A fantastic bit of code and saves me the hassle of writing it myself. I was on the verge of digging out and converting my tracker code for the Amiga when a friend totld me about Flod. Massive thumbs up.
I’m being lazy I know, but can someone point me to where a channel is triggered to play? I have an 8 frame Santa (2 frames for each limb) that I want to make “dance”, so need to change the state of each limb each time a channel is triggered. Cheers in advance.
Ignore me. I’m. An. Idiot. Been away from this sort of stuff for too long.
You’re awesome Chris, finally I actually get a use for the countless hours spent in front of Soundtracker when I was a kid
Using the mod format is perfect for creating games with low filesizes.
I’ll give you a initial donation when I finish my game, then a percentage of the income, people like you enhance the flash scene!
Hi again,
Really enjoying this player. Not sure if this would be of interest to anyone, but I was thinking that many portals want just one self-contained .swf file, which means no links to mod files. I did a workaround for this by converting the mod file to a image, then you can just save this as a PNG and import it into your library. I also did a function to convert the bitmapdata back into the same byteArray as before. Here’s a example of this in use: http://www.flashbutler.com/modplayer.swf
Let me know if you want me to put the source up.
Thnx, Fredrik, just wait for Flod 3.0
Hello,
Does anyone know if it’s possible to embed .mod into .swf file (in Flash CS4) and use it as a resource, rather than load it with URLLoader?
TS – You can only do this by using an Embed command, which means you’ll need to compile with Flex SDK instead of the IDE.
Thank you Richard.
I downloaded Flex SDK, added Embed directive and, much to my surprise, managed to compile swf inside Flash CS4. For a moment I thought I was going to have to move everything to new environment and re-code/design it all. Thanx again, finally finished that flash conversion of an old Amiga intro of mine. Good old times…
Great work on the player, BTW. Amazing thing. Must say I wasn’t too interested in flash until I ran into flashtro.com site a week or so ago. Made me start learning AS3.
Cool, glad you got it working. Give me a shout when your intro is up on flashtro.com (I love that site!) always keen to see what fellow demo freaks are up to
Awesome ! thx a lot 😀
This code is AMAZING! I thought I would add to the fanfare before I ask a question:
Is there a way to tell the ModProcessor WHERE to start a song other than the beginning? Like, being able to have multiple songs using the same samples in the same .mod to save space. I have been looking through the source of v2 and I don’t really know where this could be… the “row” variable jumps out at me, but I’m just not sure.
Thank you for FLOD, I used it in my little experiment with a sound visualisation:
http://blog.codestage.ru/2010/12/09/snow/
Is FLOD3.0 still being worked on?
Making some Mods in MilkyTracker for a Flash game, they sound better played back by Flod than they do in Milky Tracker!
Does the speed of the module have no effect? Seems like no matter what the tempo or the speed is set to, it always gets played back at speed:6, tempo:125
I want to second two questions already said:
– Is it possible to start playback from a certain position?
– What is the status of FLOD 3.0?
Also, extra question:
– Any chance we’ll ever see support for more than 4 channels?
I have Flod 3 here. It isn’t complete, but just talking with Christian now about releasing it regardless.
That sounds awesome!
I’m working on a shooter (getting some help from your Game Dev Tips) and it’d be the perfect time to dust off some old tracker and make some music.
wow. great!! !! Thanks.
Any chance I could beta test it?
Would love to use it for this: http://www.flashbutler.com/screenshot.jpg
/Corestudios on FGL
Drop me an email anyone who wants to try Flod 3 Preview (it is NOT complete btw!)
Great job! Unfortuneately I didn’t have a amiga in the old day’s, but I used
fasttracker 2.0 a lot.
It would be great if you would support .XM files in the future, I would definitly buy it!
@Karl Macklin:
– Playback of a module must always start at the begin, the reason is that you can’t possibly know the state of a channel at any position without actually processing all the effects, etc. from the beginning; there might be a speed change command at pattern 3 so if you start at pattern 4 the speed would be wrong, etc.
-Flod 3.0 is still alive, it will be integrated with FlodXM
-Yes, take a look at FlodXM…
@Fredrik
-just drop me an e-mail: flod at neoartcr dot com
Great work Christian! I’m so excited to start using XM modules in games. It was fun to make some old fashioned MODs, but I need more channels
great!
great! I did look for a YM player for flash sometime ago, but I found nothing… I had an Atari ST and a MSX, so I love this sound, I have to try it
not a soul willing to help me with some math?
If I could I would, but I really suck at math. I’m struggling with degrees vs radians
What are the size benefits to using this over Mp3s for example. Are MOD files significantly smaller?
Absolutely awesome and very useful!
Zuriki: yes, most MP3s average about 1MB per minute of music (depending on compression used). A cleverly arranged MOD file can be as small as 20 kilobytes! The size of a MOD file is not much dependent on the length of the song, but on the samples that are used in it. Obviously in places where small file size are important, such as in some mobile apps, or games for hand held device, this can make a huge difference.
Great to see. But is there already any easy-to-use js player available somewhere? Something that is ready to use? Can’t code 😉
Really nice work!
Got it going with haxe with a few very simple steps.
Check http://github.com/AndreasOM/haxeflod if you are interested.
Awesome! Do you see any possibilities for it to work on iOS (AIR) in the near future?
I just tested it on iOS 5.1, (iPhone 4S), it “works” but seems to kill the CPU. The sound is barely playing and the screen doesn’t render my game.
Great! How to use it with Konvertor on PCs ?
I examined some of the code for the DW player.
I have many questions about it – I might have found some bugs…
Who can I write to?
In FlodJS is there some equivalent of “Flectrum”, or a simple way to get spectrum data?
Also now that FF is getting WebAudio support, any plans to try and support it?
Thanks!