[net.sources.d] PC voices -- I should be surprised?

allbery@ncoast.UUCP (Brandon Allbery) (10/24/86)

Quoted from <270@ndmce.uucp> ["3-part harmony on a PC"], by ted@imsvax.UUCP@ndmce.uucp (Ted Holden)...
| How many voices does the PC speaker have?  Try this one and you be the
| judge.  Steve Muenter's (Rocketdyne) technique, no fakery involved.

I should be surprised?  I had (still have, in fact) an OSI Superboard II,
with provision for a speaker which was activated via a DAC.  I also had
a simple program which implemented a 4-voice music synthesizer with user-
definable waveforms for each voice.  Doing this by flipping a single bit
in an IBM PC (the other method of generating sound wouldn't work too well)
would be difficult, but not absolutely impossible.  Simply use the DAC
input table as the current bit-flipping frequency and grab the clock
interrupt to determine when the next voice or DAC table entry should be
used.  Since those actions wouldn't require DOS accesses (the tables
would be in memory), there would be no conflict problems or DOS re-entrancy
problems with the clock interrupt.  Maybe someone with more smarts than
myself could figure out the same trick with the 8253 chip; I don't know
enough about those kinds of noisemakers, but the 8253, a busy loop in the
main program and a clock interrupt to flag a change in voice would seem
to be a good idea.

  ---------------- /--/	Brandon S. Allbery		UUCP: decvax!cwruecmp!
 /              / /|\/	Tridelta Industries, Inc.        ncoast!tdi2!brandon
----    -------- /-++	7350 Corporate Blvd.		PHONE: +1 216 974 9210
   /   / /---,  ----	Mentor, Ohio 44060		SYSOP: UNaXcess/ncoast
  /   / /    / /  /	     -- HOME --			 (216) 781-6201 24 hrs.
 /   / /    / /  /	6615 Center St. Apt. A1-105	ARPA:  ncoast!allbery%
----  -----~ ----	Mentor, Ohio 44060-4101		case.CSNET@relay.cs.net