Fasttracker II clone in C using SDL 2

Posted by andsoitis 5 days ago

Counter136Comment52OpenOriginal

Comments

Comment by cmicali 22 hours 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.

Comment by Teknomadix 17 hours ago

Renoise Redux is already shipping a feature complete tracker you can easily run in Ableton or Bitwig.

Comment by tomduncalf 21 hours 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!

Comment by eps 20 hours 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

Comment by Benanov 20 hours 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.

Comment by saidnooneever 5 hours 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 :)

Comment by whizzter 15 hours 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).

Comment by pavlov 19 hours 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.

Comment by erwincoumans 10 hours ago

Brings back memories of Soundmonitor (Commodore 64, 1986) with vertical scrolling, hex note tracking, and 3-channel column layouts.

Comment by frethkindheart 18 hours ago

There is a FALL1.MTM on the MOD archive, but not sure if it is the one you're looking for.

Comment by rzzzt 20 hours 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...

Comment by eps 19 hours 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.

Comment by rzzzt 19 hours ago

OK, that I can relate to! :)

Comment by mhd 15 hours 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).

Comment by Benanov 20 hours 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.

Comment by Teknomadix 17 hours 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.

Comment by SwellJoe 16 hours 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.

Comment by rzzzt 20 hours ago

I had a Crystal Semiconductor-based clone card that supported the SB Pro 2.0 features around that time.

Comment by wartywhoa23 16 hours 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.

Comment by drummojg 16 hours ago

I might have 1 or 2 compositions in backup that I could load up...amazing! I love it too.

Comment by jeffalyanak 22 hours 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.

Comment by piperflatline 10 hours 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.

Comment by omoikane 16 hours ago

I am glad they also cloned the snake game.

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

Comment by dintech 19 hours 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

Comment by wartywhoa23 16 hours 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!!

Comment by teo_zero 13 hours ago

Does anybody know why the site is called 16-bits? Aren't trackers an expression of the first 32-bit computers?

Comment by selcuka 13 hours 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

Comment by teo_zero 13 hours ago

> 16-bit Commodore Amiga era

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

Comment by selcuka 12 hours 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.

Comment by georgemcbay 12 hours 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.

Comment by myself248 12 hours ago

My favorite mod player. Galaxy 2.12 (GLX212.ZIP on Simtel et al), runs on 8086's just fine.

Comment by tosti 22 hours ago

MilkyTracker exists and that uses SDL too

Comment by rzzzt 20 hours ago

Comment by Benanov 20 hours 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.

Comment by laladrik 21 hours 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?

Comment by RodgerTheGreat 20 hours 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.

Comment by rzzzt 20 hours 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

Comment by RodgerTheGreat 18 hours 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.

Comment by neonz80 20 hours ago

The first version of the FT2 clone was released 7 years ago.

Comment by 20 hours ago

Comment by Razengan 16 hours 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.

Comment by metroholografix 11 hours ago

There are some great remixes to Kenny Chow's legendary intro to the amazing "One Must Fall 2097" that manage to retain and enhance the tracker feel:

- Original: https://www.youtube.com/watch?v=Ixf_NfKjXkA

- Chow's own remix: https://www.youtube.com/watch?v=UvlVaQl7kEk

- SIDNIFY: https://www.youtube.com/watch?v=K3Jf4i4jG4U

The original Deus Ex also had some great tracker music.

Comment by egypturnash 9 hours ago

Oh darling. Stop playing AAA games, start playing real games from teams small enough to make unsafe choices.

https://www.youtube.com/playlist?list=PLD6ujQ0tHAv2qLS5FKH6B... - chopped beats, glitched words, everything you would expect in a love letter to Jet Set Radio

https://halberball.bandcamp.com/album/fragrance-point-soundt... - absolutely perfect noises for a game that looks like a 90s rave flier

https://supergiantgames.bandcamp.com/album/hades-original-so..., https://supergiantgames.bandcamp.com/album/hades-ii-original... - hades and its sequel shifts seamlessly between lutey-flutey strumming, hard rock, ballads, and sets the heck out of its mood

https://momojams.bandcamp.com/album/flipwitch-original-game-... - this horny metroidvania can fit so many electro-swing bangers in it

https://blackpantsgamestudio.bandcamp.com/album/tiny-big-sou... - sideways grooves and gloriously self-indulgent prog

https://polybius-ost.bandcamp.com/album/polybius-the-origina... - so much blissful techno to stare fixedly at blinking lights to, while the Welsh wizard who wrote it repeatedly insists that you are not being programmed by this experience in any way

Comment by vintermann 6 hours ago

Another great indie soundtrack is Death Road to Canada's.

I see you put Hades, haven't played it but I can attest that Supergiant's first game Bastion also has a pretty good soundtrack.

I love the minimalistic soundtrack of Baba is You, made by the developer. Almost all filtered saw waves so it sounds "chippy", but I dare anyone to port it to the C64.

FTL is an indie game which does cinematic soundtracks right, in my opinion. The chip elements are there, it's definitively not chip or tracker-style but it's still very good.

But there are bad indie game soundtracks too. Honestly, Slay the Spire, while a great game, has exactly the terrible cheap wannabe cinematic orchestral soundtrack OP complains about. It's at least slightly better for StS 2.

Comment by montag 15 hours ago

I agree. The limitations forced composers to be economical and creative.

As for modern OSTs, I like VA-11Hall-A. Never played it though

Comment by otabdeveloper4 2 hours ago

PCs and consoles back in the day used to have actual hardware synthesizers to play music. (Wild!)

Synthesizers are real musical instruments, so game designers actually had to compose and arrange musical pieces for them!

Today it's just pre-recorded sounds, nobody needs to actually craft special game music.

P.S. Having a dedicated synthesizer instrument isn't a limitation. It was a cost-saving measure back at the time, but it's a special separate custom chip that we don't get to have anymore.

Comment by vkaku 22 hours ago

Really cool stuff. Would you be working on a port of rtmidi in pure C? :)

Comment by lysace 18 hours 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.

Comment by boneskull 5 hours 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...

Comment by nuc1e0n 13 hours ago

Why SDL 2 and not SDL 3? Was the project started before SDL 3 was released?

Comment by bananaboy 13 hours ago

This was started quite a few years ago

Comment by hncsiocp9x 21 hours ago

More people need to see this

Comment by rustfreeforme 21 hours ago

[flagged]

Comment by glouwbug 20 hours ago

Because often times you don't need browser grade systems infrastructure to make something like an impulse tracker