song_list.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. /* Copyright 2016 Jack Humbert
  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 "musical_notes.h"
  17. #ifndef SONG_LIST_H
  18. #define SONG_LIST_H
  19. #define NO_SOUND
  20. #define LP_NUMB \
  21. H__NOTE(_CS5), H__NOTE(_E5), H__NOTE(_CS5), WD_NOTE(_FS5), \
  22. WD_NOTE(_A5), WD_NOTE(_GS5), WD_NOTE(_REST), H__NOTE(_CS5), H__NOTE(_E5), \
  23. H__NOTE(_CS5), WD_NOTE(_A5), WD_NOTE(_GS5), WD_NOTE(_E5),
  24. #define ODE_TO_JOY \
  25. Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \
  26. Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \
  27. Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \
  28. QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4),
  29. #define ROCK_A_BYE_BABY \
  30. QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \
  31. H__NOTE(_A5), Q__NOTE(_G5), \
  32. QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \
  33. H__NOTE(_FS5),
  34. #define CLOSE_ENCOUNTERS_5_NOTE \
  35. Q__NOTE(_D5), \
  36. Q__NOTE(_E5), \
  37. Q__NOTE(_C5), \
  38. Q__NOTE(_C4), \
  39. Q__NOTE(_G4),
  40. #define DOE_A_DEER \
  41. QD_NOTE(_C4), E__NOTE(_D4), \
  42. QD_NOTE(_E4), E__NOTE(_C4), \
  43. Q__NOTE(_E4), Q__NOTE(_C4), \
  44. Q__NOTE(_E4),
  45. /* Requires: PLAY_NOTE_ARRAY(..., ..., STACCATO); */
  46. #define IN_LIKE_FLINT \
  47. E__NOTE(_AS4), E__NOTE(_AS4), QD_NOTE(_B4), \
  48. E__NOTE(_AS4), E__NOTE(_B4), QD_NOTE(_CS4), \
  49. E__NOTE(_B4), E__NOTE(_CS4), QD_NOTE(_DS4), \
  50. E__NOTE(_CS4), E__NOTE(_B4), QD_NOTE(_AS4), \
  51. E__NOTE(_AS4), E__NOTE(_AS4), QD_NOTE(_B4),
  52. #define IMPERIAL_MARCH \
  53. HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4), QD_NOTE(_F4), QD_NOTE(_C5), \
  54. HD_NOTE(_A4), QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4), \
  55. HD_NOTE(_E5), HD_NOTE(_E5), HD_NOTE(_E5), QD_NOTE(_F5), QD_NOTE(_C5), \
  56. HD_NOTE(_A4), QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4)
  57. #define CLUEBOARD_SOUND \
  58. HD_NOTE(_C3), HD_NOTE(_D3), HD_NOTE(_E3), HD_NOTE(_F3), HD_NOTE(_G3), HD_NOTE(_A4), HD_NOTE(_B4), HD_NOTE(_C4)
  59. /*
  60. HD_NOTE(_G3), HD_NOTE(_E3), HD_NOTE(_C3), \
  61. Q__NOTE(_E3), Q__NOTE(_C3), Q__NOTE(_G3), \
  62. Q__NOTE(_E3)
  63. */
  64. /*
  65. HD_NOTE(_C3), HD_NOTE(_G3), HD_NOTE(_E3), \
  66. Q__NOTE(_G3), Q__NOTE(_E3), Q__NOTE(_G3), \
  67. Q__NOTE(_F3)
  68. */
  69. #define BASKET_CASE \
  70. QD_NOTE(_G3), E__NOTE(_F3), E__NOTE(_E3), Q__NOTE(_F3), M__NOTE(_G3, 8+32), Q__NOTE(_REST), \
  71. Q__NOTE(_B4), Q__NOTE(_C4), Q__NOTE(_B4), E__NOTE(_A4), Q__NOTE(_G3), M__NOTE(_G3, 8+32), Q__NOTE(_REST), \
  72. Q__NOTE(_B4), Q__NOTE(_C4), Q__NOTE(_B4), E__NOTE(_A4), Q__NOTE(_G3), Q__NOTE(_G3), Q__NOTE(_G3), Q__NOTE(_G3), E__NOTE(_A4), E__NOTE(_C4), QD_NOTE(_B4), HD_NOTE(_B4)
  73. #define STARTUP_SOUND \
  74. E__NOTE(_E6), \
  75. E__NOTE(_A6), \
  76. ED_NOTE(_E7),
  77. #define GOODBYE_SOUND \
  78. E__NOTE(_E7), \
  79. E__NOTE(_A6), \
  80. ED_NOTE(_E6),
  81. #define PLANCK_SOUND \
  82. ED_NOTE(_E7 ), \
  83. E__NOTE(_CS7), \
  84. E__NOTE(_E6 ), \
  85. E__NOTE(_A6 ), \
  86. M__NOTE(_CS7, 20),
  87. #define PREONIC_SOUND \
  88. M__NOTE(_B5, 20), \
  89. E__NOTE(_B6), \
  90. M__NOTE(_DS6, 20), \
  91. E__NOTE(_B6),
  92. #define QWERTY_SOUND \
  93. E__NOTE(_GS6 ), \
  94. E__NOTE(_A6 ), \
  95. S__NOTE(_REST), \
  96. Q__NOTE(_E7 ),
  97. #define COLEMAK_SOUND \
  98. E__NOTE(_GS6 ), \
  99. E__NOTE(_A6 ), \
  100. S__NOTE(_REST), \
  101. ED_NOTE(_E7 ), \
  102. S__NOTE(_REST), \
  103. ED_NOTE(_GS7 ),
  104. #define DVORAK_SOUND \
  105. E__NOTE(_GS6 ), \
  106. E__NOTE(_A6 ), \
  107. S__NOTE(_REST), \
  108. E__NOTE(_E7 ), \
  109. S__NOTE(_REST), \
  110. E__NOTE(_FS7 ), \
  111. S__NOTE(_REST), \
  112. E__NOTE(_E7 ),
  113. #define PLOVER_SOUND \
  114. E__NOTE(_GS6 ), \
  115. E__NOTE(_A6 ), \
  116. S__NOTE(_REST), \
  117. ED_NOTE(_E7 ), \
  118. S__NOTE(_REST), \
  119. ED_NOTE(_A7 ),
  120. #define PLOVER_GOODBYE_SOUND \
  121. E__NOTE(_GS6 ), \
  122. E__NOTE(_A6 ), \
  123. S__NOTE(_REST), \
  124. ED_NOTE(_A7 ), \
  125. S__NOTE(_REST), \
  126. ED_NOTE(_E7 ),
  127. #define MUSIC_ON_SOUND \
  128. E__NOTE(_A5 ), \
  129. E__NOTE(_B5 ), \
  130. E__NOTE(_CS6), \
  131. E__NOTE(_D6 ), \
  132. E__NOTE(_E6 ), \
  133. E__NOTE(_FS6), \
  134. E__NOTE(_GS6), \
  135. E__NOTE(_A6 ),
  136. #define AUDIO_ON_SOUND \
  137. E__NOTE(_A5 ), \
  138. E__NOTE(_A6 ),
  139. #define AUDIO_OFF_SOUND \
  140. E__NOTE(_A6 ), \
  141. E__NOTE(_A5 ),
  142. #define MUSIC_SCALE_SOUND MUSIC_ON_SOUND
  143. #define MUSIC_OFF_SOUND \
  144. E__NOTE(_A6 ), \
  145. E__NOTE(_GS6 ), \
  146. E__NOTE(_FS6), \
  147. E__NOTE(_E6 ), \
  148. E__NOTE(_D6 ), \
  149. E__NOTE(_CS6), \
  150. E__NOTE(_B5), \
  151. E__NOTE(_A5 ),
  152. #define VOICE_CHANGE_SOUND \
  153. Q__NOTE(_A5 ), \
  154. Q__NOTE(_CS6), \
  155. Q__NOTE(_E6 ), \
  156. Q__NOTE(_A6 ),
  157. #define CHROMATIC_SOUND \
  158. Q__NOTE(_A5 ), \
  159. Q__NOTE(_AS5 ), \
  160. Q__NOTE(_B5), \
  161. Q__NOTE(_C6 ), \
  162. Q__NOTE(_CS6 ),
  163. #define MAJOR_SOUND \
  164. Q__NOTE(_A5 ), \
  165. Q__NOTE(_B5 ), \
  166. Q__NOTE(_CS6), \
  167. Q__NOTE(_D6 ), \
  168. Q__NOTE(_E6 ),
  169. #define MINOR_SOUND \
  170. Q__NOTE(_A5 ), \
  171. Q__NOTE(_B5 ), \
  172. Q__NOTE(_C6 ), \
  173. Q__NOTE(_D6 ), \
  174. Q__NOTE(_E6 ),
  175. #define GUITAR_SOUND \
  176. Q__NOTE(_E5 ), \
  177. Q__NOTE(_A5), \
  178. Q__NOTE(_D6 ), \
  179. Q__NOTE(_G6 ),
  180. #define VIOLIN_SOUND \
  181. Q__NOTE(_G5 ), \
  182. Q__NOTE(_D6), \
  183. Q__NOTE(_A6 ), \
  184. Q__NOTE(_E7 ),
  185. #define CAPS_LOCK_ON_SOUND \
  186. E__NOTE(_A3), \
  187. E__NOTE(_B3),
  188. #define CAPS_LOCK_OFF_SOUND \
  189. E__NOTE(_B3), \
  190. E__NOTE(_A3),
  191. #define SCROLL_LOCK_ON_SOUND \
  192. E__NOTE(_D4), \
  193. E__NOTE(_E4),
  194. #define SCROLL_LOCK_OFF_SOUND \
  195. E__NOTE(_E4), \
  196. E__NOTE(_D4),
  197. #define NUM_LOCK_ON_SOUND \
  198. E__NOTE(_D5), \
  199. E__NOTE(_E5),
  200. #define NUM_LOCK_OFF_SOUND \
  201. E__NOTE(_E5), \
  202. E__NOTE(_D5),
  203. #define AG_NORM_SOUND \
  204. E__NOTE(_A5), \
  205. E__NOTE(_A5),
  206. #define AG_SWAP_SOUND \
  207. SD_NOTE(_B5), \
  208. SD_NOTE(_A5), \
  209. SD_NOTE(_B5), \
  210. SD_NOTE(_A5),
  211. #define UNICODE_WINDOWS \
  212. E__NOTE(_B5), \
  213. S__NOTE(_E6),
  214. #define UNICODE_LINUX \
  215. E__NOTE(_E6), \
  216. S__NOTE(_B5),
  217. #define COIN_SOUND \
  218. E__NOTE(_A5 ), \
  219. HD_NOTE(_E6 ),
  220. #define ONE_UP_SOUND \
  221. Q__NOTE(_E6 ), \
  222. Q__NOTE(_G6 ), \
  223. Q__NOTE(_E7 ), \
  224. Q__NOTE(_C7 ), \
  225. Q__NOTE(_D7 ), \
  226. Q__NOTE(_G7 ),
  227. #define SONIC_RING \
  228. E__NOTE(_E6), \
  229. E__NOTE(_G6), \
  230. HD_NOTE(_C7),
  231. #define ZELDA_PUZZLE \
  232. Q__NOTE(_G5), \
  233. Q__NOTE(_FS5), \
  234. Q__NOTE(_DS5), \
  235. Q__NOTE(_A4), \
  236. Q__NOTE(_GS4), \
  237. Q__NOTE(_E5), \
  238. Q__NOTE(_GS5), \
  239. HD_NOTE(_C6),
  240. #define ZELDA_TREASURE \
  241. Q__NOTE(_A4 ), \
  242. Q__NOTE(_AS4), \
  243. Q__NOTE(_B4 ), \
  244. HD_NOTE(_C5 ), \
  245. #define TERMINAL_SOUND \
  246. E__NOTE(_C5 )
  247. #define OVERWATCH_THEME \
  248. HD_NOTE(_A4 ), \
  249. Q__NOTE(_E4 ), \
  250. Q__NOTE(_A4 ), \
  251. HD_NOTE(_B4 ), \
  252. Q__NOTE(_E4 ), \
  253. Q__NOTE(_B4 ), \
  254. W__NOTE(_CS5),
  255. #define MARIO_THEME \
  256. Q__NOTE(_E5), \
  257. H__NOTE(_E5), \
  258. H__NOTE(_E5), \
  259. Q__NOTE(_C5), \
  260. H__NOTE(_E5), \
  261. W__NOTE(_G5), \
  262. Q__NOTE(_G4),
  263. #define MARIO_GAMEOVER \
  264. HD_NOTE(_C5 ), \
  265. HD_NOTE(_G4 ), \
  266. H__NOTE(_E4 ), \
  267. H__NOTE(_A4 ), \
  268. H__NOTE(_B4 ), \
  269. H__NOTE(_A4 ), \
  270. H__NOTE(_AF4), \
  271. H__NOTE(_BF4), \
  272. H__NOTE(_AF4), \
  273. WD_NOTE(_G4 ),
  274. #define MARIO_MUSHROOM \
  275. S__NOTE(_C5 ), \
  276. S__NOTE(_G4 ), \
  277. S__NOTE(_C5 ), \
  278. S__NOTE(_E5 ), \
  279. S__NOTE(_G5 ), \
  280. S__NOTE(_C6 ), \
  281. S__NOTE(_G5 ), \
  282. S__NOTE(_GS4), \
  283. S__NOTE(_C5 ), \
  284. S__NOTE(_DS5), \
  285. S__NOTE(_GS5), \
  286. S__NOTE(_DS5), \
  287. S__NOTE(_GS5), \
  288. S__NOTE(_C6 ), \
  289. S__NOTE(_DS6), \
  290. S__NOTE(_GS6), \
  291. S__NOTE(_DS6), \
  292. S__NOTE(_AS4), \
  293. S__NOTE(_D5 ), \
  294. S__NOTE(_F5 ), \
  295. S__NOTE(_AS5), \
  296. S__NOTE(_D6 ), \
  297. S__NOTE(_F6 ), \
  298. S__NOTE(_AS6), \
  299. S__NOTE(_F6 )
  300. #define E1M1_DOOM \
  301. Q__NOTE(_E3 ), \
  302. Q__NOTE(_E3 ), \
  303. Q__NOTE(_E4 ), \
  304. Q__NOTE(_E3 ), \
  305. Q__NOTE(_E3 ), \
  306. Q__NOTE(_D4 ), \
  307. Q__NOTE(_E3 ), \
  308. Q__NOTE(_E3 ), \
  309. Q__NOTE(_C4 ), \
  310. Q__NOTE(_E3 ), \
  311. Q__NOTE(_E3 ), \
  312. Q__NOTE(_BF3), \
  313. Q__NOTE(_E3 ), \
  314. Q__NOTE(_E3 ), \
  315. Q__NOTE(_B3 ), \
  316. Q__NOTE(_C4 ), \
  317. Q__NOTE(_E3 ), \
  318. Q__NOTE(_E3 ), \
  319. Q__NOTE(_E4 ), \
  320. Q__NOTE(_E3 ), \
  321. Q__NOTE(_E3 ), \
  322. Q__NOTE(_D4 ), \
  323. Q__NOTE(_E3 ), \
  324. Q__NOTE(_E3 ), \
  325. Q__NOTE(_C4 ), \
  326. Q__NOTE(_E3 ), \
  327. Q__NOTE(_E3 ), \
  328. H__NOTE(_BF3),
  329. #define DISNEY_SONG \
  330. H__NOTE(_G3 ), \
  331. H__NOTE(_G4 ), \
  332. H__NOTE(_F4 ), \
  333. H__NOTE(_E4 ), \
  334. H__NOTE(_CS4), \
  335. H__NOTE(_D4 ), \
  336. W__NOTE(_A4 ), \
  337. H__NOTE(_B3 ), \
  338. H__NOTE(_B4 ), \
  339. H__NOTE(_A4 ), \
  340. H__NOTE(_G4 ), \
  341. H__NOTE(_FS4), \
  342. H__NOTE(_G4 ), \
  343. W__NOTE(_C5 ), \
  344. H__NOTE(_D5 ), \
  345. H__NOTE(_C5 ), \
  346. H__NOTE(_B4 ), \
  347. H__NOTE(_A4 ), \
  348. H__NOTE(_G4 ), \
  349. H__NOTE(_F4 ), \
  350. H__NOTE(_E4 ), \
  351. H__NOTE(_D4 ), \
  352. W__NOTE(_A4 ), \
  353. W__NOTE(_B3 ), \
  354. W__NOTE(_C4 ),
  355. #define NUMBER_ONE \
  356. HD_NOTE(_F4 ), \
  357. Q__NOTE(_C5 ), \
  358. E__NOTE(_B4 ), \
  359. E__NOTE(_C5 ), \
  360. E__NOTE(_B4 ), \
  361. E__NOTE(_C5 ), \
  362. Q__NOTE(_B4 ), \
  363. Q__NOTE(_C5 ), \
  364. H__NOTE(_AF4), \
  365. HD_NOTE(_F4 ), \
  366. Q__NOTE(_F4 ), \
  367. Q__NOTE(_AF4), \
  368. Q__NOTE(_C5 ), \
  369. H__NOTE(_DF5), \
  370. H__NOTE(_AF4), \
  371. H__NOTE(_DF5), \
  372. H__NOTE(_EF5), \
  373. Q__NOTE(_C5 ), \
  374. Q__NOTE(_DF5), \
  375. Q__NOTE(_C5 ), \
  376. Q__NOTE(_DF5), \
  377. H__NOTE(_C5 ),
  378. #define CABBAGE_SONG \
  379. H__NOTE(_C4), \
  380. H__NOTE(_A4), \
  381. H__NOTE(_B4), \
  382. H__NOTE(_B4), \
  383. H__NOTE(_A4), \
  384. H__NOTE(_G4), \
  385. H__NOTE(_E4),
  386. #define OLD_SPICE \
  387. Q__NOTE(_A4 ), \
  388. Q__NOTE(_A4 ), \
  389. H__NOTE(_B4 ), \
  390. H__NOTE(_D5 ), \
  391. H__NOTE(_CS5), \
  392. Q__NOTE(_E5 ), \
  393. H__NOTE(_FS5), \
  394. H__NOTE(_D5 ), \
  395. #define VICTORY_FANFARE_SHORT \
  396. ED_NOTE(_C6), \
  397. ED_NOTE(_C6), \
  398. ED_NOTE(_C6), \
  399. ED_NOTE(_C6), \
  400. W__NOTE(_REST), \
  401. QD_NOTE(_GS5), \
  402. QD_NOTE(_AS5), \
  403. Q__NOTE(_C6), \
  404. Q__NOTE(_AS5), \
  405. Q__NOTE(_C6), \
  406. #define ALL_STAR \
  407. H__NOTE(_AS4), W__NOTE(_FS4), Q__NOTE(_FS4), Q__NOTE(_DS4), H__NOTE(_FS4), W__NOTE(_FS4), Q__NOTE(_FS4), Q__NOTE(_DS4), \
  408. H__NOTE(_FS4), W__NOTE(_FS4), W__NOTE(_FS4), QD_NOTE(_AS4), \
  409. H__NOTE(_AS4), W__NOTE(_FS4), Q__NOTE(_FS4), Q__NOTE(_DS4), H__NOTE(_FS4), W__NOTE(_FS4), Q__NOTE(_FS4), Q__NOTE(_DS4), \
  410. H__NOTE(_FS4), W__NOTE(_FS4), W__NOTE(_FS4), W__NOTE(_AS4), H__NOTE(_REST),\
  411. W__NOTE(_AS4), W__NOTE(_CS5), H__NOTE(_B4), H__NOTE(_CS5), H__NOTE(_DS5), W__NOTE(_FS5), \
  412. H__NOTE(_GS5), W__NOTE(_GS5), H__NOTE(_FS4), H__NOTE(_FS4), H__NOTE(_GS4), H__NOTE(_FS4), \
  413. H__NOTE(_AS4), W__NOTE(_GS4), W__NOTE(_GS4), W__NOTE(_FS4), W__NOTE(_GS4), \
  414. H__NOTE(_AS4), WD_NOTE(_DS4)
  415. #endif