Apparently-To: john.smith@gravis.com


GUS Programmer's Digest     Fri, 22 Oct 93  4:09 MDT     Volume 5: Issue  18  

Today's Topics:
                    GUS Programmer's Digest V5 #17
                     MIDI file description (fwd)
                          UltraClick removal

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: Thu, 21 Oct 1993 10:46:36 -0400 (EDT)
From: dionf@ERE.UMontreal.CA (Francois Dion)
Subject: Re: GUS Programmer's Digest V5 #17

> From: cowles@hydra.convex.com (John Cowles)
> Subject: Re: MIDI file description
> 
> I am aware that some time ago I promised to upload a list of
> midi controllers, but have not done so yet - they're still coming;

Here is what i have. I'm sure there is more, but it's a start:
cntlr  name
 ------------------------------
0  -   bank change
1  -   modulation
2  -   breath
4  -   foot controller
5  -   portamento time
7  -   volume
8  -   balance
10 -   pan
11 -   expression
64 -   pedal sustain
65 -   portamento
66 -   pedal sostenuto
67 -   pedal soft
69 -   hold 2
91 -   external effects depth
92 -   tremolo depth
93 -   chorus depth
94 -   celeste (detune) depth
95 -   phaser depth

Now, i'm not sure bank change works (it's supposed to on the latest drivers),
volume, balance, pan and expression works. Anything else?

BTW, how do you change the pitch bend depth? And how can you change the balance
or paning or volume of one percussion on channel 10??

> From: support@fortech.com (Technical Support)
> Subject: Tune parameter in patch file
> 
> Hi folks,
> 
> I talked to some people here about the tune parameter in the patch files
> and here is the basic response.
> 
> The tune field has been obsolete for quite a while. (since around late '92)

No wonder tune=1 works. :)

> The only software that may
> attempt to use it would be stuff from the ORIGINAL high level SDK. VERY
> few people have that and as far as we know, nobody is attempting to use
> it in an application.

Actually i would have prefered using it instead of the low level one. 


> We have tried to steer people toward the lowlevel
> SDK or UltraMid.

I'd go for Ultramid, but you cant load patches in 16 bit... Also, it doesn't
work on a XT does it?

> That software is MUCH better and is being updated
> quite frequently with enhancements and bug fixes.

Still, is there an updated high level sdk? I have pretty much given up on a
GUS midi engine... No wonder most of the support for the GUS is with ultramid.

Ciao,
-- 
Francois Dion
    '  _   _   _ 
 CISM (_) (_)  _) FM       Montreal , Canada       Email: CISM@ERE.UMontreal.CA
      (_)  / . _)             10000 Watts          Telephone no: (514) 343-7511
_______________________________________________________________________________
Audio-C-DJ-Fractals-Future-Label-Multimedia-Music-Radio-Rave-Video-VR-Volvo-...

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

Date: Thu, 21 Oct 93 14:14:26 CET
From: mico@trzdor1.ico.olivetti.com (Michele Costabile)
Subject: Re: MIDI file description (fwd)

John Cowles says:
|
|I think you'll find a midi file description on ucsd.edu.
|
|I am aware that some time ago I promised to upload a list of
|midi controllers, but have not done so yet - they're still coming;
There is a midi file description and also a list of controllers on
ucsd.edu under /midi/doc, very short, just a list.
-- 
					Michele (mico@trzdor1.olivetti.com)

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

Date: Fri, 22 Oct 1993 00:21:44 -0400
From: Greg Chung <gchung@pegasus.rutgers.edu>
Subject: UltraClick removal

I've recently been having trouble removing the UltraClicks which exist
at the start and end of a sample.  Common ideology is to simply volume

ramp them away, but I haven't had too much luck with them.

During playback of many samples, such as in a MOD or like, clicking is
really a problem.  I've tried simply starting a volume ramp right
before the sample starts, and starting another right after the sample
ends.  Neither ramp has been very successful in removing anything.  In
detail:

Starting sample:  first, I set the volume to something low.  Then I
initiate the volume ramp to the desired volume, using the fastest
possible rate.  Then I start the voice.  Still clicks.

Ending sample:  I have the end of the sample set to generate an
interrupt, and in the callback function I initiate a ramp to a low
volume, against at fastest possible rate.  Admittedly, since I'm
starting the ramp AFTER the voice ends maybe this should do anything
anyway.  But since the click itself is some weird phenomenon that
manifests itself after the sample ends, who knows?

Either I'm using the right strategy, but implementing the ramps
incorrectly, or I'm just plain using the wrong strategy.  If you have
an idea, please reply...

I've come up with alternative methods of click removal, based on my
theory that it is too late to initate a ramp right before/right after
a sample starts/end.  In the context of one particular voice which has
to play many samples in succession (such as in a MOD player):

1)  Start the ramp early by putting a small delay between the ramp
start and the start of the sample.  Start the ending ramp early by
causing the interrupt to be generated early.  (Doubtful this will
work)

2)  Always have the voice on, most of the time set to loop at a set
position (a null sample).  When it's time to play something, set up
the
ramps and just change the sample begin/end locations so it points to
the right place.  This is based on the theory that clicks don't come
from a change in data so much as from turning the voice on/off.

3)  When a voice ends, have it point to a set position made of an
average 8-bit value (128?).  This is based on the opposite of #2;
that clicks are caused by a change from the previous output to the
first bytes of the new sample.  Right now I don't really do anything
when a voice stops, other than shut off the volume.  This means that
the voice is still roaming around in memory.  If the last value the
voice points to is zero (low) then the first value of a sample is
255 (high), that should create a click, right?

Anyway -- the SDK isn't very helpful on the removal of the clicks, but
apparently everyone else in GUSland has figured out what to do with
them.  Any clues or advice is appreciated... 

Sorry for the long post (not like this is a high volume digest
anyway),
Greg

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

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

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.).



