reflect.cpp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /*
  2. * Copyright (c) 1983-2013 Richard Dobson and Composers Desktop Project Ltd
  3. * http://people.bath.ac.uk/masrwd
  4. * http://www.composersdesktop.com
  5. * This file is part of the CDP System.
  6. * The CDP System is free software; you can redistribute it
  7. * and/or modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * The CDP System is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. * See the GNU Lesser General Public License for more details.
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with the CDP System; if not, write to the Free Software
  17. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18. *
  19. */
  20. //NB it is most important to avoid periodicities in these
  21. // using rmresp, best to place source and listener near opposite corners, or both near one corner
  22. //preset early reflections - could get these from a brkfile, of course
  23. //except small room ; seems best to have src and listener same end of room, to get even earlier reflections
  24. //11 8 3.3
  25. //0.9
  26. //5
  27. //9 3 1.75
  28. //9 5.7 1.29
  29. //normed to 0.5
  30. deltap smalltaps[] = {
  31. {0.0082,0.500000},
  32. {0.0121,0.204198},
  33. {0.0134,0.169094},
  34. {0.0145,0.143638},
  35. {0.0170,0.093391},
  36. {0.0180,0.084478},
  37. {0.0200,0.067530},
  38. {0.0219,0.063096},
  39. {0.0226,0.053176},
  40. {0.0233,0.044833},
  41. {0.0237,0.048586},
  42. {0.0243,0.046058},
  43. {0.0250,0.043713},
  44. {0.0256,0.037388},
  45. {0.0261,0.044475},
  46. {0.0265,0.034818},
  47. {0.0271,0.033360},
  48. {0.0276,0.035772},
  49. {0.0281,0.034382},
  50. {0.0285,0.030051},
  51. {0.0287,0.033059},
  52. {0.0301,0.027091},
  53. {0.0304,0.026513},
  54. {0.0306,0.026200},
  55. {0.0309,0.023001},
  56. {0.0319,0.024114},
  57. {0.0326,0.020657},
  58. {0.0335,0.021782},
  59. {0.0340,0.019019},
  60. {0.0356,0.017387},
  61. {0.0398,0.017155},
  62. {0.0408,0.014690},
  63. {0.0412,0.014424},
  64. {0.0416,0.014160},
  65. {0.0425,0.012175},
  66. {0.0429,0.011971},
  67. {0.0439,0.011468},
  68. {0.0451,0.010854}
  69. };
  70. //dim: 21 16 5
  71. // refl: 0.95
  72. //nrooms 5
  73. //listenerpos
  74. //17 8 2
  75. //srcpos:
  76. //6 9.35 2
  77. //RWD NB does sound worse with with only 32 taps, or refl-order 3
  78. // this is the 'no-compromise' reverb!
  79. deltap mediumtaps[] =
  80. {
  81. {0.0332,0.993303},
  82. {0.0353,0.834879},
  83. {0.0377,0.729745},
  84. {0.0447,0.494138},
  85. {0.0548,0.345328},
  86. {0.0561,0.313134},
  87. {0.0570,0.319440},
  88. {0.0577,0.296282},
  89. {0.0583,0.290651},
  90. {0.0598,0.276075},
  91. {0.0615,0.274630},
  92. {0.0625,0.240116},
  93. {0.0627,0.251368},
  94. {0.0641,0.240392},
  95. {0.0644,0.226004},
  96. {0.0684,0.200374},
  97. {0.0690,0.218340},
  98. {0.0700,0.201354},
  99. {0.0713,0.194250},
  100. {0.0718,0.191280},
  101. {0.0728,0.176802},
  102. {0.0740,0.171020},
  103. {0.0752,0.165815},
  104. {0.0770,0.166316},
  105. {0.0778,0.147079},
  106. {0.0780,0.154272},
  107. {0.0791,0.149852},
  108. {0.0816,0.148066},
  109. {0.0825,0.137700},
  110. {0.0826,0.130403},
  111. {0.0836,0.134167},
  112. {0.0862,0.132653} ,
  113. {0.0870,0.117789},
  114. {0.0871,0.123637},
  115. {0.0881,0.120782},
  116. {0.0913,0.106847},
  117. {0.0929,0.114356},
  118. {0.0937,0.106863},
  119. {0.0946,0.104723},
  120. {0.0975,0.103831}
  121. };
  122. //normed to 0.5:
  123. //43 31 19
  124. //0.95
  125. //7
  126. //7.6 15 2
  127. //30 23.7 6
  128. deltap largetaps[] =
  129. {
  130. {0.0729,0.500000},
  131. {0.0758,0.439456},
  132. {0.0975,0.265770},
  133. {0.0997,0.241550},
  134. {0.1151,0.190794},
  135. {0.1162,0.187246},
  136. {0.1180,0.172387},
  137. {0.1247,0.154486},
  138. {0.1320,0.137708},
  139. {0.1330,0.135754},
  140. {0.1344,0.139864},
  141. {0.1346,0.125902},
  142. {0.1360,0.129780},
  143. {0.1404,0.115604},
  144. {0.1449,0.114371},
  145. {0.1464,0.112074},
  146. {0.1477,0.115801},
  147. {0.1492,0.107884},
  148. {0.1540,0.096167}
  149. };
  150. //Moorer
  151. deltap longtaps[18] = {
  152. {0.0043,0.841},
  153. {0.0215,0.504},
  154. {0.0225,0.491},
  155. {0.0268,0.379},
  156. {0.0270,0.380},
  157. {0.0298,0.346},
  158. {0.0458,0.289},
  159. {0.0485,0.272},
  160. {0.0572,0.192},
  161. {0.0587,0.193},
  162. {0.0595,0.217},
  163. {0.0612,0.181},
  164. {0.0707,0.180},
  165. {0.0708,0.181},
  166. {0.0726,0.176},
  167. {0.0741,0.142},
  168. {0.0753,0.167},
  169. {0.0797,0.134}
  170. };
  171. deltap shorttaps[] =
  172. {
  173. {0.0099,1.02}, //my times!
  174. {0.0154,0.818},
  175. {0.0179,0.635},
  176. {0.0214,0.719},
  177. {0.0309,0.267},
  178. {0.0596,0.242}
  179. };