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.
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!
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.
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.
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.
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...
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.
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.
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.
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?
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.
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
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.
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!!
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.
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.
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.
32 comments:
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.
I might have 1 or 2 compositions in backup that I could load up...amazing! I love it too.
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.
Renoise Redux is already shipping a feature complete tracker you can easily run in Ableton or Bitwig.
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!
I am glad they also cloned the snake game.
https://github.com/8bitbubsy/ft2-clone/blob/master/src/ft2_n...
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
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.
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.
There is a FALL1.MTM on the MOD archive, but not sure if it is the one you're looking for.
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...
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.
OK, that I can relate to! :)
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.
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.
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.
I had a Crystal Semiconductor-based clone card that supported the SB Pro 2.0 features around that time.
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?
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.
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
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.
The first version of the FT2 clone was released 7 years 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
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!!
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.
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.
MilkyTracker exists and that uses SDL too
Schism Tracker as well: https://github.com/schismtracker/schismtracker/
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.
Really cool stuff. Would you be working on a port of rtmidi in pure C? :)
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.
More people need to see this