Apparently-To: john.smith@gravis.com


GUS Programmer's Digest     Wed, 20 Oct 93  3:28 MDT     Volume 5: Issue  16  

Today's Topics:
          *** WARNING *** : DIGEST SPLIT & NEW ADDRESS ALERT
                             Midi Format
                    Playing music and SFX in games
                              sample CR

Standard Info:
	- Meta-info about the GUS can be found at the end of the Digest.
	- Before you ask a question, please READ THE FAQ.

----------------------------------------------------------------------

Date: Tue, 19 Oct 1993 16:12:03 -0600 (CDT)
From: ddebry@grue.dsd.ES.COM (Dave DeBry)
Subject: *** WARNING *** : DIGEST SPLIT & NEW ADDRESS ALERT

	READ THIS WHOLE MESSAGE CAREFULLY!  I DON'T WANT TO HAVE TO
ANSWER THESE QUESTIONS AGAIN!

	There is no such thing as the Ultrasound Daily Digest anymore.

	The Ultrasound Daily Digest has been replaced with the GUS
Daily Digest (I'm trying to get these all commonly named, so bear with
me).  This list is for general discussions about the GUS, including
(but not limited to) troubleshooting, installation, working with games
and other software, etc.  Here are the addresses:

	gus-general@dsd.es.com		To post to the digest
	gus-general-request@dsd.es.com	Subscribe, unsubscribe, files, etc.
	gus-general-owner@dsd.es.com	Use this if the automated request
					line fails.

	I have moved the SDK list.  This list is for discussion on
programming the GUS.  Here are the new addresses:

	gus-sdk@dsd.es.com		To post to the digest
	gus-sdk-request@dsd.es.com	Subscribe, unsubscribe, files, etc.
	gus-sdk-owner@dsd.es.com	Use this if the automated request
					line fails.

	I have created a GUS Musician's digest.  This list is for the
discussion of writing and performing music with the GUS, as well as
any software or hardware related topics.  Here are the addresses:

	gus-music@dsd.es.com		To post to the digest
	gus-music-request@dsd.es.com	Subscribe, unsubscribe, files, etc.
	gus-music-owner@dsd.es.com	Use this if the automated request
					line fails.

	If you were subscribed to the Ultrasound Daily Digest, you are
now subscribed to the GUS Daily Digest.

	If you were subscribed to the SDK Digest, you still are.

	NO ONE has been subscribed to the Musician's Digest.  You must
use the music request server to do this.

	Also, the directory hierarchy on archive.epas has been changed
to reflect these lists:

% ls /pub/pc/ultrasound/digest
general/        music/          sdk/

	The files originally in /pub/pc/ultrasound/digest have been
moved into /pub/pc/ultrasound/digest/general.

	The files originally in /pub/pc/ultrasound/sdk-digest have
been moved into /pub/pc/ultrasound/digest/sdk.

	The music digests will be placed into
/pub/pc/ultrasound/digest/music, in the same method they are in the
other directories, including the "daily" file.  This will start as
soon as the Musician's Digest starts getting messages.

-- 
Dave  ddebry@ debry@   \ 
DeBry dsd.    peruvian. | "Great googly moogly!"
      es.     cs.utah.  |
      com     edu      /  

------------------------------

Date: Tue, 19 Oct 1993 11:16:51 -0700 (PDT)
From: Lithium <lithium@u.washington.edu>
Subject: Midi Format

	Can anyone send me or direct me to a file, ftp site or whatever 
that has the format of a Midi file, it's commands, and the structure of 
the patch files?  I've been poking around for something to answer my 
questions with no success for a while.  VLA is going to add the Midi 
format to our sound driver soon, but the all important information isn't 
there....  Thanks in advance.
	Lithium /VLA

	lithium@u.washington.edu 
	  or
	vlasite@carson.u.washington.edu

------------------------------

Date: Wed, 20 Oct 1993 14:24:00 +0930 (CST)
From: Gavin <SCARMAN@hfrd.dsto.gov.au>
Subject: Playing music and SFX in games

OK, here's where I show my ignorance in programming for sound, but if I'm gonna 
put in GUS support I'd better learn somewhere.

People bitch about Ultramid saying it's not native support but just how do you 
do the timing in games yourself? Particularly with MIDI files, do you use an 
clock timer interrupt or something? Has anyone got any examples or know where I 
can find some on this?

I can certainly see why many games designers use ultramid and AIL, since it does 
all the hard work for you. Are games author's just using their own versions of 
an ultramid hard coded into their games?

Am I really losing anything if I use ultramid (apart from memory) if I'm 
designing the music an sfx from scratch thus I can use what GUS patches I want 
(including my own).

------------------------------

Date: Tue, 19 Oct 93 2:13:12 CDT
From: chuth@lonestar.utsa.edu (Cornel H. Huth)
Subject: sample CR

> [quote deleted]

But that was the basis of the following...

> >I've found the Appendix docs to be a rough draft of what's already in the
> >main section, at least when it comes to register descriptions. For a
> >rather complete run-down on the sampling control register (49h) check
> >out page 17.  I've yet to find a use for the Appendix stuff; it being
> >so incomplete as to be useless.

> All of the control bits of the various registers are not documented in the
> appendix because the appendix only documents those bits that the programmer
> can set when passing control bits to the SDK functions.  The first thing

Interesting, but I've yet to spend 5 minutes with the so-called SDK other
than the first part (the register-level docs). I've spent 3 months with
this. Enjoy every minute until I come across the total lack of Gravis-
provided patch info there or here. Lack of any sustaining support from
them also is a red-X. They must be having some serious problems somewhere
getting game vendors to use this card. It's a dog to program music for.
I get great results, but it took me 3 months for the music part and I've
been doing this type stuff for a pretty long time. I can say that there's
nothing much left to surprise me. The GUS went from a what-the-heck? to
another old-hat.

> that the SDK functions do is mask out the bits that aren't documented in the
> appendix.  Then the SDK functions set these masked bits to values which are
> "appropriate" for the operation being performed.  This is done, I presume,

Still fine, but the point I was making was not to rely on the appendix
docs. The bit you claimed was not in the appendix was indeed in the
docs but up in the register-level portion. Yes, I understand what you're
saying, too. And if you find that it makes it easier for you to not mess up
their LIB code (I've seem some of their redundant masking), okay, makes sense
I suppose to follow the appendix. However, that's the very reason I don't use
vendor-supplied drivers -- too many unknowns, let alone the lack of usefulness
and pretty much total lack of any sustaining support. As for unknowns, sure,
they give you the source to their LIBs, but, to me, it's the closest thing
I've seen to GW-BASIC code in a long time.

Since I've got nothing better to do writing to this all-too-often useless
SDK-digest, I'll grade the GUS SDK 2.01:

 Low-level register docs: good/useful to me
       digital-app level: fails/dink around maybe (but a waste of time)
         music-app level: fails miserably/useless (might as well toss it out)

If anyone finds it scores better, I'd certainly like to hear why and what
you accomplished with it.

Time to get to the Aria. This will not only be fun but EASY! Now, you want
to see a really good SDK, get theirs.

------------------------------

Date: Tue, 19 Oct 1993 03:31:41 -0400
From: Greg Chung <gchung@eden.rutgers.edu>

I've got a simple question regarding the SDK.  I am, of course, using the
high-level C routines in my C program.  However, the size of my executable
recently swelled over the 90K mark.  I know most of this is due to C overhead,
such as my use of the time() function.

I trimmed out as much of the GUS .c files as I could (the MIDI/joystick and
record functions, mostly), but the size of the GUS .obj's is still large.  Is
there an easy way to trim down the size of these functions?  My guess is that
all the inport()'s are adding up, but I don't really know enough assembly to
handle things like interrupt callbacks and DMA etc. 

Any suggestions would be appreciated.  Actual .ASM code converted from exact
C functions would be ideal...  I can't figure out what shortcuts are being
taken in things like gusmod, etc.

Thanks!
Greg

------------------------------

End of GUS Programmer's Digest V5 #16
*************************************

To post to tomorrow's digest:                    <gus-sdk@dsd.es.com>
To (un)subscribe or get help:            <gus-sdk-request@dsd.es.com>
To contact a human (last resort):          <gus-sdk-owner@dsd.es.com>

FTP sites:         archive.epas.utoronto.ca         pub/pc/ultrasound
                   wuarchive.wustl.edu       systems/msdos/ultrasound
Hints:
      - Get the FAQ from the FTP sites or the request server.
      - Mail to <gus-sdk-request@dsd.es.com> for info about other GUS
	related mailing lists (general use, musician's, etc.).



