Results 1 to 9 of 9

Thread: XM/IT/MOD playback library without FMOD's/Bass' license shenanigans

  1. #1

    XM/IT/MOD playback library without FMOD's/Bass' license shenanigans

    Do you know of any easy to use, freepascal compatible library for XM/IT/MOD playback (s3m isn't required as it is unpopular format - the only s3m songs I've seen are original Jazz Jackrabbit's soundtrack) that doesn't have license shenanigans that BASS and FMOD has (so you can sell games made using it without paying license fees)?

    It should have easy api, like one BASS has (I'm familiar only with this library for module playback so it is my only point of comparison), so libmodplug is out of question.

  2. #2
    Check this topic: http://www.pascalgamedevelopment.com...highlight=bero

    In it you will find several different libraries. One of them has been writen by our comunity member BeRo. It is compleetly written in pascal so you probably shouldn't have much problem using it and if you do you can always ask BeRo for help.

  3. #3
    Yeah, but list here: http://bero.0ok.de/downloads/

    is quite confusing for me. Which file I want to download? Obviously not exe since exes don't contain any sources, unless it is self extracting archive .

    But I'm confused which file contains BeRo's library.

  4. #4
    I think it is MiniMod.zip. If not then BeRoXM.zip. I'm not sure since I haven't used his library yet.
    You can ask Paul_Nicholls (http://www.pascalgamedevelopment.com...-paul_nicholls) for more info as he used BeRo's mod playing library in one of his games.

  5. #5
    From MiniMod.zip/minimod.pas:

    Code:
    USES Windows,Messages,MMSystem;
    Sorry, but that's not for me. I need something multiplatform. Anyway, BeRoXM seems to be multiplatform, but supports only XM. MiniMod supports only MOD. I need something that support XM, MOD and IT at the same time (while s3m support would be nice bonus, it isn't needed as I rarely see mods in this format and if I do they usually have xm or it versions as well).

  6. #6
    Quote Originally Posted by Darkhog View Post
    Anyway, BeRoXM seems to be multiplatform, but supports only XM. MiniMod supports only MOD. I need something that support XM, MOD and IT at the same time (while s3m support would be nice bonus, it isn't needed as I rarely see mods in this format and if I do they usually have xm or it versions as well).
    You could try and join theese two together. From what it seems theese two only use different sound API.


    There is another option. You could use ModPlug plugin. You can find FPC headers for plugin here: https://github.com/alrieckert/freepa...ckages/modplug

  7. #7
    Quote Originally Posted by Darkhog View Post
    I need something that support XM, MOD and IT at the same time (while s3m support would be nice bonus, it isn't needed as I rarely see mods in this format and if I do they usually have xm or it versions as well).
    If your stuff is closedsource, then you can license my closedsource player engine from BeRoTracker, the costs for it are: Visible credits somewhere in your game.

    It has native support for MOD XM S3M IT MT2 IMF BRT 669 STM MTM WOW OKT DMF modules, MID MIDI RMF midi files, WAV soundfiles and SF2 DLS1 soundbanks. It has also a VST/VSTi host build-in, MIDI in&out features, multicore support, automatic plugin delay compensation (APDC), high-quality resampler routines (including realtime high-tap-count SINC with kaiser window beside many other window types). wave mapper, DirectSound, ASIO (without external wrapper DLL), /dev/dsp, ALSA, SDL audio, dummy-audio-buufer-redirect (for your own sound output code) and some features more, too much for to list these all here.

    The source code is compatible with Delphi 5, Delphi 7, Delphi XE3, Delphi XE4 and FreePascal >= 2.4.x . And the BeRoTracker player engine itself is fully crossplattform, 32-bit 64-bit, little endian big endian, Windows Linux *nix MacOSX, this all and more is supported.

    But the player engine needs a CPU with native floating point processing unit, because the audio DSP routines are fully floating-point-based and SIMD-instruction-set-optimized. So when you're targetting also for ARM-based targets, then you do need to target for ARMv6 together with the VFP instruction set extension at least, and the today newer ARMv7 variants in smartphones/tablets/... (from >=2010) have always floating point support (VFP*, NEON, etc,.) now.

    And each engine, that can play .IT files, should could play also .S3M files, since .IT is evoluted from .S3M (and .S3M itself from the .MOD base concept), like .XM from .MOD, and my .BRT format from .IT and .XM
    Last edited by BeRo; 23-06-2013 at 08:36 AM.

  8. #8
    @BeRo
    WOW! Your player supports all theese formats out of the box? Even ModPlug plugin doesn't support all of them natively out of the box but needs aditional plugins. That is realy awsome.
    I gues I can scratch "making of my own module music libarary" from my ToDo list
    Sure it will take me some time before I will actually need it but I gues I'll go with your implementaion instead. I will contact you when the time comes.

    BTW Have you ever considered in packing the player engine into a closedsource component and thus making it more easily accesible to other pascal game developers.

  9. #9
    Whoa, when I'll need it (and I'll be needing it pretty soon after completing SHL), I'll use it.

    Also I agree with SW that you should pack player code into some class, so one could do something like this:

    BRP:= TBeRoPlayer.Create;
    BRP.LoadIT("music/music1");
    BRP.PlayIT(true); //parameter defines if music should loop
    delay(120000); //waiting two minutes
    BRP.StopIT;
    BRP.Free;

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •