home *** CD-ROM | disk | FTP | other *** search
/ Da Capo / da_capo_vol1.bin / programs / amiga / edit / soundeffect / developers / developers.doc next >
Text File  |  1995-02-14  |  5KB  |  147 lines

  1.  
  2. Developers.doc - Additional chapters of SOUNDEffect's documentation
  3.                                                  (c) 1992-1994 Sven Bühling
  4.                               May 1994
  5. ------------------------------------------------------------------------------
  6.  
  7.  
  8. Contents
  9. ========
  10.  
  11. 1. Support of Special Products
  12.  
  13. 2. ARexx Port
  14.  
  15. 3. Special File Formats of SOUNDEffect
  16. 3.1. Additional Chunks in IFF-8SVX Format
  17. 3.2. Usage of APPL Chunk in AIFF Format
  18. 3.3. Waves File Format
  19.  
  20. 4. SampleClip
  21.  
  22.  
  23.  
  24.  
  25. 1. Support of Special Products
  26. ==============================
  27.  
  28. I intend to implement support for special audio related products like
  29. sound cards or digitizers in future. Unfortunatly, it is impossible for me
  30. to bye all these things which I would like to support. So I normally need
  31. comlete routines for this hardware (in C, Assembler, object file or
  32. library) and somebody to test this after implemention. If you are a
  33. manufacter of such hardware or somebody else who wants to have something
  34. supported in SE, I would appreciate if you sent me such routines.
  35.  
  36.  
  37. 2. ARexx Port
  38. =============
  39.  
  40. There is no ARexx port implemented in SE yet. But in V3.0 (planed for WoC
  41. '94) will be a least a small port for the i/o functions.
  42.  
  43.  
  44. 3. Special File Formats of SOUNDEffect
  45. ======================================
  46.  
  47. 3.1. Additional Chunks in IFF-8SVX Format
  48. -----------------------------------------
  49.  
  50. 8SVX normally does not support stereo samples. Despite, I found a program
  51. (AudioMaster) which can save stereo samples in 8SVX format. SOUNDEffect is
  52. downwards compatible to this. Here a short description of that.
  53.  
  54. 3.1.1. CHAN Chunk
  55.  
  56. This chunks contains only one long value defining a channel mode.
  57. Probably there is one bit for each channel. But I do not have any
  58. documentation about this chunk. So I tried out what values AudioMaster
  59. writes in for mono and stereo samples.
  60.  
  61. The value for mono samples was always 2 - stereo samples got value 6. So
  62. SOUNDEffect takes a sample as stereo 8SVX if it contains a CHAN chunk with
  63. value different from 1, 2, 4 and 8.. (f.i. 'CHAN' 0x00000004 0x00000006)
  64.  
  65. 3.1.2. BODY Chunk
  66.  
  67. In this case the BODY Chunk is splitted into two parts with equal lengths.
  68. That means, the BODY chunk should be as long as (VHDR.oneShotHiSamples +
  69. VHDR.repeatHiSamples) * 2.
  70.  
  71. So both channels always have the same length and loop settings. Sample data
  72. after the end of the loop are not possible. In SE there are not these
  73. restrictions. So I had to add additional chunks which are only supported by
  74. SE itself (this time). If somebody wants to support these chunks in own
  75. applictions, implementation should be possible with following information.
  76.  
  77. 3.1.3. SEVH Chunk
  78.  
  79. This chunk is only saved into stereo samples. It contains infotion like the
  80. VHDR chunk, but for the second channel.
  81.  
  82.     ID      "SEVH"
  83.     ULONG   ckLength      ( = 12)
  84.     ULONG   OSP           (one shot part like VHDR.oneShotHiSamples)
  85.     ULONG   RP            (repeat part like VHDR.repeatHiSamples)
  86.     ULONG   LEN           (length of 2nd channel)
  87.  
  88. 3.1.4. SELE Chunk
  89.  
  90. This chunk is used to save sample data behind the loop of channel 1. So it
  91. is only saved if channel 1 has a loop set which does not end at the end of
  92. the sample.
  93.  
  94. 3.1.5. SERI Chunk
  95.  
  96. This chunks is similiar to the SELE chunk. Here are seved data of channel 2
  97. which do not fit into the BODY chunk. (That means data behind
  98. VHDR.omeShotHiSamples + VHDR.repeatHiSamples of channel 1.)
  99.  
  100.  
  101. 3.2. APPL Chunk in AIFF Format
  102. ------------------------------
  103.  
  104. SOUNDEffect is now able to save samples in AIFF-C format. Although this
  105. format is much more powerful than 8SVX there are some restrictionn, too.
  106. That's why I had to use the APPL chunk which is thought for application
  107. specific data.
  108.  
  109.     ID      "APPL"
  110.     ULONG   ckLength
  111.     ID      "stoc"
  112.     pstring "SOUNDEffect"          (Pascal String -> 1st Byte == Length )
  113.     ULONG   Version                (==1)
  114.     ULONG   len1                   (Length of 1st channel)
  115.     ULONG   len2
  116.     ULONG   osh2                   (Loop of 2nd channel)
  117.     ULONG   rhs2
  118.  
  119.  
  120. 3.3. Waves File Format
  121. ----------------------
  122.  
  123. Somebeody who wanted to geneate waves from mathematical functions asked me
  124. for the format of Waves. They are saved in the following way:
  125.  
  126.     ID      "WAVE"             (Indicates file type AND version)
  127.     short   EchoFlag           (normally 0; 1 for echo buffers)
  128.     1000 B. WaveData           (Wave data - always 1000 bytes long)
  129.  
  130.  
  131. 4. SampleClip
  132. =============
  133.  
  134. SampleClip is a library to make the exchange of samples between different
  135. programs much easier. One defined key pressing will be enough to transfer a
  136. sample between two applications. But the package is not released yet. If
  137. you have programmed an own audio application and are interested in
  138. supporting this, please email to fhoffman@banach.informatik.uni-dortmund.de
  139. or to me to get more information.
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.