8

The Apple IIGS has a wavetable synthesis sound chip with dedicated 64 kilobytes of RAM.

I assume the sound architecture dictates that samples have to be loaded into that dedicated RAM to be able to be played from there.

64 kilobytes is not so much, but I assume that a playback routine can import samples from the main RAM and swap them out during playback any time on-the-fly in the background, should a piece of music have a large set of instruments.

The Amiga has no such dedicated RAM as far as I know, it apparently just plays back all samples from the main RAM, which is usually at least 512 kilobytes large.

So could there be the situation in a piece of MOD music when a set of samples required to be played back at a certain time is too large to fit into the Apple IIGS 64kb?

If so, do the currently available MOD players handle that situation already? Do they cut and split the samples in question just-in-time, and is this process fast enough, or how else would that process work?

4
  • I remember that every IIgs MOD player had a list of features it did and didn't handle. I don't remember seeing one that claimed to handle all files fully.
    – fadden
    Oct 5, 2020 at 14:36
  • 1
    IIgs can play many of the simpler/earlier Amiga MODs quite well. The big difference is it has to take over the whole machine. Amiga does it in a window with minimal CPU usage.
    – Brian H
    Oct 5, 2020 at 18:27
  • 1
    that "sounds" like an approach that can achieve to play any MOD by using the 64 kb RAM as a continuous buffer for streaming, which is also described in @Tommy 's answer below, but with the tradeoff you mention. Paradoxically, relying on the CPU is exactly what such an architecture with the dedicated chip and its own RAM was trying to prevent. MODs were designed for the Amiga after all. The Apple IIGS requires more careful tailoring. Had it become dominant platform, then the world of music file formats would likely have looked very differently. Oct 5, 2020 at 22:56
  • Amiga sound is purely sample based. Playing sound through DMA requires Chip RAM, the lower 256 to 2048 KiB memory. Using Fast RAM, you would need to feed Paula through the CPU.
    – Zac67
    Nov 7 at 18:14

2 Answers 2

6

There are many routine features of a MOD that do not map directly to the IIGS sound hardware — besides the 64kb limit, the Ensoniq also requires samples to be a power-of-two in size and will loop entire samples only. MODs frequently have a loop point somewhere after the start. On the plus side it can trigger an interrupt at the end of any channel's playback and has a single-shot playback mode in addition to looping.

The larger number of available channels on the Ensoniq can somewhat make up for the looping point if you split the sample into the start bit plus the looping bit, and at least one player — Noise Tracker — resolves the 64kb issue with active streaming, though it then becomes almost a whole-CPU operation because the 64kb is not directly accessible to the CPU, it's accessed via a pointer register and data register.

NinjaTracker is the most recent open source tracker for the IIGS that I could find, and doesn't do instrument streaming but seems to support a wider array of MOD effects; as a bonus it can work with MODs of up to 14 channels, which is obviously a lot more than you can do on a vanilla Amiga.

So: I think the answer is 'no', at least in any currently-implemented solution, as I cannot find one which both breaks the 64kb barrier and supports the full range of audio effects.

3
  • 1
    Now I'm curious if the opposite is true, i.e. were there soundfiles for the IIGS that couldn't be played on an Amiga because they required advanced functionality of the Ensoniq chip that whatever Amiga's equivalent(s) couldn't support
    – Foon
    Oct 5, 2020 at 14:28
  • 1
    There should be in principle; the Ensoniq supports up to 32 channels of audio whereas the Amiga supports only 4; the built-in OS reserved two of those oscillators as an interrupt source and paired off everything else to make stereo channels but 15 is still a lot more than 4. I've no idea what examples exist though — there's just not a lot of software for the IIGS in total, and I'm only just starting to explore.
    – Tommy
    Oct 5, 2020 at 15:17
  • the Amiga's 4 channels are also just 2x left and 2x right hard-panned. Oct 6, 2020 at 0:06
3

There is a newer version of NinjaTracker (NinjaTracker Plus) that supports almost all of the (traditional) MOD effects and supports streaming of instrument samples. It should be noted that NinjaTracker requires conversion of the MOD first to its own format, and this is to better facilitate positioning samples into the Ensoniq's requirements vs. trying to do it at load or runtime. It will try to fit as many samples as possible into the 64k of dedicated RAM, but will stream larger samples- so it is not an all or nothing thing as implied above in regards to CPU usage. It will just require CPU usage in proportion to the number of instruments it's forced to stream from main RAM.

Songs can play entirely in the background similarly to Amiga players (CPU usage differences aside) and need not "take over the whole machine."

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .