home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Da Capo
/
da_capo_vol1.bin
/
programs
/
amiga
/
edit
/
soundeffect
/
developers
/
developers.doc
next >
Wrap
Text File
|
1995-02-14
|
5KB
|
147 lines
Developers.doc - Additional chapters of SOUNDEffect's documentation
(c) 1992-1994 Sven Bühling
May 1994
------------------------------------------------------------------------------
Contents
========
1. Support of Special Products
2. ARexx Port
3. Special File Formats of SOUNDEffect
3.1. Additional Chunks in IFF-8SVX Format
3.2. Usage of APPL Chunk in AIFF Format
3.3. Waves File Format
4. SampleClip
1. Support of Special Products
==============================
I intend to implement support for special audio related products like
sound cards or digitizers in future. Unfortunatly, it is impossible for me
to bye all these things which I would like to support. So I normally need
comlete routines for this hardware (in C, Assembler, object file or
library) and somebody to test this after implemention. If you are a
manufacter of such hardware or somebody else who wants to have something
supported in SE, I would appreciate if you sent me such routines.
2. ARexx Port
=============
There is no ARexx port implemented in SE yet. But in V3.0 (planed for WoC
'94) will be a least a small port for the i/o functions.
3. Special File Formats of SOUNDEffect
======================================
3.1. Additional Chunks in IFF-8SVX Format
-----------------------------------------
8SVX normally does not support stereo samples. Despite, I found a program
(AudioMaster) which can save stereo samples in 8SVX format. SOUNDEffect is
downwards compatible to this. Here a short description of that.
3.1.1. CHAN Chunk
This chunks contains only one long value defining a channel mode.
Probably there is one bit for each channel. But I do not have any
documentation about this chunk. So I tried out what values AudioMaster
writes in for mono and stereo samples.
The value for mono samples was always 2 - stereo samples got value 6. So
SOUNDEffect takes a sample as stereo 8SVX if it contains a CHAN chunk with
value different from 1, 2, 4 and 8.. (f.i. 'CHAN' 0x00000004 0x00000006)
3.1.2. BODY Chunk
In this case the BODY Chunk is splitted into two parts with equal lengths.
That means, the BODY chunk should be as long as (VHDR.oneShotHiSamples +
VHDR.repeatHiSamples) * 2.
So both channels always have the same length and loop settings. Sample data
after the end of the loop are not possible. In SE there are not these
restrictions. So I had to add additional chunks which are only supported by
SE itself (this time). If somebody wants to support these chunks in own
applictions, implementation should be possible with following information.
3.1.3. SEVH Chunk
This chunk is only saved into stereo samples. It contains infotion like the
VHDR chunk, but for the second channel.
ID "SEVH"
ULONG ckLength ( = 12)
ULONG OSP (one shot part like VHDR.oneShotHiSamples)
ULONG RP (repeat part like VHDR.repeatHiSamples)
ULONG LEN (length of 2nd channel)
3.1.4. SELE Chunk
This chunk is used to save sample data behind the loop of channel 1. So it
is only saved if channel 1 has a loop set which does not end at the end of
the sample.
3.1.5. SERI Chunk
This chunks is similiar to the SELE chunk. Here are seved data of channel 2
which do not fit into the BODY chunk. (That means data behind
VHDR.omeShotHiSamples + VHDR.repeatHiSamples of channel 1.)
3.2. APPL Chunk in AIFF Format
------------------------------
SOUNDEffect is now able to save samples in AIFF-C format. Although this
format is much more powerful than 8SVX there are some restrictionn, too.
That's why I had to use the APPL chunk which is thought for application
specific data.
ID "APPL"
ULONG ckLength
ID "stoc"
pstring "SOUNDEffect" (Pascal String -> 1st Byte == Length )
ULONG Version (==1)
ULONG len1 (Length of 1st channel)
ULONG len2
ULONG osh2 (Loop of 2nd channel)
ULONG rhs2
3.3. Waves File Format
----------------------
Somebeody who wanted to geneate waves from mathematical functions asked me
for the format of Waves. They are saved in the following way:
ID "WAVE" (Indicates file type AND version)
short EchoFlag (normally 0; 1 for echo buffers)
1000 B. WaveData (Wave data - always 1000 bytes long)
4. SampleClip
=============
SampleClip is a library to make the exchange of samples between different
programs much easier. One defined key pressing will be enough to transfer a
sample between two applications. But the package is not released yet. If
you have programmed an own audio application and are interested in
supporting this, please email to fhoffman@banach.informatik.uni-dortmund.de
or to me to get more information.