VOGONS


First post, by blakespot

User metadata
Rank Member
Rank
Member

I have an original Gravis Ultrasound v3.73 that I added to my 486 back in 1994. Before that I used an Apple IIgs, with the Ensoniq DOC 5503, which is basically the predecessor to the GF1 in the GUS.

The DOC and the GF-1 have 32 oscillators. In the Ensoniq Mirage keyboard, the 5503's 32 oscillators are divided across 8 voices, 4 to a voice. On the Apple IIgs, it's 15 voices, each with two oscillators. Presumably there is one oscillator per voice on the GUS, as it can playback 32 hardware channels. (I am unsure if it shifts to 2 oscillators per voice at <16 channels, etc.)

In the context of digital audio, I see the term oscillator described in various terms that don't quite align. (It's being discussed in oddly passionate terms in one forum post I found.)

I am posting to hope and get an idea of how an oscillator actually works and why some sound chips had them and then the associated literature of others make no mention of them.

My vague understanding is that the oscillator is where digital waveform data is turned into varying voltage outputs (analog) that goes out to the speakers. I also vaguely infer that in many systems, the digital audio stream goes to a DAC, which performs the translation to varying power levels to make sound. Is a group of oscillators an alternative approach to a general DAC?

I thought some well-versed GUS (or Mirage or Apple IIgs) aficionados might be able to shed some light.

(I started thinking about this in relation to the relatively new product, the PicoGUS, which uses an RPi Pico to emulate a GUS, but I assume there are no oscillators, as such, in that chain.)

Cheers.

bp

:: Visit the Byte Cellar, my vintage computer blog (since 2004).
:: See a panorama of my own Byte Cellar (a.k.a. basement computer room)...
:: twitter: @blakespot

Reply 1 of 2, by Shponglefan

User metadata
Rank l33t
Rank
l33t

The confusing thing about sound card and synthesis terminology is terms often get conflated when describing different things.

In traditional analog synthesis, an oscillator is a basic wave form generator. Typically this would be a sine wave, triangle wave or square wave. This signal would get run through additional circuitry (e.g. filters, amps, gates) which would further shape the signal into its final sound output.

In the case of the GUS, it is using digital PCM samples for audio generation. That is what an "oscillator" is in this context. The reference to 32 "oscillators" simply means it can play and mix up to 32 mono PCM samples simultaneously (or 16 stereo PCM samples).

Pentium 4 Multi-OS Build
486 DX4-100 with 6 sound cards
486 DX-33 with 5 sound cards

Reply 2 of 2, by digistorm

User metadata
Rank Member
Rank
Member

I don't know the actual implementation of the GF1, but I did some software synthesis when I was in college. Basically, when you have a wavetable or sample based music system, for every channel you keep track of the position of where you are in the sample. Each output cycle you update your position with an addition that is proportionate to the pitch of your voice. If your sample position exceeds the pre-defined loop boundary, you wrap it around. You then use your sample position to look up the data to be used, using some interpolation to account for the fractional portion of the current position.
The GUS has no notion of "multiple samples per voice" because it is just doing a bunch of math and keeping track of a bunch of variables. In a lot of synthesizers, more than one sample is used to create a layered sound or just to save space. For example, if you sample the sharp attack of a piano (the hammer) and the sustained sound of the string, you can optimise the latter sample with a small loop instead of using a lot of memory to store the complete sound of the piano note. But this costs (temporarily) an extra hardware channel. The GUS doesn't do any such thing, but it was designed so that the middleware or end user software would take care of such things.