[comp.sys.atari.st.tech] STe volume and tone controller

AAron@image.soe.clarkson.edu (AAron nAAs) (07/16/90)

I am having a problem understanding this information about the volume and
tone controller, question at the bottom.  This is all the info I have on it.

>Information from "Atari STE Developer Information Addendum"

>STE DMA Sound registers

>Register    Access      Description

>FF8922      R/W      MICROWIRE data register
>FF8924      R/W      MICROWIRE mask register

>Volume/controller commands (device address is always 10)
>--------------------------------------------------------

>011 DDD DDD Set master volume
>    000 000 -80 dB
>    010 100 -40 dB
>    101 XXX   0 dB

>101 xDD DDD Set left channel volume
>     00 000 -40 dB
>     01 010 -20 dB
>     10 1xx   0 dB
>
>100 xDD DDD Set right channel volume
>     00 000 -40 dB
>     01 010 -20 dB
>     10 1xx   0 dB
>
>010 xxD DDD Set treble
>      0 000 -12 dB
>      0 110   0 dB
>      1 100 +12 dB
>
>001 xxD DDD Set bass
>      0 000 -12 dB
>      0 110   0 dB
>      1 100 +12 dB
>
>000 xxx xDD Set mix
>         00 -12 dB
>         01 Mix GI sound output (ST sound chip)
>         10 Do not mix GI sound output
>         11 Reserved
>----------------------------------------------------------
>
>The volume and tone controller of the STE is connected via a MICROWIRE 
>bus interface. The idea behind this is that further devices can be added 
>to the bus in the future. The MICROWIRE bus is a simple three wire 
>serial connection, with a protocol to allow multiple devices to be 
>controlled individually.
>
>In the general case, the data stream consists of N address bits, 
>followed by zero or more don't care bits, and then M bits of data. The 
>actual hardware interface in the STE consists of two 16 bit read/write 
>registers, one for the data to be shifted out, and a mask indicating 
>which bits are valid.
>
>A one in any bit of the mask indicates that the corresponding bit in the 
>data register is valid. Data transmission starts as soon as the data 
>register has been written to, so the mask register must be loaded first. 
>Sending takes approximately sixteen micro-seconds, and if the data 
>register is read during this time, a 'snap-shot' of the data being 
>shifted out will be obtained. This means that if you wait for either 
>register to return to its original state, you can be sure that sending 
>has been completed.
>
>The volume/tone controller is addressed by a two bit address field of 
>%10 (binary) and a nine bit data field. Table One details the commands 
>that can be sent to the device, and the addresses of the MICROWIRE 
>registers in the STEs memory map. Actually sending these commands is 
>easier than it looks. Simply set the mask register to $07FF, and place 
>the data in the lower nine bits with %10 in the upper two bits.
>
>For example, setting the mask to $07FF and the data register to $04C4 
>will set the master volume to $14. That's all there is to it!
>
>
>Regards,
>
>Mathew Lodge

Are the Master/Left/Right volume, Treble, Bass and Mix levels all restricted
to the two or three values listed in the table?

How about the example?  $04C4 is

            0 0 0 0  0|1 0|0  1 1|0 0  0|1 0 0|
                      |   |      |      |     |
                      |dev| MVol |      |     |
                      |   |      |this and this
                      |   |      |aren't in the same row of the table!!!

       and it says that sets the volume to $14 (20 dec.)
       That isn't even listed in the table, only 0,40 and 80 !!!

Does all of this make sense to anyone?
I would like to understand the volume/controller to add this stuff to
my STe sound player program!!

BTW, if you would like the current version of the sound player, write to
me and I will send it to you, I already have it prepared to send...

AAron nAAs
AAron@sun.soe.clarkson.edu

hyc@math.lsa.umich.edu (Howard Chu) (07/17/90)

In article <1990Jul16.025531.29249@sun.soe.clarkson.edu> AAron@image.soe.clarkson.edu (AAron nAAs) writes:
 Think of these values as being tick-marks on, say, a thermometer. They're
 just guidepoints; you can stick other values in and will get other sound
 levels out. These points just show the trned and the available range.

%>Volume/controller commands (device address is always 10)
%>--------------------------------------------------------
%
%>011 DDD DDD Set master volume
%>    000 000 -80 dB
%>    010 100 -40 dB
%>    101 XXX   0 dB

%Are the Master/Left/Right volume, Treble, Bass and Mix levels all restricted
%to the two or three values listed in the table?
--
  -- Howard Chu @ University of Michigan
  one million data bits stored on a chip, one million bits per chip
	if one of those data bits happens to flip,
		one million data bits stored on the chip...