PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)
Dependents: YATTT sd_map_test cPong SnowDemo ... more
Synth_helpers.cpp
00001 /**************************************************************************/ 00002 /*! 00003 @file Synth_envfuncs.cpp 00004 @author Jonne Valola 00005 00006 @section LICENSE 00007 00008 Pokitto development stage library 00009 Software License Agreement 00010 00011 Copyright (c) 2015, Jonne Valola ("Author") 00012 All rights reserved. 00013 00014 This library is intended solely for the purpose of Pokitto development. 00015 00016 Redistribution and use in source and binary forms, with or without 00017 modification requires written permission from Author. 00018 */ 00019 /**************************************************************************/ 00020 00021 #include "Pokitto.h " 00022 #include "Synth.h " 00023 #include "Pokitto_settings.h " 00024 00025 #define PROGMEM 00026 #define pgm_read_byte(addr) (*(const unsigned char *)(addr)) 00027 #ifndef WIN32 00028 #ifndef pgm_read_word 00029 #define pgm_read_word(addr) (*(const unsigned short *)(addr)) 00030 #endif 00031 #else 00032 #define pgm_read_word(addr) (*(const unsigned int *)(addr)) 00033 #endif // WIN32 00034 00035 // http://www.arklyffe.com/main/2010/08/29/xorshift-pseudorandom-number-generator/ 00036 static uint8_t y8 = 1; 00037 static uint16_t y16 = 1; 00038 00039 // returns values from 1 to 255 inclusive, period is 255 00040 uint8_t xorshift8(void) { 00041 //y8 ^= (y8 << 7); 00042 y8 ^= (y8 * 128); 00043 y8 ^= (y8 >> 5); 00044 //return y8 ^= (y8 << 3); 00045 return y8 ^= (y8 * 8); 00046 } 00047 00048 // returns values from 1 to 65535 inclusive, period is 65535 00049 uint16_t xorshift16(void) { 00050 //y16 ^= (y16 << 13); 00051 y16 ^= (y16 * 8192); 00052 y16 ^= (y16 >> 9); 00053 //return y16 ^= (y16 << 7); 00054 return y16 ^= (y16 * 128); 00055 } 00056 00057 00058 int8_t arptable[MAX_ARPMODE][5] = { 00059 {0,0,0,0,0}, // Off 00060 {0,4,7,4,0}, // Major tonic, 3rd, 5th 00061 {0,3,7,3,0}, // Minor tonic, 3rd, 5th 00062 {0,1,0,-1,0}, // vibrato test 00063 {0,12,0,12,0}, // octave test 00064 {0,11,14,17,21}, // funky test 00065 }; 00066 00067 00068 /** VITAL TABLES **/ 00069 00070 #if (POK_AUD_FREQ==8000) 00071 00072 uint32_t cincs[] ={ 00073 16573205 , // 0 - NOTE_B0 00074 17555679 , // 1 - NOTE_C1 00075 18602577 , // 2 - NOTE_CS1 00076 19708531 , // 3 - NOTE_D1 00077 20878910 , // 4 - NOTE_DS1 00078 22119082 , // 5 - NOTE_E1 00079 23434415 , // 6 - NOTE_F1 00080 24830280 , // 7 - NOTE_FS1 00081 26306675 , // 8 - NOTE_G1 00082 27868969 , // 9 - NOTE_GS1 00083 29527900 , // 10 - NOTE_A1 00084 31283468 , // 11 - NOTE_AS1 00085 33146410 , // 12 - NOTE_B1 00086 35116726 , // 13 - NOTE_C2 00087 37205154 , // 14 - NOTE_CS2 00088 39417062 , // 15 - NOTE_D2 00089 41757820 , // 16 - NOTE_DS2 00090 44243532 , // 17 - NOTE_E2 00091 46874199 , // 18 - NOTE_F2 00092 49660559 , // 19 - NOTE_FS2 00093 52613349 , // 20 - NOTE_G2 00094 55743307 , // 21 - NOTE_GS2 00095 59055800 , // 22 - NOTE_A2 00096 62566936 , // 23 - NOTE_AS2 00097 66287451 , // 24 - NOTE_B2 00098 70228084 , // 25 - NOTE_C3 00099 74404940 , // 26 - NOTE_CS3 00100 78828756 , // 27 - NOTE_D3 00101 83515639 , // 28 - NOTE_DS3 00102 88481695 , // 29 - NOTE_E3 00103 93743030 , // 30 - NOTE_F3 00104 99321119 , // 31 - NOTE_FS3 00105 105226699 , // 32 - NOTE_G3 00106 111481245 , // 33 - NOTE_GS3 00107 118111601 , // 34 - NOTE_A3 00108 125133872 , // 35 - NOTE_AS3 00109 132574903 , // 36 - NOTE_B3 00110 140461537 , // 37 - NOTE_C4 00111 148809879 , // 38 - NOTE_CS4 00112 157657512 , // 39 - NOTE_D4 00113 167036647 , // 40 - NOTE_DS4 00114 176968759 , // 41 - NOTE_E4 00115 187491429 , // 42 - NOTE_F4 00116 198636869 , // 43 - NOTE_FS4 00117 210453397 , // 44 - NOTE_G4 00118 222962490 , // 45 - NOTE_GS4 00119 236223201 , // 46 - NOTE_A4 // 440Hz 00120 250267744 , // 47 - NOTE_AS4 00121 265149806 , // 48 - NOTE_B4 00122 280917705 , // 49 - NOTE_C5 00123 297625127 , // 50 - NOTE_CS5 00124 315320393 , // 51 - NOTE_D5 00125 334067925 , // 52 - NOTE_DS5 00126 353932149 , // 53 - NOTE_E5 00127 374982857 , // 54 - NOTE_F5 00128 397279106 , // 55 - NOTE_FS5 00129 420901426 , // 56 - NOTE_G5 00130 445930348 , // 57 - NOTE_GS5 00131 472446402 , // 58 - NOTE_A5 00132 500540857 , // 59 - NOTE_AS5 00133 530304981 , // 60 - NOTE_B5 00134 561835409 , // 61 - NOTE_C6 00135 595244886 , // 62 - NOTE_CS6 00136 630640785 , // 63 - NOTE_D6 00137 668141219 , // 64 - NOTE_DS6 00138 707869666 , // 65 - NOTE_E6 00139 749960346 , // 66 - NOTE_F6 00140 794558212 , // 67 - NOTE_FS6 00141 841802852 , // 68 - NOTE_G6 00142 891860696 , // 69 - NOTE_GS6 00143 944892805 , // 70 - NOTE_A6 00144 1001081715 , // 71 - NOTE_AS6 00145 1060604593 , // 72 - NOTE_B6 00146 1123670819 , // 73 - NOTE_C7 00147 1190489772 , // 74 - NOTE_CS7 00148 1261281571 , // 75 - NOTE_D7 00149 1336282437 , // 76 - NOTE_DS7 00150 1415739332 , // 77 - NOTE_E7 00151 1499926060 , // 78 - NOTE_F7 00152 1589116424 , // 79 - NOTE_FS7 00153 1683605705 , // 80 - NOTE_G7 00154 1783721392 , // 81 - NOTE_GS7 00155 1889785610 , // 82 - NOTE_A7 00156 2002158060 , // 83 - NOTE_AS7 00157 2121214554 , // 84 - NOTE_B7 00158 2247347006 , // 85 - NOTE_C8 00159 2380979544 , // 86 - NOTE_CS8 00160 2522557773 , // 87 - NOTE_D8 00161 2672559505 , // 88 - NOTE_DS8 00162 }; 00163 00164 #elif (POK_AUD_FREQ==11025) 00165 00166 uint32_t cincs[] ={ 00167 12025908 , // 0 - NOTE_B0 00168 12738815 , // 1 - NOTE_C1 00169 13498469 , // 2 - NOTE_CS1 00170 14300975 , // 3 - NOTE_D1 00171 15150229 , // 4 - NOTE_DS1 00172 16050127 , // 5 - NOTE_E1 00173 17004564 , // 6 - NOTE_F1 00174 18017436 , // 7 - NOTE_FS1 00175 19088744 , // 8 - NOTE_G1 00176 20222381 , // 9 - NOTE_GS1 00177 21426141 , // 10 - NOTE_A1 00178 22700022 , // 11 - NOTE_AS1 00179 24051817 , // 12 - NOTE_B1 00180 25481525 , // 13 - NOTE_C2 00181 26996937 , // 14 - NOTE_CS2 00182 28601950 , // 15 - NOTE_D2 00183 30300459 , // 16 - NOTE_DS2 00184 32104150 , // 17 - NOTE_E2 00185 34013024 , // 18 - NOTE_F2 00186 36034873 , // 19 - NOTE_FS2 00187 38177487 , // 20 - NOTE_G2 00188 40448658 , // 21 - NOTE_GS2 00189 42852281 , // 22 - NOTE_A2 00190 45400044 , // 23 - NOTE_AS2 00191 48099738 , // 24 - NOTE_B2 00192 50959154 , // 25 - NOTE_C3 00193 53989979 , // 26 - NOTE_CS3 00194 57200004 , // 27 - NOTE_D3 00195 60600917 , // 28 - NOTE_DS3 00196 64204405 , // 29 - NOTE_E3 00197 68022153 , // 30 - NOTE_F3 00198 72069746 , // 31 - NOTE_FS3 00199 76354974 , // 32 - NOTE_G3 00200 80893420 , // 33 - NOTE_GS3 00201 85704563 , // 34 - NOTE_A3 00202 90800089 , // 35 - NOTE_AS3 00203 96199476 , // 36 - NOTE_B3 00204 101922203 , // 37 - NOTE_C4 00205 107979958 , // 38 - NOTE_CS4 00206 114400009 , // 39 - NOTE_D4 00207 121205730 , // 40 - NOTE_DS4 00208 128412705 , // 41 - NOTE_E4 00209 136048202 , // 42 - NOTE_F4 00210 144135596 , // 43 - NOTE_FS4 00211 152709948 , // 44 - NOTE_G4 00212 161786841 , // 45 - NOTE_GS4 00213 171409126 , // 46 - NOTE_A4 // 440Hz 00214 181600177 , // 47 - NOTE_AS4 00215 192398952 , // 48 - NOTE_B4 00216 203840511 , // 49 - NOTE_C5 00217 215963811 , // 50 - NOTE_CS5 00218 228803913 , // 51 - NOTE_D5 00219 242407565 , // 52 - NOTE_DS5 00220 256821514 , // 53 - NOTE_E5 00221 272096404 , // 54 - NOTE_F5 00222 288275088 , // 55 - NOTE_FS5 00223 305416001 , // 56 - NOTE_G5 00224 323577577 , // 57 - NOTE_GS5 00225 342818251 , // 58 - NOTE_A5 00226 363204250 , // 59 - NOTE_AS5 00227 384801800 , // 60 - NOTE_B5 00228 407681023 , // 61 - NOTE_C6 00229 431923727 , // 62 - NOTE_CS6 00230 457607826 , // 63 - NOTE_D6 00231 484819025 , // 64 - NOTE_DS6 00232 513646923 , // 65 - NOTE_E6 00233 544188913 , // 66 - NOTE_F6 00234 576550177 , // 67 - NOTE_FS6 00235 610832002 , // 68 - NOTE_G6 00236 647155154 , // 69 - NOTE_GS6 00237 685636502 , // 70 - NOTE_A6 00238 726408500 , // 71 - NOTE_AS6 00239 769599704 , // 72 - NOTE_B6 00240 815362045 , // 73 - NOTE_C7 00241 863847454 , // 74 - NOTE_CS7 00242 915215652 , // 75 - NOTE_D7 00243 969638050 , // 76 - NOTE_DS7 00244 1027293846 , // 77 - NOTE_E7 00245 1088381721 , // 78 - NOTE_F7 00246 1153100353 , // 79 - NOTE_FS7 00247 1221664003 , // 80 - NOTE_G7 00248 1294310307 , // 81 - NOTE_GS7 00249 1371273005 , // 82 - NOTE_A7 00250 1452813105 , // 83 - NOTE_AS7 00251 1539203304 , // 84 - NOTE_B7 00252 1630727986 , // 85 - NOTE_C8 00253 1727694908 , // 86 - NOTE_CS8 00254 1830427409 , // 87 - NOTE_D8 00255 1939272203 , // 88 - NOTE_DS8 00256 }; 00257 00258 #elif (POK_AUD_FREQ==16000) 00259 00260 uint32_t cincs[] ={ 00261 8286603 , // 0 - NOTE_B0 00262 8777839 , // 1 - NOTE_C1 00263 9301289 , // 2 - NOTE_CS1 00264 9854266 , // 3 - NOTE_D1 00265 10439455 , // 4 - NOTE_DS1 00266 11059541 , // 5 - NOTE_E1 00267 11717208 , // 6 - NOTE_F1 00268 12415140 , // 7 - NOTE_FS1 00269 13153337 , // 8 - NOTE_G1 00270 13934485 , // 9 - NOTE_GS1 00271 14763950 , // 10 - NOTE_A1 00272 15641734 , // 11 - NOTE_AS1 00273 16573205 , // 12 - NOTE_B1 00274 17558363 , // 13 - NOTE_C2 00275 18602577 , // 14 - NOTE_CS2 00276 19708531 , // 15 - NOTE_D2 00277 20878910 , // 16 - NOTE_DS2 00278 22121766 , // 17 - NOTE_E2 00279 23437100 , // 18 - NOTE_F2 00280 24830280 , // 19 - NOTE_FS2 00281 26306675 , // 20 - NOTE_G2 00282 27871653 , // 21 - NOTE_GS2 00283 29527900 , // 22 - NOTE_A2 00284 31283468 , // 23 - NOTE_AS2 00285 33143726 , // 24 - NOTE_B2 00286 35114042 , // 25 - NOTE_C3 00287 37202470 , // 26 - NOTE_CS3 00288 39414378 , // 27 - NOTE_D3 00289 41757820 , // 28 - NOTE_DS3 00290 44240847 , // 29 - NOTE_E3 00291 46871515 , // 30 - NOTE_F3 00292 49660559 , // 31 - NOTE_FS3 00293 52613349 , // 32 - NOTE_G3 00294 55740622 , // 33 - NOTE_GS3 00295 59055800 , // 34 - NOTE_A3 00296 62566936 , // 35 - NOTE_AS3 00297 66287451 , // 36 - NOTE_B3 00298 70230768 , // 37 - NOTE_C4 00299 74404940 , // 38 - NOTE_CS4 00300 78828756 , // 39 - NOTE_D4 00301 83518323 , // 40 - NOTE_DS4 00302 88484379 , // 41 - NOTE_E4 00303 93745714 , // 42 - NOTE_F4 00304 99318434 , // 43 - NOTE_FS4 00305 105226699 , // 44 - NOTE_G4 00306 111481245 , // 45 - NOTE_GS4 00307 118111601 , // 46 - NOTE_A4 // 440Hz 00308 125133872 , // 47 - NOTE_AS4 00309 132574903 , // 48 - NOTE_B4 00310 140458852 , // 49 - NOTE_C5 00311 148812564 , // 50 - NOTE_CS5 00312 157660196 , // 51 - NOTE_D5 00313 167033962 , // 52 - NOTE_DS5 00314 176966074 , // 53 - NOTE_E5 00315 187491429 , // 54 - NOTE_F5 00316 198639553 , // 55 - NOTE_FS5 00317 210450713 , // 56 - NOTE_G5 00318 222965174 , // 57 - NOTE_GS5 00319 236223201 , // 58 - NOTE_A5 00320 250270429 , // 59 - NOTE_AS5 00321 265152490 , // 60 - NOTE_B5 00322 280917705 , // 61 - NOTE_C6 00323 297622443 , // 62 - NOTE_CS6 00324 315320393 , // 63 - NOTE_D6 00325 334070609 , // 64 - NOTE_DS6 00326 353934833 , // 65 - NOTE_E6 00327 374980173 , // 66 - NOTE_F6 00328 397279106 , // 67 - NOTE_FS6 00329 420901426 , // 68 - NOTE_G6 00330 445930348 , // 69 - NOTE_GS6 00331 472446402 , // 70 - NOTE_A6 00332 500540857 , // 71 - NOTE_AS6 00333 530302296 , // 72 - NOTE_B6 00334 561835409 , // 73 - NOTE_C7 00335 595244886 , // 74 - NOTE_CS7 00336 630640785 , // 75 - NOTE_D7 00337 668141219 , // 76 - NOTE_DS7 00338 707869666 , // 77 - NOTE_E7 00339 749963030 , // 78 - NOTE_F7 00340 794558212 , // 79 - NOTE_FS7 00341 841802852 , // 80 - NOTE_G7 00342 891860696 , // 81 - NOTE_GS7 00343 944892805 , // 82 - NOTE_A7 00344 1001079030 , // 83 - NOTE_AS7 00345 1060607277 , // 84 - NOTE_B7 00346 1123673503 , // 85 - NOTE_C8 00347 1190489772 , // 86 - NOTE_CS8 00348 1261278886 , // 87 - NOTE_D8 00349 1336279753 , // 88 - NOTE_DS8 00350 }; 00351 00352 #elif (POK_AUD_FREQ==22050) 00353 00354 uint32_t cincs[] ={ 00355 6012954 , // 0 - NOTE_B0 00356 6369407 , // 1 - NOTE_C1 00357 6749234 , // 2 - NOTE_CS1 00358 7150488 , // 3 - NOTE_D1 00359 7575115 , // 4 - NOTE_DS1 00360 8025064 , // 5 - NOTE_E1 00361 8502282 , // 6 - NOTE_F1 00362 9008718 , // 7 - NOTE_FS1 00363 9544372 , // 8 - NOTE_G1 00364 10111191 , // 9 - NOTE_GS1 00365 10713070 , // 10 - NOTE_A1 00366 11350011 , // 11 - NOTE_AS1 00367 12025908 , // 12 - NOTE_B1 00368 12740762 , // 13 - NOTE_C2 00369 13498469 , // 14 - NOTE_CS2 00370 14300975 , // 15 - NOTE_D2 00371 15150229 , // 16 - NOTE_DS2 00372 16052075 , // 17 - NOTE_E2 00373 17006512 , // 18 - NOTE_F2 00374 18017436 , // 19 - NOTE_FS2 00375 19088744 , // 20 - NOTE_G2 00376 20224329 , // 21 - NOTE_GS2 00377 21426141 , // 22 - NOTE_A2 00378 22700022 , // 23 - NOTE_AS2 00379 24049869 , // 24 - NOTE_B2 00380 25479577 , // 25 - NOTE_C3 00381 26994989 , // 26 - NOTE_CS3 00382 28600002 , // 27 - NOTE_D3 00383 30300459 , // 28 - NOTE_DS3 00384 32102202 , // 29 - NOTE_E3 00385 34011077 , // 30 - NOTE_F3 00386 36034873 , // 31 - NOTE_FS3 00387 38177487 , // 32 - NOTE_G3 00388 40446710 , // 33 - NOTE_GS3 00389 42852281 , // 34 - NOTE_A3 00390 45400044 , // 35 - NOTE_AS3 00391 48099738 , // 36 - NOTE_B3 00392 50961102 , // 37 - NOTE_C4 00393 53989979 , // 38 - NOTE_CS4 00394 57200004 , // 39 - NOTE_D4 00395 60602865 , // 40 - NOTE_DS4 00396 64206352 , // 41 - NOTE_E4 00397 68024101 , // 42 - NOTE_F4 00398 72067798 , // 43 - NOTE_FS4 00399 76354974 , // 44 - NOTE_G4 00400 80893420 , // 45 - NOTE_GS4 00401 85704563 , // 46 - NOTE_A4 // 440Hz 00402 90800089 , // 47 - NOTE_AS4 00403 96199476 , // 48 - NOTE_B4 00404 101920256 , // 49 - NOTE_C5 00405 107981906 , // 50 - NOTE_CS5 00406 114401957 , // 51 - NOTE_D5 00407 121203782 , // 52 - NOTE_DS5 00408 128410757 , // 53 - NOTE_E5 00409 136048202 , // 54 - NOTE_F5 00410 144137544 , // 55 - NOTE_FS5 00411 152708000 , // 56 - NOTE_G5 00412 161788788 , // 57 - NOTE_GS5 00413 171409126 , // 58 - NOTE_A5 00414 181602125 , // 59 - NOTE_AS5 00415 192400900 , // 60 - NOTE_B5 00416 203840511 , // 61 - NOTE_C6 00417 215961863 , // 62 - NOTE_CS6 00418 228803913 , // 63 - NOTE_D6 00419 242409512 , // 64 - NOTE_DS6 00420 256823462 , // 65 - NOTE_E6 00421 272094456 , // 66 - NOTE_F6 00422 288275088 , // 67 - NOTE_FS6 00423 305416001 , // 68 - NOTE_G6 00424 323577577 , // 69 - NOTE_GS6 00425 342818251 , // 70 - NOTE_A6 00426 363204250 , // 71 - NOTE_AS6 00427 384799852 , // 72 - NOTE_B6 00428 407681023 , // 73 - NOTE_C7 00429 431923727 , // 74 - NOTE_CS7 00430 457607826 , // 75 - NOTE_D7 00431 484819025 , // 76 - NOTE_DS7 00432 513646923 , // 77 - NOTE_E7 00433 544190861 , // 78 - NOTE_F7 00434 576550177 , // 79 - NOTE_FS7 00435 610832002 , // 80 - NOTE_G7 00436 647155154 , // 81 - NOTE_GS7 00437 685636502 , // 82 - NOTE_A7 00438 726406553 , // 83 - NOTE_AS7 00439 769601652 , // 84 - NOTE_B7 00440 815363993 , // 85 - NOTE_C8 00441 863847454 , // 86 - NOTE_CS8 00442 915213704 , // 87 - NOTE_D8 00443 969636102 , // 88 - NOTE_DS8 00444 }; 00445 00446 00447 #elif (POK_AUD_FREQ==32000) 00448 00449 uint32_t cincs[] ={ 00450 4143301 , // 0 - NOTE_B0 00451 4388920 , // 1 - NOTE_C1 00452 4650644 , // 2 - NOTE_CS1 00453 4927133 , // 3 - NOTE_D1 00454 5219727 , // 4 - NOTE_DS1 00455 5529770 , // 5 - NOTE_E1 00456 5858604 , // 6 - NOTE_F1 00457 6207570 , // 7 - NOTE_FS1 00458 6576669 , // 8 - NOTE_G1 00459 6967242 , // 9 - NOTE_GS1 00460 7381975 , // 10 - NOTE_A1 00461 7820867 , // 11 - NOTE_AS1 00462 8286603 , // 12 - NOTE_B1 00463 8779182 , // 13 - NOTE_C2 00464 9301289 , // 14 - NOTE_CS2 00465 9854266 , // 15 - NOTE_D2 00466 10439455 , // 16 - NOTE_DS2 00467 11060883 , // 17 - NOTE_E2 00468 11718550 , // 18 - NOTE_F2 00469 12415140 , // 19 - NOTE_FS2 00470 13153337 , // 20 - NOTE_G2 00471 13935827 , // 21 - NOTE_GS2 00472 14763950 , // 22 - NOTE_A2 00473 15641734 , // 23 - NOTE_AS2 00474 16571863 , // 24 - NOTE_B2 00475 17557021 , // 25 - NOTE_C3 00476 18601235 , // 26 - NOTE_CS3 00477 19707189 , // 27 - NOTE_D3 00478 20878910 , // 28 - NOTE_DS3 00479 22120424 , // 29 - NOTE_E3 00480 23435757 , // 30 - NOTE_F3 00481 24830280 , // 31 - NOTE_FS3 00482 26306675 , // 32 - NOTE_G3 00483 27870311 , // 33 - NOTE_GS3 00484 29527900 , // 34 - NOTE_A3 00485 31283468 , // 35 - NOTE_AS3 00486 33143726 , // 36 - NOTE_B3 00487 35115384 , // 37 - NOTE_C4 00488 37202470 , // 38 - NOTE_CS4 00489 39414378 , // 39 - NOTE_D4 00490 41759162 , // 40 - NOTE_DS4 00491 44242190 , // 41 - NOTE_E4 00492 46872857 , // 42 - NOTE_F4 00493 49659217 , // 43 - NOTE_FS4 00494 52613349 , // 44 - NOTE_G4 00495 55740622 , // 45 - NOTE_GS4 00496 59055800 , // 46 - NOTE_A4 // 440Hz 00497 62566936 , // 47 - NOTE_AS4 00498 66287451 , // 48 - NOTE_B4 00499 70229426 , // 49 - NOTE_C5 00500 74406282 , // 50 - NOTE_CS5 00501 78830098 , // 51 - NOTE_D5 00502 83516981 , // 52 - NOTE_DS5 00503 88483037 , // 53 - NOTE_E5 00504 93745714 , // 54 - NOTE_F5 00505 99319777 , // 55 - NOTE_FS5 00506 105225357 , // 56 - NOTE_G5 00507 111482587 , // 57 - NOTE_GS5 00508 118111601 , // 58 - NOTE_A5 00509 125135214 , // 59 - NOTE_AS5 00510 132576245 , // 60 - NOTE_B5 00511 140458852 , // 61 - NOTE_C6 00512 148811222 , // 62 - NOTE_CS6 00513 157660196 , // 63 - NOTE_D6 00514 167035305 , // 64 - NOTE_DS6 00515 176967417 , // 65 - NOTE_E6 00516 187490086 , // 66 - NOTE_F6 00517 198639553 , // 67 - NOTE_FS6 00518 210450713 , // 68 - NOTE_G6 00519 222965174 , // 69 - NOTE_GS6 00520 236223201 , // 70 - NOTE_A6 00521 250270429 , // 71 - NOTE_AS6 00522 265151148 , // 72 - NOTE_B6 00523 280917705 , // 73 - NOTE_C7 00524 297622443 , // 74 - NOTE_CS7 00525 315320393 , // 75 - NOTE_D7 00526 334070609 , // 76 - NOTE_DS7 00527 353934833 , // 77 - NOTE_E7 00528 374981515 , // 78 - NOTE_F7 00529 397279106 , // 79 - NOTE_FS7 00530 420901426 , // 80 - NOTE_G7 00531 445930348 , // 81 - NOTE_GS7 00532 472446402 , // 82 - NOTE_A7 00533 500539515 , // 83 - NOTE_AS7 00534 530303638 , // 84 - NOTE_B7 00535 561836751 , // 85 - NOTE_C8 00536 595244886 , // 86 - NOTE_CS8 00537 630639443 , // 87 - NOTE_D8 00538 668139876 , // 88 - NOTE_DS8 00539 }; 00540 00541 00542 #elif (POK_AUD_FREQ==44100) 00543 00544 uint32_t cincs[] ={ 00545 3006477 , // 0 - NOTE_B0 00546 3184704 , // 1 - NOTE_C1 00547 3374617 , // 2 - NOTE_CS1 00548 3575244 , // 3 - NOTE_D1 00549 3787557 , // 4 - NOTE_DS1 00550 4012532 , // 5 - NOTE_E1 00551 4251141 , // 6 - NOTE_F1 00552 4504359 , // 7 - NOTE_FS1 00553 4772186 , // 8 - NOTE_G1 00554 5055595 , // 9 - NOTE_GS1 00555 5356535 , // 10 - NOTE_A1 00556 5675006 , // 11 - NOTE_AS1 00557 6012954 , // 12 - NOTE_B1 00558 6370381 , // 13 - NOTE_C2 00559 6749234 , // 14 - NOTE_CS2 00560 7150488 , // 15 - NOTE_D2 00561 7575115 , // 16 - NOTE_DS2 00562 8026038 , // 17 - NOTE_E2 00563 8503256 , // 18 - NOTE_F2 00564 9008718 , // 19 - NOTE_FS2 00565 9544372 , // 20 - NOTE_G2 00566 10112164 , // 21 - NOTE_GS2 00567 10713070 , // 22 - NOTE_A2 00568 11350011 , // 23 - NOTE_AS2 00569 12024935 , // 24 - NOTE_B2 00570 12739788 , // 25 - NOTE_C3 00571 13497495 , // 26 - NOTE_CS3 00572 14300001 , // 27 - NOTE_D3 00573 15150229 , // 28 - NOTE_DS3 00574 16051101 , // 29 - NOTE_E3 00575 17005538 , // 30 - NOTE_F3 00576 18017436 , // 31 - NOTE_FS3 00577 19088744 , // 32 - NOTE_G3 00578 20223355 , // 33 - NOTE_GS3 00579 21426141 , // 34 - NOTE_A3 00580 22700022 , // 35 - NOTE_AS3 00581 24049869 , // 36 - NOTE_B3 00582 25480551 , // 37 - NOTE_C4 00583 26994989 , // 38 - NOTE_CS4 00584 28600002 , // 39 - NOTE_D4 00585 30301433 , // 40 - NOTE_DS4 00586 32103176 , // 41 - NOTE_E4 00587 34012051 , // 42 - NOTE_F4 00588 36033899 , // 43 - NOTE_FS4 00589 38177487 , // 44 - NOTE_G4 00590 40446710 , // 45 - NOTE_GS4 00591 42852281 , // 46 - NOTE_A4 // 440Hz 00592 45400044 , // 47 - NOTE_AS4 00593 48099738 , // 48 - NOTE_B4 00594 50960128 , // 49 - NOTE_C5 00595 53990953 , // 50 - NOTE_CS5 00596 57200978 , // 51 - NOTE_D5 00597 60601891 , // 52 - NOTE_DS5 00598 64205378 , // 53 - NOTE_E5 00599 68024101 , // 54 - NOTE_F5 00600 72068772 , // 55 - NOTE_FS5 00601 76354000 , // 56 - NOTE_G5 00602 80894394 , // 57 - NOTE_GS5 00603 85704563 , // 58 - NOTE_A5 00604 90801063 , // 59 - NOTE_AS5 00605 96200450 , // 60 - NOTE_B5 00606 101920256 , // 61 - NOTE_C6 00607 107980932 , // 62 - NOTE_CS6 00608 114401957 , // 63 - NOTE_D6 00609 121204756 , // 64 - NOTE_DS6 00610 128411731 , // 65 - NOTE_E6 00611 136047228 , // 66 - NOTE_F6 00612 144137544 , // 67 - NOTE_FS6 00613 152708000 , // 68 - NOTE_G6 00614 161788788 , // 69 - NOTE_GS6 00615 171409126 , // 70 - NOTE_A6 00616 181602125 , // 71 - NOTE_AS6 00617 192399926 , // 72 - NOTE_B6 00618 203840511 , // 73 - NOTE_C7 00619 215961863 , // 74 - NOTE_CS7 00620 228803913 , // 75 - NOTE_D7 00621 242409512 , // 76 - NOTE_DS7 00622 256823462 , // 77 - NOTE_E7 00623 272095430 , // 78 - NOTE_F7 00624 288275088 , // 79 - NOTE_FS7 00625 305416001 , // 80 - NOTE_G7 00626 323577577 , // 81 - NOTE_GS7 00627 342818251 , // 82 - NOTE_A7 00628 363203276 , // 83 - NOTE_AS7 00629 384800826 , // 84 - NOTE_B7 00630 407681997 , // 85 - NOTE_C8 00631 431923727 , // 86 - NOTE_CS8 00632 457606852 , // 87 - NOTE_D8 00633 484818051 , // 88 - NOTE_DS8 00634 }; 00635 00636 00637 00638 #endif 00639 00640 /** NOTE TO TEXT TABLES **/ 00641 00642 const char note_0[] = "B-0"; // 0 - NOTE_B0 00643 const char note_1[] = "C-1"; // 1 - NOTE_C1 00644 const char note_2[] = "C#1"; // 2 - NOTE_CS1 00645 const char note_3[] = "D-1"; // 3 - NOTE_D1 00646 const char note_4[] = "D#1"; // 4 - NOTE_DS1 00647 const char note_5[] = "E-1"; // 5 - NOTE_E1 00648 const char note_6[] = "F-1"; // 6 - NOTE_F1 00649 const char note_7[] = "F#1"; // 7 - NOTE_FS1 00650 const char note_8[] = "G-1"; // 8 - NOTE_G1 00651 const char note_9[] = "G#1"; // 9 - NOTE_GS1 00652 const char note_10[] = "A-1"; // 10 - NOTE_A1 00653 const char note_11[] = "A#1"; // 11 - NOTE_AS1 00654 const char note_12[] = "B-1"; // 12 - NOTE_B1 00655 const char note_13[] = "C-2"; // 2 - NOTE_C2 00656 const char note_14[] = "C#2"; // 2 - NOTE_CS2 00657 const char note_15[] = "D-2"; // 3 - NOTE_D2 00658 const char note_16[] = "D#2"; // 4 - NOTE_DS2 00659 const char note_17[] = "E-2"; // 5 - NOTE_E2 00660 const char note_18[] = "F-2"; // 6 - NOTE_F2 00661 const char note_19[] = "F#2"; // 7 - NOTE_FS2 00662 const char note_20[] = "G-2"; // 8 - NOTE_G2 00663 const char note_21[] = "G#2"; // 9 - NOTE_GS2 00664 const char note_22[] = "A-2"; // 20 - NOTE_A2 00665 const char note_23[] = "A#2"; // 22 - NOTE_AS2 00666 const char note_24[] = "B-2"; // 22 - NOTE_B2 00667 const char note_25[] = "C-3"; // 3 - NOTE_C3 00668 const char note_26[] = "C#3"; // 3 - NOTE_CS3 00669 const char note_27[] = "D-3"; // 3 - NOTE_D3 00670 const char note_28[] = "D#3"; // 4 - NOTE_DS3 00671 const char note_29[] = "E-3"; // 5 - NOTE_E3 00672 const char note_30[] = "F-3"; // 6 - NOTE_F3 00673 const char note_31[] = "F#3"; // 7 - NOTE_FS3 00674 const char note_32[] = "G-3"; // 8 - NOTE_G3 00675 const char note_33[] = "G#3"; // 9 - NOTE_GS3 00676 const char note_34[] = "A-3"; // 30 - NOTE_A3 00677 const char note_35[] = "A#3"; // 33 - NOTE_AS3 00678 const char note_36[] = "B-3"; // 33 - NOTE_B3 00679 const char note_37[] = "C-4"; // 4 - NOTE_C4 00680 const char note_38[] = "C#4"; // 4 - NOTE_CS4 00681 const char note_39[] = "D-4"; // 3 - NOTE_D4 00682 const char note_40[] = "D#4"; // 4 - NOTE_DS4 00683 const char note_41[] = "E-4"; // 5 - NOTE_E4 00684 const char note_42[] = "F-4"; // 6 - NOTE_F4 00685 const char note_43[] = "F#4"; // 7 - NOTE_FS4 00686 const char note_44[] = "G-4"; // 8 - NOTE_G4 00687 const char note_45[] = "G#4"; // 9 - NOTE_GS4 00688 const char note_46[] = "A-4"; // 40 - NOTE_A4 00689 const char note_47[] = "A#4"; // 44 - NOTE_AS4 00690 const char note_48[] = "B-4"; // 44 - NOTE_B4 00691 const char note_49[] = "C-5"; // 5 - NOTE_C5 00692 const char note_50[] = "C#5"; // 5 - NOTE_CS5 00693 const char note_51[] = "D-5"; // 3 - NOTE_D5 00694 const char note_52[] = "D#5"; // 4 - NOTE_DS5 00695 const char note_53[] = "E-5"; // 5 - NOTE_E5 00696 const char note_54[] = "F-5"; // 6 - NOTE_F5 00697 const char note_55[] = "F#5"; // 7 - NOTE_FS5 00698 const char note_56[] = "G-5"; // 8 - NOTE_G5 00699 const char note_57[] = "G#5"; // 9 - NOTE_GS5 00700 const char note_58[] = "A-5"; // 50 - NOTE_A5 00701 const char note_59[] = "A#5"; // 55 - NOTE_AS5 00702 const char note_60[] = "B-5"; // 55 - NOTE_B5 00703 const char note_61[] = "C-6"; // 6 - NOTE_C6 00704 const char note_62[] = "C#6"; // 6 - NOTE_CS6 00705 const char note_63[] = "D-6"; // 3 - NOTE_D6 00706 const char note_64[] = "D#6"; // 4 - NOTE_DS6 00707 const char note_65[] = "E-6"; // 5 - NOTE_E6 00708 const char note_66[] = "F-6"; // 6 - NOTE_F6 00709 const char note_67[] = "F#6"; // 7 - NOTE_FS6 00710 const char note_68[] = "G-6"; // 8 - NOTE_G6 00711 const char note_69[] = "G#6"; // 9 - NOTE_GS6 00712 const char note_70[] = "A-6"; // 60 - NOTE_A6 00713 const char note_71[] = "A#6"; // 66 - NOTE_AS6 00714 const char note_72[] = "B-6"; // 66 - NOTE_B6 00715 const char note_73[] = "C-7"; // 7 - NOTE_C7 00716 const char note_74[] = "C#7"; // 7 - NOTE_CS7 00717 const char note_75[] = "D-7"; // 3 - NOTE_D7 00718 const char note_76[] = "D#7"; // 4 - NOTE_DS7 00719 const char note_77[] = "E-7"; // 5 - NOTE_E7 00720 const char note_78[] = "F-7"; // 6 - NOTE_F7 00721 const char note_79[] = "F#7"; // 7 - NOTE_FS7 00722 const char note_80[] = "G-7"; // 8 - NOTE_G7 00723 const char note_81[] = "G#7"; // 9 - NOTE_GS7 00724 const char note_82[] = "A-7"; // 70 - NOTE_A7 00725 const char note_83[] = "A#7"; // 77 - NOTE_AS7 00726 const char note_84[] = "B-7"; // 77 - NOTE_B7 00727 const char note_85[] = "C-8"; // 8 - NOTE_C8 00728 const char note_86[] = "C#8"; // 8 - NOTE_CS8 00729 const char note_87[] = "D-8"; // 3 - NOTE_D8 00730 const char note_88[] = "D#8"; // 4 - NOTE_DS8 00731 00732 const char* note_table[] = { 00733 note_0, 00734 note_1, 00735 note_2, 00736 note_3, 00737 note_4, 00738 note_5, 00739 note_6, 00740 note_7, 00741 note_8, 00742 note_9, 00743 note_10, 00744 note_11, 00745 note_12, 00746 note_13, 00747 note_14, 00748 note_15, 00749 note_16, 00750 note_17, 00751 note_18, 00752 note_19, 00753 note_20, 00754 note_21, 00755 note_22, 00756 note_23, 00757 note_24, 00758 note_25, 00759 note_26, 00760 note_27, 00761 note_28, 00762 note_29, 00763 note_30, 00764 note_31, 00765 note_32, 00766 note_33, 00767 note_34, 00768 note_35, 00769 note_36, 00770 note_37, 00771 note_38, 00772 note_39, 00773 note_40, 00774 note_41, 00775 note_42, 00776 note_43, 00777 note_44, 00778 note_45, 00779 note_46, 00780 note_47, 00781 note_48, 00782 note_49, 00783 note_50, 00784 note_51, 00785 note_52, 00786 note_53, 00787 note_54, 00788 note_55, 00789 note_56, 00790 note_57, 00791 note_58, 00792 note_59, 00793 note_60, 00794 note_61, 00795 note_62, 00796 note_63, 00797 note_64, 00798 note_65, 00799 note_66, 00800 note_67, 00801 note_68, 00802 note_69, 00803 note_70, 00804 note_71, 00805 note_72, 00806 note_73, 00807 note_74, 00808 note_75, 00809 note_76, 00810 note_77, 00811 note_78, 00812 note_79, 00813 note_80, 00814 note_81, 00815 note_82, 00816 note_83, 00817 note_84, 00818 note_85, 00819 note_86, 00820 note_87, 00821 note_88, 00822 }; 00823 00824 void getNoteString(char * buffer, uint8_t i) { 00825 if (i>88) strcpy(buffer,"@@@"); 00826 else strcpy(buffer, note_table[i]); 00827 } 00828 00829
Generated on Tue Jul 12 2022 11:20:40 by 1.7.2