Important: Inside Macintosh: Sound is deprecated as of Mac OS X v10.5. For new audio development in Mac OS X, use Core Audio. See the Audio page in the ADC Reference Library.
Comp3to1
You can use theComp3to1
procedure to compress sound data at a ratio of 3:1.
PROCEDURE Comp3to1 (inBuffer: Ptr; outBuffer: Ptr; cnt: LongInt; inState: Ptr; outState: Ptr; numChannels: LongInt; whichChannel: LongInt);
inBuffer
- A pointer to a buffer of samples to be compressed.
outBuffer
- A pointer to a buffer where the samples are to be written.
cnt
- The number of samples to compress.
inState
- A pointer to a 128-byte buffer from which the input state of the algorithm is read, or
NIL
. To initialize the algorithm, this buffer should be filled with zeros.outState
- A pointer to a 128-byte buffer to which the output state of the algorithm is written, or
NIL
. This buffer might be the same as that specified by theinState
parameter.numChannels
- The number of channels in the buffer pointed to by the
inBuffer
parameter.whichChannel
- The channel to compress, when
numChannels
is greater than 1. This parameter must be in the range of 1 tonumChannels
.DESCRIPTION
TheComp3to1
procedure compressescnt
samples of sound stored in the buffer specified byinBuffer
and places the result in the buffer specified byoutBuffer
, which must be at leastcnt/3
bytes in size. The original samples can be monophonic or include multiple channels of sound, but they must be in 8-bit offset binary format. Also, ifnumChannels
is greater than 1, then the noncompressed sound must be stored in interleaved format on a sample basis.If you compress polyphonic sound, you retain only one channel of sound, which you specify in the
whichChannel
parameter. Thus, if you use theComp3to1
procedure to compress three-channel sound, you will have effectively compressed the sound to one-ninth its original size in bytes. To retain multiple channels of sound after compression, you must call theComp3to1
procedure for each channel to be compressed and then interleave the compressed sound data on a packet basis.The
Comp3to1
procedure compresses every 48 bytes of sound data to exactly 16 bytes of compressed sound data and compresses remaining bytes to no more than one-third the original size.You can use the
inState
andoutState
parameters to allow the MACE compression routines to preserve information about algorithms across calls. Alternatively, you may passNIL
state buffers and let the Sound Manager allocate the buffers internally.SPECIAL CONSIDERATIONS
Because theComp3to1
procedure might allocate and dispose of memory, you should not call it at interrupt time.ASSEMBLY-LANGUAGE INFORMATION
The trap macro and routine selector for theComp3to1
procedure are
Trap macro Selector _SoundDispatch $00040010