The "Paula" chip used for sound output in all Amiga computers had 4 8bit sound channels (arguably comparable to 9bit stereo).

There were programs/libraries which could play 14bit stereo on the Amiga - how did these work?

How much were they used?


As the sound channels had independent linear 64-step volume control (6 bits + mute setting), by calibration and splitting sample bits for one 14bit waveform across two channels, two-channel 14bit (stereo) sound could in principle be improvised using all 4 channels.

This would be done by playing

  • A coarse part of the waveform generated from the higher 8 bits at full volume on one channel.

  • A fine part of the waveform with the lower 6 bits at volume 1 on another channel on the same stereo "side". (If trying to play a 16bit waveform, the lowest two bits would be discarded.)

However, this would then require additional real-time mixing of waveforms by the CPU to play more than two independent logical "channels", as opposed to much typical Amiga music using 4 physical channels and no real-time mixing - for example one channel for instrument, one for accompaniment with pre-mixed chords, one for bass and one for percussion.

It would also require mixing or at least scaling for volume changes on a 14bit "channel", as the volume levels would be locked in to allow 14bit resolution.

The A1200 had the 14MHz Motorola 68020 - at a sampling frequency of 28kHz, that would give ~500 clock cycles for each sampling point or ~1000 for 14KHz playback.

The 7MHz 68000 A1000, A500 and A600 models would have half that number of clock cycles for each sampling point, so ~250 for 28KHz and ~500 for 14KHz.

That gives scope for mixing, however, I only remember a simple 14bit playback program, which could handle PC Fasttracker formats and a composing program called DeliTracker.

Perhaps one of the problems was that it would be difficult to do the normal pitch control by playing back waveforms with different sampling frequencies, as these would have to be interpolated into the mixing.

For example, to play a waveform that needs 25KHz for a particular note and another waveform (or the same) that needs 9KHz for another (in that case lower) note, you would ideally mix at a much higher frequency, but if you are limited to 28KHz, you have to "force" the other waveforms to fit your sampling period the best you can as these numbers are not divisible.

I imagine that with the typical sampling frequencies possible with the CPUs at hand that would have resulted in a loss of quality, which might have been the main limitation. Does anybody know whether that is correct?

  • Does volume being implemented as PWM have an impact?
    – rcntxtlztn
    Apr 29 '16 at 2:48
  • @rrrzx In terms of bit resolution, it shouldn't as the PWM modulation is on/off, no levels in between. In principle the chopping of a signal into square blocks/waves adds extra frequency components (noise, think switching clicks) to the fine waveform (bits 9-14). But this would be the case for "normal" playback too anywhere below volume level 64. Normally a low pass filter helps help smooth the 8 bit signal steps (and PCM effects when using volume control). But I don't know if the Amiga low pass filters would have a comparatively worse effect on the edge case of the fine waveform - good point.
    – nsandersen
    Apr 29 '16 at 17:52
  • Actually I think the PWM steps are sub-microsecond, corresponding to MHz frequencies, so the noise components should be either inaudible or well suppressed by the Amiga low pass filter (or this kind of volume control would work badly, I guess).
    – nsandersen
    Apr 29 '16 at 17:59
  • DeliTracker is not a composing program, tho. It's a player. And yes, it has 14 bit playback routines. Eagleplayer and HippoPlayer have them, too. There was also PlayS3M (PS3M for short), which would only play back S3M format modules and was also able to produce 14 bit output. May 1 '16 at 11:01
  • And yes, you are correct that mixing at that comparatively low frequency would incur a loss of quality. There's nothing that can really be done about it except employing various techniques to at least keep the quality loss as low as possible. And that's what those multi-format players usually did. Some simple methods are linear interpolation (which usually dulled down chipsound-style tunes, so you shouldn't use that for those), cubic interpolation or oversampling and subsequent downsampling. There are more intricate ones that I don't know off the top of my head. May 1 '16 at 11:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.