Speaking of sound cards, I distinctly remember the Sound Blaster Audigy being the very last discrete sound card my dad obtained before we stuck with AC’97, and later the HDA codec audio solution on the motherboard.
I do vaguely recall the kX drivers you mentioned, but I’m pretty sure we stuck with whatever came stock from Creative Labs, for better or for worse. Also… that SB16 emulation under DOS for the Live! and Audigy series cards was not great, having been a carry over from the ENSONIQ days. The fact that I needed EMM386 to use it was a bit of a buzzkill.
On the K6-II+ system we had, we used an AWE64 Gold on the good ol’ ISA bus. Probably my favorite sound card of all time, followed by the Aureal Vortex 2.
My mom had a computer with a SoundBlaster 16. I carried that sound card across the room one day for whatever reason a kid does a thing like that, and it got zapped pretty bad with static. It still worked after that, but it learned the strangest new function: It became microphonic. You could shout into the sound card and hear it through the speakers.
But other than being microphonic, the noise wasn't unusual: Sound cards were noisy.
At one point around the turn of the century, I scored a YMF724-based card that featured an ADC stage that actually sounded good, and was quiet. I used this with a FreeBSD box along with a dedicated radio tuner to record some radio shows that I liked. That machine wasn't fast enough to encode decent MP3s in real-time, but it was quick enough to dump PCM audio through a FIFO and onto the hard drive without skipping a beat. MP3 encoding happened later -- asynchronously. It was all scheduled with cron jobs, and with NTP the start times were dead-nuts on. (Sometimes, there'd be 2 or 3 nice'd LAME processes stacked up and running at once. FreeBSD didn't care. It was also routing packets for the multi-link PPP dialup Internet connection at the house, rendering print jobs for a fickle Alps MD-1000 printer, and doing whatever else I tossed at it.)
I used 4front's OSS drivers to get there, which was amusing: IIRC, YMF724 support was an extra-cost item. And I was bothered by this because I'd already paid for it once, for Linux. I complained about that to nobody in particular on IRC, and some rando appeared, asked me what features I wanted for the FreeBSD driver, and they sent me a license file that just worked not two minutes later. "I know the hash they use," they said.
There's a few other memorable cards that I had at various points. I had a CT3670, which was an ISA SoundBlaster with an EMU 8k that had two 30-pin SIMM sockets on it for sample RAM.
There was the Zoltrix Nightingale, which was a CMI8738-based device that was $15 brand new (plus another $12 or something for the optional toslink breakout bracket). The analog bits sounded like crap and it had no bespoke synth or other wizardry, but it had bit-perfect digital IO and a pass-through mode that worked as an SCMS stripper. It was both a wonderful and very shitty sound card, notable mostly because of this contrast.
I've got an Audigy 2 ZS here. I think that may represent the pinnacle of the EMU10k1/10k2 era. (And I'm not an avid gear hoarder, so while I may elect to keep that around forever, it's also likely to be the very last sound card I'll ever own.)
And these days, of course, things are different -- but they're also the same. On my desk at home is a Biamp Tesira. It's a fairly serious rackmount DSP that's meant for conference rooms and convention centers and such, with a dozen balanced inputs and 8 balanced outputs, and this one also has Dante for networked audio. It's got a USB port on it that shows up in Linux as a 2-channel sound card. In practice, it just does the same things that I used the K6-2/EMU10k1/kX machine for: An active crossover, some EQ, and whatever weird DSP creations I feel like doodling up.
But it can do some neat stuff, like: This stereo doesn't have a loudness control, and I decided that it should have something like that. So I had the bot help write a Python script that watches the hardware volume control that I've attached and assigned, computes Fletcher-Munson/ISO 226 equal-loudness curves, and shoves the results into an EQ block in a fashion that is as real-time as the Tesira's rather slow IP control channel will allow.
So I do strongly remember Sound Blaster cards, specifically of the SB16 variety, being jokingly referred to as “Noise Blasters” for quite some time, due to the horrible noise floor they had as well as all the hiss. One of the reasons I loved the AWE64 Gold was because Creative did manage to get that well under control by that point, along with other fixes introduced with DSP 4.16. I still have an AWE64 Gold in my collection, complete with the SPDIF bracket, that I will never sell, due to sentimental reasons.
The YMF724 card you mentioned… did that happen to have coaxial SPDIF perchance? I heard that, unlike the SPDIF implementation found on the AWE series cards from Creative, the YMF724 SPDIF carried all audio over it, even under DOS. Not just 44.1 kHz specific sound, which I believe Creative sourced from the EMU8k. Plus, as an added bonus, if your motherboard offered SBLINK (also known as PC/PCI), you could interface with the PCI sound card interrupts directly in DOS without memory-hogging TSRs.
As for my final sound card I ever owned before abandoning them, mine was the rather unique ESI Juli@ back in the 2011/2012 timeframe. I loved how the audio ports had a zany breakout cable for MIDI and RCA features, as well as the board that could flip around for different style jacks.
One other remark that leads to a question. Linux users back in the day had a penchant for choosing one audio API over the other in Linux, like ALSA, OSS, or PulseAudio. Did you play around much with these in the dog days of Linux?
For the YMF724: I really don't remember that part of it, but I'd like to think that if it had SPDIF built out that I really would have paid attention to that detail. The only reason I went through the horrors of using the cheap-at-every-expense CMI8738 Zoltrix card was to get SPDIF to feed an external DAC (and finally live in silence), and if the YMF724 I had included it then my memories would be shaped differently. :)
And I'm usually pretty good with model numbers, but it's possible that this card really didn't have one. Back then, I got a lot of hardware from an amazing shop that sold things in literal white boxes -- stuff that they'd buy in bulk from Taiwan or wherever and stock on the shelves in simple white boxes with a card (in a static bag) inside. No book, no driver disk.
These boxes had a description literally pasted onto them; sometimes black-and-white, and sometimes copied on one of those fancy new color copiers, sometimes with jumper settings if appropriate -- and sometimes without. Some of the parts were name-brand (I bought a Diamond SpeedStar V330 from there with its minty nVidia Riva128 -- that one had a color label), but other times they were approximately as generic as anything could ever be.
Or, I'd pick up stuff even cheaper from the Dayton Hamvention. There were huge quantities of astoundingly-cheap computer parts of questionable origin moving through that show.
But no, no SPDIF on that device that I recall. It may have been on the board as a JST or something, but if it was then I absolutely never used it.
I do remember that bit about the EMU8k's SPDIF output -- my CT3670 had that, too. IIRC it was TTL-level and not galvanically-isolated or protected in any way, on a 2-pin 0.1" header. IIRC, it didn't even have the 75 Ohm terminating resistor that should have been there. I was disappointed by the fact that it only output audio data from the EMU8k, since that part didn't handle PCM audio.
But! There was a software project way back then that abused the EMU8k to do it anyway: Load up the sample RAM with some PCM, and play it. Repeat over and over again with just the right timing (loading samples in advance, and clearing the ones that have been used), give it a device name, and bingo-bango: A person can play a high-latency MP3 over SPDIF on their SoundBlaster AWE-equivalent.
I was never able to make it work, but I sure did admire the hack value. :)
That ESI Juli@ is an a very clever bit of kit and I've not ever seen one before. I'm a bit in awe of the flexibility of it; the flip-card business is brilliant. There's got to be applications where that kind of thing could be used in the resurgent analog synth world.
It's very different, but for some reason it reminds me of the Lexicon Core 2 we used in a studio from 1999 until 2002 or so. This had its (sadly unbalanced) 4 inputs and 8 outputs on an external breakout box, and we gave it another 8 channels in each direction by plugging it into an ADAT machine. That was an odd configuration, and bouncing through the hardware reverb on the card was even odder.
The Core 2 did not work with the then-cutting-edge Athlon box we built for it and that was a real bummer -- we spent a lot of money on that rig, and I spent a ton of time troubleshooting it before giving up. (We then spent a lot more money replacing that board with a slotted Pentium 3.)
ALSA, OSS, PulseAudio: Yeah, all of those. I paid for OSS fairly early on, and that was also always very simple to make work -- and it did work great as long as a person only did one thing at a time. I really enjoyed the flexibility of ALSA -- it let me plug in things like software mixers, so I could hear a "ding" while I was playing an MP3. And I liked the network transparency of PulseAudio ("it's kind of like X, but for sound!") but nobody else really seemed interested in that aspect around that time.
If I had to pick just one as a favorite, it would definitely be OSS: The concept of one sound card with exactly one program that completely owned the hardware until it was done with it allowed for some very precise dealings, just like with MS-DOS. It felt familiar, plain, and robust.
You?
There is some guy on Youtube that reviewed his specific generic YMF724-based sound card many many years ago that did have SPDIF on board and he seemed quite fond of it. Though later on, he redacted his initial recommendation due to how hard it is to find a YMF724 card built exactly like his was. So to be honest, it's likely you didn't miss out after all.
Initial review: https://www.youtube.com/watch?v=zueKH6CUVqE
Comment on rescinding his recommendation (w/ timestamp): https://youtu.be/fl3D9trFJ8E?t=1410
Regarding the SPDIF implementation on the Creative AWE-series cards, those SPDIF brackets turned out to be very important due to their proper support for the TTL-level signal, yet back in the day, most users discarded it or lost them in the shuffle, making them exceedingly rare in the long run. If you are out shopping for any AWE32 or AWE64, good luck finding one with the bracket! Frankly, I wish Creative just slapped the coaxial SPDIF port on the card itself rather than on a separate bracket, though I suppose Creative wanted the world to know how they half-assed the implementation anyway. I digress. :)
That ESI Juli@ was the most interesting sound card I ever used, and I've not seen one like it since. I even recall ensuring that it had a dedicated PCI slot for it that did not connect over a PCI-to-PCIe bridge, in case that would introduce latency. Hilariously though, my needs were never particularly stringent. I was just being OCD.
For me? As far as Linux audio subsystems go, I preferred the ease of PulseAudio, even if it was rather buggy in its earlier days. I even played around with JACK many years later, but would go right back to PulseAudio, since it's truly set-it-and-forget-it in the current era... or I guess we default to pipewire now? I kinda stopped paying attention since audio is so seamless now.
I had one of those for what seemed like an eternity.
At first, right out of the gate: I overclocked it from 300MHz to 350MHz just to see what would happen. It worked perfectly without further adjustment (and the next step did not), so I left it right there at 350MHz. For the price, at that time, it kept up great compared to what my peers had going on.
As the years ticked by and it was getting long in the tooth, it stayed around -- but it shifted roles.
I think the last thing it was doing for me was running a $25 SoundBlaster Live! 5.1's EMU10k1 DSP chip under Windows, using the kX audio drivers.
kX let a person use that DSP chip for what it was -- an audio-oriented DSP with some audio-centric IO. With kX, a person could drop basic DSP blocks into the GUI and wire them together arbitrarily, and also wire them into the real world.
I used it as a parametric EQ and active crossover for the stereo in my home office -- unless I was also using it as a bass preamp, in a different mode. Low-latency real-time software DSP was mostly a non-starter at that time, but these functions and routings were all done within the EMU10k1 and end-to-end latency was low enough to play a bass guitar through.
Of course: It still required a computer to run it, and I had a new family at that time and things like the electric bill were very important to me. So I underclocked and undervolted the K6-2 for passive cooling, booted Windows from a CompactFlash card (what spinning HDD?), and hacked the power supply fan to just-barely turn and rotate air over the heatsinks.
It went from a relatively high-cost past-performer to a rather silent low-power rig that I'd remote into over the LAN to wiggle DSP settings on that only had one moving part.
Neat chips, the K6-2 and EMU10k1 were.
Fun times.
(And to bring it all back 'round: We'd be in a different place right now if things like the K6-2 had been more popular than they were. I don't know if it'd be better or worse, but it'd sure be different.)