From mailserv@gaia.ucs.orst.edu Sun May  1 16:14:43 1994
Precedence: Bulk
Date: Sun May  1 14:05:26 PDT 1994
From: gus-sdk-request@gaia.ucs.orst.edu (GUS Programmer's Server)
Reply-To: gus-sdk@gaia.ucs.orst.edu (GUS Programmer's Digest)
Subject: GUS Programmer's Digest V11 #1

GUS Programmer's Digest     Sun, 1 May 94 14:05 PST      Volume 11: Issue   1 

Today's Topics:
                       voices generating IRQ's

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: Sun, 1 May 1994 15:04:05 +1000 (EST)
From: s921880@minyos.xx.rmit.EDU.AU (Adam Craig Seychell)
Subject: voices generating IRQ's

   I am trying to play a continuous sample using the roll over feature of
the GUS. I managed to get it working after many hours of fiddling. As a
result I found out some things about the GUS that the SDK does not
explain properly or not at all.
    I found that if the Roll over bit is  enabled but looping is also enabled
then the voice will not roll over instead it loops normaly. The SDK
incorectly states that the looping bit has no effect on the roll over !
    I also found that if the voices current location is above or equal to the
ending location and IRQs are enabled then the voice will generate IRQ at a
rate of it's update frequency. for example, for 14 active voices, a voice will
generate 44100 IRQ's a second if it's location is >= to the end location.
This is assuming the IRQ's are being services ( i.e reading the IRQ source
register in the IRQ handler )
    When looping is enabled only one IRQ will be generated because it's
current location equals the ending location only once. If looping is disbled
and roll over is also disabled the voice will repetivly  generate IRQ's 
when it hits the ending location because the current location is stoped
on the ending. The same goes for when looping is off and roll  over is
enabled.
The SDK doesn't explain this effect properly.
 The SDK also doesn't explain anything about reading the DRAM DMA control
registers at every time an IRQ is generated by the DMA terminal count. If
it's not read then only the first IRQ is ever generated.

BTW, I am programming the GUS at register level in assembler and not
using any of the SDK library.  
 

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

End of GUS Programmer's Digest V11 #1
*************************************

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

FTP Sites              Archive                       Directories
---------              -------                       -----------
Main N.American Site:  archive.orst.edu              pub/packages/gravis
                       wuarchive.wustl.edu           systems/ibmpc/ultrasound
Main Asian Site:       nctuccca.edu.tw               PC/ultrasound
European Callers ONLY: theoris.rz.uni-konstanz.de    pub/sound/gus
Submissions:           archive.epas.utoronto.ca      pub/pc/ultrasound/submit
Newly Validated Files: archive.epas.utoronto.ca      pub/pc/ultrasound
Mirrors:               garbo.uwasa.fi                mirror/ultrasound
 
MailServer For Archive Access: Email to <mail-server@nike.rz.uni-konstanz.de>

Hints:
      - Get the FAQ from the FTP sites or the request server.
      - Mail to <gus-sdk-request@mail.orst.edu> for info about other GUS
	related mailing lists (general use, musician's, etc.).


