I've gathered here a bit of technical details about the GF1. Some may not interest
everyone, but I hope coders and hardware freaks will find this stuff enjoyable
GF1 playback frequency
The Gravis GF1 is a pipeline processor, capable of processing a maximum of 32 voices. As servicing one pipeline takes 32 clock cycles and the clock for GF1 comes from a 19.7568MHz crystal (at least all of my Ultrasounds have one), we can calculate that servicing one voice uses
microseconds. This result points us to a small quirk that has slightly annoyed people programming the GF1 directly. To achieve 44100Hz playback rate, one must use no more than 14 voices since the GF1 cannot service voices quickly enough if 15 or more voices are active. With the equation
for the playback rate given in GF1 SDK documentation, we can calculate a table for the playback frequencies:
To make a sample play at the same speed regardless of the number active voices, the programmer must calculate a new voice frequency using the equation:
So for 16 voices, the actual playing frequency for note frequency 8363Hz should be:
GF1 chip pinouts?
The Gravis GF1 comes in a 84pin PLCC package, fitted into a socket on earlier boards but on ACE and Extreme it's soldered directly to the board. The socketed version could be removed and used with homebrew electronics projects. For example, it would certainly be interesting to try to interface the GF1 with an Amiga A1200. So if anyone has the pinouts of the GF1, I'd be really delighted to get them.