Flod 4 Released for JS and AS3 – New tracker module formats supported

For those unfamiliar with Flod, it is a set of JavaScript and AS3 libraries written by Christian Corti, that can accurately playback lots of different Amiga, PC and Atari ST music formats natively. It supports all of the common formats: FastTracker II, Ultimate Soundtracker, ProTracker, NoiseTracker and lots more including DeltaMusic, David Whittaker, FredEd and Jochen Hippel format tunes.

There are download packages for HTML5/JS using the Web Audio API found in Chrome. Also available are the AS3 class files for Flash.

Check it out on the Flod page.

So what’s new in this release?

  • 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

Posted on April 4th 2012 at 3:26 pm by .
View more posts in Flod. Follow responses via the RSS 2.0 feed.

13 Responses

Leave a comment
  • April 4th 2012 at 6:51 pm

    I swear to GOD, I had a dream about this last night. I cannot believe this.

    So the Rob Hubbard player will play SID files? Does this mean we can now take advantage of SubSongs and have HOURS and HOURS of music that will only take up a few kilobytes? 😀

  • Christian
    April 4th 2012 at 8:09 pm

    Will: the Rob Hubbard format has nothing to do with SID, its Rob Hubbard Amiga format used in Populous, Centurion, Budokan, etc.

    Sub-songs are supported in all the formats that have them like David Whittaker, Jochen Hippel, etc.

  • April 4th 2012 at 8:30 pm

    This is great! I haven’t tried any of the new formats, but I’ve been using the xm player for a couple of projects.

    I actually started a tutorial on using Flod 3 right before this new version came out. It still works with Flod 4, though, so I thought I’d post it here in case anyone’s interested:


    On the subject of Sub-songs… Would it be possible to add function to start playing at a specific order? That way we can store a bunch of songs in one .mod or .xm file, keeping them seperate with looping commands. A lot of games do that to save space.

  • April 4th 2012 at 8:53 pm

    Christian – Ah, I was never an Amiga guy. Time for me to check out Hubbard’s Amiga tunes then. Thanks again for FLOD, you’re a hero!

    pgil – Awesome tutorial! Now I have something to send people when they ask about FLOD and I just kind of scratch my head and tell them to check out the examples. Great idea for the specific order thing – that could also be used to handle more complicated sound effects as well.

  • April 4th 2012 at 11:48 pm

    pgil – nice tutorial. Have added a link to it from the Flod page.

  • Christian
    April 5th 2012 at 8:06 pm

    pgil: nice tutorial, thanks for taking the time… just one small detail:
    if you don’t need to use all the formats you can just skip using the FileLoader class completely and just create the player of the appropriate class like:

    var player:PTPlayer = new PTPlayer();

    the FileLoader class is just an helper class useful for a mod player but for games its pointless and it will ’cause to include the source code for ALL the player in your game when you might need just one of them…

    about starting from a different position I will give it a thought but is not an easy thing to do ’cause some format don’t have a “position” they might have different positions for each voice ’cause most of them have separate patterns per channel

  • April 5th 2012 at 8:10 pm

    Dear photon, recently heard many great things happen in a moment, do not know if you have heard, I must tell html5and flash AS3 among them there is no respectively.

  • April 6th 2012 at 1:17 am

    Christian: Oh, that useful to know about FileLoader. I was wondrring if there was a way to just include one player. Glad you liked the tutorial :)

    Would it be possible to set a position just in XM player? Or is it an all or nothing deal?
    If it’s not possible, that’s ok too. I could probably put songs in a zip file to crunch down duplicate samples and get a similar file size.

  • Christian
    April 8th 2012 at 3:48 pm

    pgil: I won’t officially support it but… a simple way to achieve what you want is to simply change this in the F2Player.as file:

    private var
    order: int

    and make it public

    public var
    order: int

    as simple as that…

  • Christian
    April 12th 2012 at 1:40 pm

    pgil: one more thing you should add to the tutorial:
    trackers players (ST, MK, PT) all have a “force version” property, static constants are included in the player; for example:

    player.force = PROTRACKER_11;

    will force the player to use version 1.1 of the PT routine; this is extremely useful because Flod does its best to recognize the proper format but there is simply no way to identify them all correctly.

    A module created with PT1.1 won’t play the vibrato correctly if played in PT1.0 mode because they changed the vibrato table in 1.1…

  • Christian
    April 12th 2012 at 7:55 pm

    that should of course have been:

    player.force = PTPlayer.PROTRACKER_11;


  • Christian
    April 22nd 2012 at 12:15 am

    Flod 4.1/Flod JS 2.1 are almost ready…

    pgil: you could have told me about the XM volume problem before, lol… is fixed in 4.1 anyway…

  • April 23rd 2012 at 2:37 am

    Oh cool. I’ll update the tutorial with that new stuff (the volume and the “force version” thing when I have some time next week :)

Make yourself heard