luts.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. /* Copyright 2016 IBNobody
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include <avr/io.h>
  17. #include <avr/interrupt.h>
  18. #include <avr/pgmspace.h>
  19. #include "luts.h"
  20. const float vibrato_lut[VIBRATO_LUT_LENGTH] =
  21. {
  22. 1.0022336811487,
  23. 1.0042529943610,
  24. 1.0058584256028,
  25. 1.0068905285205,
  26. 1.0072464122237,
  27. 1.0068905285205,
  28. 1.0058584256028,
  29. 1.0042529943610,
  30. 1.0022336811487,
  31. 1.0000000000000,
  32. 0.9977712970630,
  33. 0.9957650169978,
  34. 0.9941756956510,
  35. 0.9931566259436,
  36. 0.9928057204913,
  37. 0.9931566259436,
  38. 0.9941756956510,
  39. 0.9957650169978,
  40. 0.9977712970630,
  41. 1.0000000000000,
  42. };
  43. const uint16_t frequency_lut[FREQUENCY_LUT_LENGTH] =
  44. {
  45. 0x8E0B,
  46. 0x8C02,
  47. 0x8A00,
  48. 0x8805,
  49. 0x8612,
  50. 0x8426,
  51. 0x8241,
  52. 0x8063,
  53. 0x7E8C,
  54. 0x7CBB,
  55. 0x7AF2,
  56. 0x792E,
  57. 0x7772,
  58. 0x75BB,
  59. 0x740B,
  60. 0x7261,
  61. 0x70BD,
  62. 0x6F20,
  63. 0x6D88,
  64. 0x6BF6,
  65. 0x6A69,
  66. 0x68E3,
  67. 0x6762,
  68. 0x65E6,
  69. 0x6470,
  70. 0x6300,
  71. 0x6194,
  72. 0x602E,
  73. 0x5ECD,
  74. 0x5D71,
  75. 0x5C1A,
  76. 0x5AC8,
  77. 0x597B,
  78. 0x5833,
  79. 0x56EF,
  80. 0x55B0,
  81. 0x5475,
  82. 0x533F,
  83. 0x520E,
  84. 0x50E1,
  85. 0x4FB8,
  86. 0x4E93,
  87. 0x4D73,
  88. 0x4C57,
  89. 0x4B3E,
  90. 0x4A2A,
  91. 0x491A,
  92. 0x480E,
  93. 0x4705,
  94. 0x4601,
  95. 0x4500,
  96. 0x4402,
  97. 0x4309,
  98. 0x4213,
  99. 0x4120,
  100. 0x4031,
  101. 0x3F46,
  102. 0x3E5D,
  103. 0x3D79,
  104. 0x3C97,
  105. 0x3BB9,
  106. 0x3ADD,
  107. 0x3A05,
  108. 0x3930,
  109. 0x385E,
  110. 0x3790,
  111. 0x36C4,
  112. 0x35FB,
  113. 0x3534,
  114. 0x3471,
  115. 0x33B1,
  116. 0x32F3,
  117. 0x3238,
  118. 0x3180,
  119. 0x30CA,
  120. 0x3017,
  121. 0x2F66,
  122. 0x2EB8,
  123. 0x2E0D,
  124. 0x2D64,
  125. 0x2CBD,
  126. 0x2C19,
  127. 0x2B77,
  128. 0x2AD8,
  129. 0x2A3A,
  130. 0x299F,
  131. 0x2907,
  132. 0x2870,
  133. 0x27DC,
  134. 0x2749,
  135. 0x26B9,
  136. 0x262B,
  137. 0x259F,
  138. 0x2515,
  139. 0x248D,
  140. 0x2407,
  141. 0x2382,
  142. 0x2300,
  143. 0x2280,
  144. 0x2201,
  145. 0x2184,
  146. 0x2109,
  147. 0x2090,
  148. 0x2018,
  149. 0x1FA3,
  150. 0x1F2E,
  151. 0x1EBC,
  152. 0x1E4B,
  153. 0x1DDC,
  154. 0x1D6E,
  155. 0x1D02,
  156. 0x1C98,
  157. 0x1C2F,
  158. 0x1BC8,
  159. 0x1B62,
  160. 0x1AFD,
  161. 0x1A9A,
  162. 0x1A38,
  163. 0x19D8,
  164. 0x1979,
  165. 0x191C,
  166. 0x18C0,
  167. 0x1865,
  168. 0x180B,
  169. 0x17B3,
  170. 0x175C,
  171. 0x1706,
  172. 0x16B2,
  173. 0x165E,
  174. 0x160C,
  175. 0x15BB,
  176. 0x156C,
  177. 0x151D,
  178. 0x14CF,
  179. 0x1483,
  180. 0x1438,
  181. 0x13EE,
  182. 0x13A4,
  183. 0x135C,
  184. 0x1315,
  185. 0x12CF,
  186. 0x128A,
  187. 0x1246,
  188. 0x1203,
  189. 0x11C1,
  190. 0x1180,
  191. 0x1140,
  192. 0x1100,
  193. 0x10C2,
  194. 0x1084,
  195. 0x1048,
  196. 0x100C,
  197. 0xFD1,
  198. 0xF97,
  199. 0xF5E,
  200. 0xF25,
  201. 0xEEE,
  202. 0xEB7,
  203. 0xE81,
  204. 0xE4C,
  205. 0xE17,
  206. 0xDE4,
  207. 0xDB1,
  208. 0xD7E,
  209. 0xD4D,
  210. 0xD1C,
  211. 0xCEC,
  212. 0xCBC,
  213. 0xC8E,
  214. 0xC60,
  215. 0xC32,
  216. 0xC05,
  217. 0xBD9,
  218. 0xBAE,
  219. 0xB83,
  220. 0xB59,
  221. 0xB2F,
  222. 0xB06,
  223. 0xADD,
  224. 0xAB6,
  225. 0xA8E,
  226. 0xA67,
  227. 0xA41,
  228. 0xA1C,
  229. 0x9F7,
  230. 0x9D2,
  231. 0x9AE,
  232. 0x98A,
  233. 0x967,
  234. 0x945,
  235. 0x923,
  236. 0x901,
  237. 0x8E0,
  238. 0x8C0,
  239. 0x8A0,
  240. 0x880,
  241. 0x861,
  242. 0x842,
  243. 0x824,
  244. 0x806,
  245. 0x7E8,
  246. 0x7CB,
  247. 0x7AF,
  248. 0x792,
  249. 0x777,
  250. 0x75B,
  251. 0x740,
  252. 0x726,
  253. 0x70B,
  254. 0x6F2,
  255. 0x6D8,
  256. 0x6BF,
  257. 0x6A6,
  258. 0x68E,
  259. 0x676,
  260. 0x65E,
  261. 0x647,
  262. 0x630,
  263. 0x619,
  264. 0x602,
  265. 0x5EC,
  266. 0x5D7,
  267. 0x5C1,
  268. 0x5AC,
  269. 0x597,
  270. 0x583,
  271. 0x56E,
  272. 0x55B,
  273. 0x547,
  274. 0x533,
  275. 0x520,
  276. 0x50E,
  277. 0x4FB,
  278. 0x4E9,
  279. 0x4D7,
  280. 0x4C5,
  281. 0x4B3,
  282. 0x4A2,
  283. 0x491,
  284. 0x480,
  285. 0x470,
  286. 0x460,
  287. 0x450,
  288. 0x440,
  289. 0x430,
  290. 0x421,
  291. 0x412,
  292. 0x403,
  293. 0x3F4,
  294. 0x3E5,
  295. 0x3D7,
  296. 0x3C9,
  297. 0x3BB,
  298. 0x3AD,
  299. 0x3A0,
  300. 0x393,
  301. 0x385,
  302. 0x379,
  303. 0x36C,
  304. 0x35F,
  305. 0x353,
  306. 0x347,
  307. 0x33B,
  308. 0x32F,
  309. 0x323,
  310. 0x318,
  311. 0x30C,
  312. 0x301,
  313. 0x2F6,
  314. 0x2EB,
  315. 0x2E0,
  316. 0x2D6,
  317. 0x2CB,
  318. 0x2C1,
  319. 0x2B7,
  320. 0x2AD,
  321. 0x2A3,
  322. 0x299,
  323. 0x290,
  324. 0x287,
  325. 0x27D,
  326. 0x274,
  327. 0x26B,
  328. 0x262,
  329. 0x259,
  330. 0x251,
  331. 0x248,
  332. 0x240,
  333. 0x238,
  334. 0x230,
  335. 0x228,
  336. 0x220,
  337. 0x218,
  338. 0x210,
  339. 0x209,
  340. 0x201,
  341. 0x1FA,
  342. 0x1F2,
  343. 0x1EB,
  344. 0x1E4,
  345. 0x1DD,
  346. 0x1D6,
  347. 0x1D0,
  348. 0x1C9,
  349. 0x1C2,
  350. 0x1BC,
  351. 0x1B6,
  352. 0x1AF,
  353. 0x1A9,
  354. 0x1A3,
  355. 0x19D,
  356. 0x197,
  357. 0x191,
  358. 0x18C,
  359. 0x186,
  360. 0x180,
  361. 0x17B,
  362. 0x175,
  363. 0x170,
  364. 0x16B,
  365. 0x165,
  366. 0x160,
  367. 0x15B,
  368. 0x156,
  369. 0x151,
  370. 0x14C,
  371. 0x148,
  372. 0x143,
  373. 0x13E,
  374. 0x13A,
  375. 0x135,
  376. 0x131,
  377. 0x12C,
  378. 0x128,
  379. 0x124,
  380. 0x120,
  381. 0x11C,
  382. 0x118,
  383. 0x114,
  384. 0x110,
  385. 0x10C,
  386. 0x108,
  387. 0x104,
  388. 0x100,
  389. 0xFD,
  390. 0xF9,
  391. 0xF5,
  392. 0xF2,
  393. 0xEE,
  394. };