Fasttracker II clone in C using SDL 2

(16-bits.org)

147 points | by andsoitis 6 days ago

19 comments

  • cmicali 1 day ago
    Very cool - can’t wait to try it. I made an impulse tracker clone for MIDI years ago that also uses SDL, though a mix of C and C++. It has been picked back up for dev again recently and we’re making good progress. https://github.com/m6502/ztrackerprime

    The world could use more trackers. I’m really hoping the upcoming ableton live extension api will allow for direct access to the piano roll. I suspect many people include myself will use it to make tracker interfaces for ableton.

    • gbraad 19 hours ago
      Nice, will have a look.

      And yes, trackers are great tools and with a bit of integration, like program change message, they can even provide this experience to MIDI. I use a bunch of tools I created for music making, live performance etc. trackers are almost always at the center of this for me.

    • Teknomadix 1 day ago
      Renoise Redux is already shipping a feature complete tracker you can easily run in Ableton or Bitwig.
      • gbraad 19 hours ago
        A VST is not similar to what the Live extension can do. I use redux, but it is always a slightly less integrated experience, as the extension, but extensions at the moment are also not fully featured yet. In short, both have a purpose. I also converted some of my tools to both, by either writing actual MIDI data into Ableton, and otherwise, be controlled by the DAW as a VST; I work on Regroove, which is a Protracker and (Octa)MED replayed library, which can convert from and to several other formats and can be used even in a Drumlogue to playback a .mod as a groovebox like use, with looping, etc.
      • cmicali 18 hours ago
        Renoise is great, but there's usually some compromise like using the tracker/vst's built-in sampler instead an integrated instrument (like Ableton's Drum Rack) or another VST (soft synth, etc)

        Basically, what gbraad said.

  • tomduncalf 1 day ago
    This rocks. Such nostalgia.

    FT2 was how I discovered anything about music making - I loved the euro dance music I heard on the radio as a 12 year old but had no idea about the scene or how electronic music was was made.

    PC Format had FT2 plus hundreds of modules on its cover CD one month, I used to love exploring all the random stuff on there and opened it up and my mind was blown when I realised that there was music like I heard on the radio, but you could see all the individual bits that made it up.

    It took a loooot of messing around to figure out how to do anything of value with it, pretty sure this was before we had internet at home, but it was the start of a life long fascination with electronic music making.

    So thank you to the author for resurrecting this amazing and somewhat esoteric bit of software!

  • eps 1 day ago
    How does FT2 relate to the ScreamTracker?

    The latter had a printer port output option that, combined with 10 resistors and 5 minutes of soldering, yielded proper sound on any standalone speaker. In the era of chip tunes and inaccessible SoundBlaster cards, it was nothing short of magic.

    * The adapter was a DIY version of the https://en.wikipedia.org/wiki/Covox_Speech_Thing

    • Benanov 1 day ago
      As someone who was in the demoscene: FastTracker II was more of a successor to ProTracker on the Amiga than it was a successor to ScreamTracker 3. I say this because I used it for years; if you go by user interface and keyboard shortcuts the heritage is very visible.

      That isn't to say that FT2 didn't build upon what ST3 (ScreamTracker 3) did; FT2 loaded ST3 files and played them just fine, as long as they were sample-based and not OPL3 (basically no one used the OPL3 functionality in #trax); and a lot of the concepts were brought along as well; per-channel panning (not the hard LRRL of the Paula) and an option for a Linear frequency table (instead of using the Amiga's). I think ST3 had ADSR envelopes; FT2 definitely does.

      There were other trackers about like MultiTracker, which got some use - it had a fairly interesting per-track compression (not just pattern compression) that was transparent to the user. It was the original format for Kenny Chou's (CC Catch) soundtrack to One Must Fall 2097 (which is public domain; if anyone can send me FALL1.MTM {"Powerplant"} I'd love you for days; I only have that one after I converted it to XM and it lost all the panning information, as FT2 does not store per-channel panning information; only per-instrument and per-sample; you can't just set a channel pan and have it persist)

      No one was really using .MTM in 1995 onward tho.

      ImpulseTracker was a 'proper' successor to ScreamTracker 3, down to how the interfaces looked and the keyboard shortcuts. Both are DOS Terminal / "ANSI" looking. ncurses was a thing back then but this was DOS; but they weren't using it. IT is still around and has been open-sourced and I think SchismTracker is the current flag-bearer fork - unsure.

      FT2 vs IT was a hot topic in #trax in the late 90's; most of the cool kids used Impulse but I stuck to FT2.

      ModPlug Tracker was the first really successful Windows tracker, it is and was FLOSS, and it's still around, and was a pretty capable tracker in its day if you didn't mind light mode. I think a lot of the more 'modern' module output plugins for GStreamer et al are based off of ModPlug code, but again I can't prove it (there was also the MikMod library/players; and CubicPlayer, etc. Tons of libraries)

      MilkyTracker is the spiritual successor to FT2 (down to the keyboard shortcuts!) and runs on pretty much anything modern these days. I got it to run on the OLPC XO-1, which was plenty capable because modules were being mixed on a 486 or so at 33MHz, and the XO-1's Geode was running at 433MHz, which is a good 10x faster. However my biggest problem with tracking on the XO-1 was all the times I'd get interrupted when people would ask me about the computer I was working on...

      iirc FT2 also had a "Disney Sound Source" parallel port option but never used it. It did have MIDI output.

      FT2 did have a really shitty PC speaker output option, because almost all of them are shitty, and a really good one didn't happen until 8088mph came out. It was capable enough to annoy people around you, but it was also capable enough that a friend and I made some 4/6-channel XM files that used basically square wave samples that sounded decent enough. They're on modarchive, look for Comp Sci Chip Tech, you'll find them.

      • whizzter 1 day ago
        Gonna add the comment about FT2 vs IT, in the demoscene FT2 was probably favoured a bit more since third party replayers (required for embedding the music into demos) were at least somewhat faithful when it came to .XM modules whilst .IT module support wasn't as good for a long time since IT files had more advanced features (though you could probably export .XM modules from Impulse Tracker if you kept to a subset of the features, but I remember it being a bit of a hit and miss).
      • pavlov 1 day ago
        FT2 and ST3 were released within months of each other in 1994, so they must have been in development in parallel. It makes sense that FT was primarily inspired by a different Amiga tracker.
      • saidnooneever 1 day ago
        Modplug was fun but i am missing Renoise in the list perhaps because it is not free or open source. but its really cheap for a DAW and amazing tracker. afaik its also inspired on fast/pro tracker but i am not sure as i only used modplug before renoise. maybe its much newer, i started in 2004 or so so i missed a lot ofnthe history :)
        • gbraad 19 hours ago
          Renoise is a great tol, but in some cases a bit too feature packed for some people. I do see it used a lot, and I also occasionally do. But playback of a .mod/.med is much easier and 'guaranteed' among devices, this is why I prefer it; more self-contained.
      • erwincoumans 1 day ago
        Brings back memories of Soundmonitor (Commodore 64, 1986) with vertical scrolling, hex note tracking, and 3-channel column layouts.
      • frethkindheart 1 day ago
        There is a FALL1.MTM on the MOD archive, but not sure if it is the one you're looking for.
    • rzzzt 1 day ago
      Tell us about the great Sound Blaster shortage! I thought they threw one after you each time you left a PC parts shop. (Could be a different time period.) The GUS on the other hand...
      • eps 1 day ago
        Lol, it was a shortage of money, not the cards!

        This was in '93 or thereabouts and they were really expensive and through that very sparse where I was.

        • rzzzt 1 day ago
          OK, that I can relate to! :)
      • mhd 1 day ago
        In Germany this was certainly true, as the local distributor CPS put out their own "Sound Blaster" cards for a while until stopped by a lawsuit. IIRC they were rebranded Aztech sound cards. I had a "Sound Blaster Junior" which I was quite fond of (until I saved some money for a GUS ACE).
      • Benanov 1 day ago
        Honestly by 1995/1996 or so yeah you could find SoundBlaster cards everywhere and anywhere...but if you wanted a GUS you were basically having to plunk down a lot of cash.

        Maybe SoundBlaster being short was a little earlier? I didn't have a PC before 1995, so...

        By early 2000 you were seeing a lot of Ensoniq and other sort of "Windows Sound Source" crap in most consumer-grade PCs and if you wanted an AWE32 or AWE64 you had to specify you wanted a good sound card.

        • Teknomadix 1 day ago
          Um, no. Let's set the record straight. Creative bought Ensoniq in '98 for just shy of $78 million, so by early 2000 the "Ensoniq crap" shipping in OEM boxes was Creative's own product. The AudioPCI ES1370/ES1371 got rebadged as the Sound Blaster PCI64 and PCI128. Creative had already absorbed E-mu Systems in '93, and the EMU8000 on the AWE32/AWE64 was E-mu silicon. Both of these American sampler houses ended up under the Creative Labs roof, so framing Ensoniq as the cheap alternative to Creative in 2000 is totally backwards. Ensoniq was just the volume tier of Creative's own lineup. You're off on the timeline. AWE32 is '94, AWE64 is '96, both were ISA. By early 2000 those were legacy cards on a dying bus architecture, and the enthusiast ask was a SB Live! with the EMU10K1, or an Aureal Vortex 2 if you cared about A3D and had deep pockets. Specifying an AWE64 in 2000 would have gotten you an obsolete card. Also the term is Windows Sound System, the Microsoft AD1848/CS4231 codec standard, and AudioPCI is not a WSS part. It has its own PCI driver stack with legacy SB emulation bolted on, and it genuinely sucked, ran its wavetable in host CPU and system RAM off the ECW patch sets rather than dedicated hardware, and its DOS Sound Blaster emulation was mediocre compared to a cheap ISA card.

          Ensoniq was an amazing engineering powerhouse before the demise. In late 1994 I got an Ensoniq Soundscape, at the time it was the most high-end wavetable card built around their OTTO chip (EPS-16+/ASR10), which I believe was a descendant of the Apple IIGS DOC, and it competed at the time with the Roland SCC-1 and the GUS.

          • SwellJoe 1 day ago
            Worth noting that the SID chip in the C64 was also created by the guy who founded Ensoniq, before he went on to found Ensoniq. Good computer audio was invented by Bob Yannes. Ensoniq also made sampling affordable with the Mirage, and built some of the coolest sampling synths of the 80s and 90s (EPS, EPS-16+, ASR-10 were the synths everyone in electronic and industrial music had to have). When a friend in my audio engineering class in college got an ASR-10, it was a moment.
        • rzzzt 1 day ago
          I had a Crystal Semiconductor-based clone card that supported the SB Pro 2.0 features around that time.
  • wartywhoa23 1 day ago
    To slightly rephrase Gary Fisher: Anyone who has fond memories of FT2 is a friend of mine!

    Kudos to everyone sharing a wealth of information about FT2 and other trackers and audio hardware of that time in this discussion :)

    This is the HN I adore.

    • drummojg 1 day ago
      I might have 1 or 2 compositions in backup that I could load up...amazing! I love it too.
  • persephonex 3 hours ago
    What a nostalgia. I make Finnish dance chart track back in 98 with ft2 and Soundblaster.. those were the days.
  • jeffalyanak 1 day ago
    He also has a fantastic ProTracker clone as well as a bug fixed version of the Amiga ProTracker. Together, they make for a great way to write Amiga tunes that you can still edit and playback on real hardware.
  • teo_zero 1 day ago
    Does anybody know why the site is called 16-bits? Aren't trackers an expression of the first 32-bit computers?
    • selcuka 1 day ago
      Fasttracker II was a 32-bit DOS executable, but trackers in general (and the MOD/XM formats) were born [1] during 16-bit Commodore Amiga era.

      [1] https://en.wikipedia.org/wiki/Ultimate_Soundtracker

      • teo_zero 1 day ago
        > 16-bit Commodore Amiga era

        The Motorola 68000 was a 32-bit processor. What Commodore Amiga was 16 bits?

        • selcuka 1 day ago
          Fair enough. As someone who was alive in the 80s, I remember first generation home computers (ZX Spectrum, Commodore 64 etc) were (correctly) called 8-bit, and the second gen (Amiga, Atari ST) were colloquially called 16-bit.

          The CPU was 32-bit but the earlier Amigas (A1000, A500) and STs had 16-bit data buses. That was probably why.

        • georgemcbay 1 day ago
          > The Motorola 68000 was a 32-bit processor.

          ... but not entirely. The registers were 32-bit but the ALU and data bus were 16-bit.

          The 68020 was the first 68k chip that was 32-bit without having to qualify exceptions for different parts of the architecture.

    • myself248 1 day ago
      My favorite mod player. Galaxy 2.12 (GLX212.ZIP on Simtel et al), runs on 8086's just fine.
  • omoikane 1 day ago
    I am glad they also cloned the snake game.

    https://github.com/8bitbubsy/ft2-clone/blob/master/src/ft2_n...

  • dintech 1 day ago
    Someone also released an extension of this project but as a VST plugin, so you can integrate it with your modern DAW.

    https://github.com/juho/ft2-plugin

    • wartywhoa23 1 day ago
      Woot!? The project website link in the repository leads to Blamstrain's bandcamp - that's Juho Hietala, a Finnish musician whose album "Disfold" is among top ambient / dub techno albums of all times for me, in line with Fluxion - Vibrant Forms I/II, G.R.I.T. - Expanse and Yagya - Will I Dream During The Process?

      Now, he also turns out to be a programmer, which I didn't know, and that he ported a clone of my fondly beloved FT2 to a VST plugin is just such a double hit!

      Juho, if you happen to read this - thank you so much, man!!

  • piperflatline 1 day ago
    Love FT2! I did some PlayStation/N64 soundtrack stuff (known if you know) and released a few "albums" with it back in the 90s (essentially unknown).

    These days I use FL Studio but I'm always wanting in many ways to go back to tracking. Renoise is pretty cool but I do miss FT2, and yeah as someone mentioned there's also MilkyTracker.

    Annnnnnd... now I want to go track something.

    • gbraad 16 hours ago
      > known if you know

      ?

  • tosti 1 day ago
    MilkyTracker exists and that uses SDL too
    • rzzzt 1 day ago
      • Benanov 1 day ago
        Schism Tracker is based off Impulse Tracker, and as such it isn't a ProTracker successor per se as the user interface is different.

        It's absolutely a tracker, and absolutely part of the demoscene and quite a capable piece of software - but if you have the muscle memory for ProTracker (or FastTracker 2, as I do) keyboard shortcuts, it is not the same.

        MilkyTracker does have an option for FT2-style shortcuts.

  • lysace 1 day ago
    It's unfortunate that the Turbo Pascal (with inline X86 asm) source code of FT2 written by Vogue and Mr H hasn't been released after all these years. It's so seminal to so many people from that era.

    If I were to guess, they found the quality of the code too embarrassing, years later - they were kind of kids when they wrote it. I did see that they (supposedly) shared the source with someone on Vogons for the purpose of minor updates/bugfixes.

  • laladrik 1 day ago
    SDL3 has been around for 1.5 years. I can't help but wonder about the choice of SDL2 over it. I started using SDL from its 3rd version. Don't I know about some advantages of SDL2?
    • RodgerTheGreat 1 day ago
      The changelog for this project dates back to 2019, well before SDL3 was available. SDL2 supports some older platforms that SDL3 has deprecated. If you value running on those deprecated platforms and/or you don't need any of the features introduced since SDL3, it's quite reasonable to stick with SDL2.
      • rzzzt 1 day ago
        Not sure when the switchover happened, but IIRC I started out with SDL2 on Homebrew and recently got this compatbility shim instead when it updated: https://github.com/libsdl-org/sdl2-compat
        • RodgerTheGreat 1 day ago
          I don't have an extremely high opinion of sdl2-compat specifically because my SDL2-based projects have had several bizarre bug reports which originated in downstream packages presuming they could use this "compatibility layer" instead of the actual dependency I develop and test against.
    • neonz80 1 day ago
      The first version of the FT2 clone was released 7 years ago.
  • vkaku 1 day ago
    Really cool stuff. Would you be working on a port of rtmidi in pure C? :)
  • Razengan 1 day ago
    Tracker music and 1990s video game music needs to make a comeback in general.

    Why is game music so boring and same-sounding nowadays? That damn wannabe-Hollywood-bug with the faux-orchestras and shit.

    Just listen to this: https://www.youtube.com/watch?v=FA95o7RNjqA

    That's for a freakin SHOP scene, a single screen of static UI.

    And THIS!! https://www.youtube.com/watch?v=OGe3gP9VY9A&list=PL8FB351987...

    What's the last memorable game OST you can recall? I can only think of Elden Ring.

  • hncsiocp9x 1 day ago
    More people need to see this
  • nuc1e0n 1 day ago
    Why SDL 2 and not SDL 3? Was the project started before SDL 3 was released?
    • bananaboy 1 day ago
      This was started quite a few years ago
  • boneskull 1 day ago
    here’s a terrible MOD I adapted from sheet music ca. 1994 (best guess). I have no idea why this is on the internet.

    https://modarchive.org/index.php?request=view_by_moduleid&qu...

  • rustfreeforme 1 day ago
    [flagged]
    • glouwbug 1 day ago
      Because often times you don't need browser grade systems infrastructure to make something like an impulse tracker