VOGONS


First post, by och

User metadata
Rank Newbie
Rank
Newbie

To the best of my knowledge in the modern Windows system the CPU does all the sound processing, and the soundcards are merely used as DACs and to provio IO for speakers, mics, etc. But in the DOS days and early Windows days did soundcards actually offload all the sound processing from the CPU?

Reply 1 of 19, by shevalier

User metadata
Rank Member
Rank
Member
och wrote on 2023-05-26, 03:44:

To the best of my knowledge in the modern Windows system the CPU does all the sound processing, and the soundcards are merely used as DACs and to provio IO for speakers, mics, etc. But in the DOS days and early Windows days did soundcards actually offload all the sound processing from the CPU?

Requires Windows 95+
complete audio system including: 64 voice soundfont sampling -multitrack hard disk recording -multichannel effects processing -multi input digital mixing

E-MU actually developed its 10k1 chip for processing and recording music and sound effects.
In 1998-9, such a number of effects on 64 channels Athlon 700MHz / P3 Copermine 733 simply would not have taken out.
Then Creative bought E-MU and destroyed them. However, like Aureal.

Attachments

  • emu_APS_pci.jpg
    Filename
    emu_APS_pci.jpg
    File size
    194.06 KiB
    Views
    1113 views
    File license
    Public domain

Aopen MX3S, PIII-S Tualatin 1133, Radeon 9800Pro@XT BIOS, Diamond monster sound MX300
JetWay K8T8AS, Athlon DH-E6 3000+, Radeon HD2600Pro AGP, Audigy 2 Value

Reply 2 of 19, by kolderman

User metadata
Rank l33t
Rank
l33t
och wrote on 2023-05-26, 03:44:

To the best of my knowledge in the modern Windows system the CPU does all the sound processing, and the soundcards are merely used as DACs and to provio IO for speakers, mics, etc. But in the DOS days and early Windows days did soundcards actually offload all the sound processing from the CPU?

Yes. There were various kinds of sounds generators/processors on sounds cards:
* FM synthesis (OPL, Adlib)
* digital sound (PCM, SB, WSS)
* wavetable synthesis (EMU, GUS)
* 3D sound (EAX, A3D)
* PC speaker emulation
* CD audio (redbook)
* MPU (external midi device support)
* other propriety standards (PAS16)

In reality all this sound processing didn't "move to the cpu". More accurately, all sound became PCM with some mixing in the CPU, and real-time sound generation became a thing of the past.

Reply 3 of 19, by digistorm

User metadata
Rank Member
Rank
Member

Not 100% either. There were a few games that supported GUS natively and that card used PCM samples that are processed (pitch, volume, position) on the card. It did this together with MIDI playback. The AWE 32 was capable of the same, but I don’t know of any game that uses it to process sound effects (but I might be wrong, I don’t know all games in existence)

Reply 4 of 19, by och

User metadata
Rank Newbie
Rank
Newbie

I remember playing a game back on my 386, it was a sokoban type of game, and it had digital sound through a PC speaker. The sound quality was horrible, it was mostly music with some sound effects such as explosions - and whenever sound effects were taking place the game would slow down to a crawl, maybe 1-2 FPS. I figure my 386SX just couldn't handle processing sound and graphics at the same time. When I added a sound card, I believe it was a SB16, obviously the sound quality improved drastically, but also the game speed was no longer affected by the sound effects.

I figure the soundcard took over all the processing of sound effects from the CPU, kind of like modern GPUs take rendering processing from the CPUs.

Reply 5 of 19, by Scali

User metadata
Rank l33t
Rank
l33t
kolderman wrote on 2023-05-26, 04:58:

In reality all this sound processing didn't "move to the cpu". More accurately, all sound became PCM with some mixing in the CPU, and real-time sound generation became a thing of the past.

Exactly, that 'all sound became PCM' is the key here.
PCM, let's say 'digital audio' wasn't the standard method of generating audio on early computers. To get decent quality out of PCM, you need quite a high sample rate and resolution, which was not feasible for early computers with limited memory and slow CPUs.
So instead, early sound options were what we know know as 'PSG': Programmable Sound Generator.
This was usually a very basic type of synthesis, just generating simple square waves, pulse waves, triangle waves and such.
The chip would just output analog audio directly.

FM is a bit of a special case, as although in theory you can do Frequency Modulation synthesis in the analog realm, Yamaha chose to implement it via a digital chip. So the FM synthesizer actually output a PCM-like signal to a DAC chip.
It's just that you couldn't use the DAC directly, so it could only play whatever audio the FM synthesizer generated.

It wasn't until wavetable/ROMpler synthesizers became commonplace that the generated audio was actually based on PCM itself, making it more comparable to what the CPU does today.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 6 of 19, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Sound Blasters did support decompressing of 4-Bit PCM streams, I vaguely remember.

The Soundscape 2000 and Turtle Beach soundcards (Maui?) had a real on-board computer (MC68k based), I vaguely remember.

Some links I've found:
https://dosdays.co.uk/topics/Manufacturers/turtlebeach.php

https://en.wikipedia.org/wiki/Ensoniq_Soundscape_S-2000

The Mediatrix Audiotrix Pro had an OPL4 and sample RAM.
MOD4WIN supported it in "hardware mode" ; it could play MOD files pretty much on its own.
Other supported cards were GUS and EWS64XL, I think.

AweAmp could do similar with AWE64/AWW32/SB32 cards with EMU8000 chip.
Impulse Tracker supports AWEs and GUS, too.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 7 of 19, by Gmlb256

User metadata
Rank l33t
Rank
l33t
shevalier wrote on 2023-05-26, 04:14:

Then Creative bought E-MU and destroyed them.

E-mu wasn't completely destroyed unlike Aureal when Creative bought them, they still made products (despite eventual name change) independently from Creative for a while.

digistorm wrote on 2023-05-26, 05:02:

Not 100% either. There were a few games that supported GUS natively and that card used PCM samples that are processed (pitch, volume, position) on the card. It did this together with MIDI playback. The AWE 32 was capable of the same, but I don’t know of any game that uses it to process sound effects (but I might be wrong, I don’t know all games in existence)

Eradicator used the EMU8K for some "3D" sound effects. Both Croc and Dungeon Keeper did use it for ambient sound.

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 8 of 19, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Strictly speaking, PC soundcards are very dumb today.
In the mid-late 90s, they reached their pinnacle.

PCM output does essentially mean that they do have an DAC, a D/A Converter (Digital-Analog Converter).
That so-called "digital audio" or "digital speech" of the 80s/90s was referring
to the same and shouldn't be confused with real digital audio, such as SPDIF or HDMI audio.

What late PCM soundcards still supported was sample-rate conversion.
Ie, they could convert an audio stream to their native sampling rate (say 48KHz).

By contrast, older cards like SB16 or WSS could still natively run at different sampling rates (8000, 11025, 22050, 44100, 48000 Hz)..

Speaking under correction, though.

Other platforms had more intelligent soundcards.
The Amiga for example, had 4 independent mono channels that could pan to left/center/right and run at different sampling rates.

That's why authentic playback of 4 channel MODs is so tricky.
All channels must be mixed together to same sampling rate, so that dumb PC soundcards can handle them (have merely zwo channels, which must use same sampling rate, even!).
The up conversion will cause loss a bit of information, though.
90s cards like GUS or AWE were at least capable of mixing in hardware.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 9 of 19, by Scali

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2023-05-26, 15:37:

Sound Blasters did support decompressing of 4-Bit PCM streams, I vaguely remember.

Yes, the 'DSP' on an Sound Blaster was a simple microcontroller (Intel 8051). The microcontroller had an internal timer which timed when to output the next sample to the DAC, which made DMA-based PCM playback possible.
They also included a primitive form of compression known as ADPCM, so the DSP would decompress ADPCM-data on-the-fly before sending each sample to the DAC.

Jo22 wrote on 2023-05-26, 15:37:

The Soundscape 2000 and Turtle Beach soundcards (Maui?) had a real on-board computer (MC68k based), I vaguely remember.

With midi-based devices it was also common to have a microcontroller/processor on board.
The Roland MPU-401 has its own processor, as does the IBM Music Feature Card (a Z80).
The Roland MT-32 also has its own microcontroller.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 11 of 19, by Gmlb256

User metadata
Rank l33t
Rank
l33t

Microsoft actually rewrote the audio stack to use WASAPI. Hardware-accelerated audio processing is still possible by using OpenAL implementations that comes with supported Sound Blaster cards prior the Recon3D (excluding the Audigy Rx), but 100% stability isn't guaranteed.

However, the usefulness in its current state has diminished with faster CPUs getting a very low overhead.

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 12 of 19, by och

User metadata
Rank Newbie
Rank
Newbie

What about video cards? I understand all graphics in DOS were processed by the CPU, and the video cards were just more or less dummy frame buffers and the only difference in speed were due to different bus speeds and memory speeds? This is vs modern GPUs that offload most of the rendering from the CPU.

Reply 13 of 19, by Gmlb256

User metadata
Rank l33t
Rank
l33t

Correct, the graphics were mostly software rendering in DOS. How the video card utilized the memory and bus bandwidth did make a difference in addition to CPU speed in those times.

The thing is that graphics hardware still has actual development to the point that they are capable of doing several general-purpose programming. This is in contrast to audio hardware acceleration where development stagnated due to cost, lack of general public interest and Creative's attitude towards relevant competitors.

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 14 of 19, by Scali

User metadata
Rank l33t
Rank
l33t
och wrote on 2023-05-26, 17:40:

What about video cards? I understand all graphics in DOS were processed by the CPU, and the video cards were just more or less dummy frame buffers and the only difference in speed were due to different bus speeds and memory speeds? This is vs modern GPUs that offload most of the rendering from the CPU.

True. The CGA/EGA/VGA standards had very little functionality for scrolling, sprites and that sort of thing. Let alone 3D rendering.
It wasn't until the early 90s when 'Windows accelerators' would start adding hardware assistance for things like line-drawing, blitting and whatnot, mainly to accelerate the Windows GUI.
Around 1995, we'd get the first wave of 3D accelerators, with the 3DFX VooDoo and some competitors.
Initially, they would just offload the rasterization and texturing of triangles from the CPU. The 3D calculations such as transform and lighting were still done on the CPU (and on very early accelerators, you still had to do quite a bit of setup per polygon as well, they would only render a triangle as a top trapezoid and bottom trapezoid).
The GeForce256 was the first to do that part on chip as well, which is why NVIDIA marketed the term 'GPU' for the GeForce.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 15 of 19, by Jo22

User metadata
Rank l33t++
Rank
l33t++
och wrote on 2023-05-26, 17:40:

What about video cards? I understand all graphics in DOS were processed by the CPU, and the video cards were just more or less dummy frame buffers and the only difference in speed were due to different bus speeds and memory speeds? This is vs modern GPUs that offload most of the rendering from the CPU.

There were a few intelligent graphics card types back then, albeit they weren't called "GPU" yet. That was introduced by Nvidia in 2000.

80s
- IBM PGC, 640x480@256c, based on an 808x CPU, video timings later used by VGA
- IBM 8514/A, 640x480@256c and 1024x768@256c, supported by OS/2 v1.1 and up
- TIGA, fully programmable, powerful but not necessarily fast
- IBM XGA, replacement for 8514/A

mid 90s
- S3 ViRGE, slow because of too much features
- Nvidia NV1, can't draw triangles
- Nvidia Riva
- GLint MX+GLint Delta combo (2D/3D)
..

late 90s, misc
- Voodoos, S3 Trio3D etc
..

Edit: The Mindset PC from the 80s had a programmable graphics hardware.
Never saw widespread use, however. So irrelevant in practice.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 17 of 19, by Tiido

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2023-05-26, 15:52:

The Amiga for example, had 4 independent mono channels that could pan to left/center/right and run at different sampling rates.

Not quite accurate, Amiga has the 4 x channels, but the panning is two permamently panned to left and two to right, one cannot choose where a particular channel pans to.
The channels don't run purely asynchronously to each other either, the base timing comes from a freq related to video chipset and everything the chip does is a division of that. I don't know exact timings though, my familiarity with Amiga at low level is lacking compared to some of the other hardware.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 18 of 19, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Tiido wrote on 2023-05-27, 06:11:
Jo22 wrote on 2023-05-26, 15:52:

The Amiga for example, had 4 independent mono channels that could pan to left/center/right and run at different sampling rates.

Not quite accurate, Amiga has the 4 x channels, but the panning is two permamently panned to left and two to right, one cannot choose where a particular channel pans to.
The channels don't run purely asynchronously to each other either, the base timing comes from a freq related to video chipset and everything the chip does is a division of that. I don't know exact timings though, my familiarity with Amiga at low level is lacking compared to some of the other hardware.

Ah, I see. Makes sense. Thank you! I've found a source which describes it nicely, as well.

[..]The Amiga has 2 audio DMA channels hard-panned to the left, and 2 more for the right speaker.
This rules out panning, although you can extract left and right channels of a stereo instrument (or sample it on a stereo sampler using its provided software)
and play the samples in two channels to preserve panning or other stereo effects in the sound.
This is memory-hungry and hogs half of the channels available, so usually all instruments are mono.
The instruments are then used in music programs such as Protracker to compose a song, and stereo effects such as pan and echo (delay)
are created manually where needed, so that the notes occupy two channels only temporarily. [..]

http://coppershade.org/articles/More!/Topics/ … ples_For_Amiga/

It seems that's why I got it wrong ways. 😅
Still, it's nice what the Paula could do. If she only was 12 or 16 rather than 8. Bit, I mean. 😁

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 19 of 19, by Scali

User metadata
Rank l33t
Rank
l33t
Tiido wrote on 2023-05-27, 06:11:

The channels don't run purely asynchronously to each other either, the base timing comes from a freq related to video chipset and everything the chip does is a division of that. I don't know exact timings though, my familiarity with Amiga at low level is lacking compared to some of the other hardware.

Yes, the base frequency is the the DMA speed, which is ~3.5 MHz (slight difference between NTSC and PAL).
The sample rate for each channel is selected by setting a divisor value for the base frequency to the so-called 'period register' of the channel.
The divisor needs to be 123 ticks or higher, which effectively means you are limited to about 28.8 kHz sample rate via DMA.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/