PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)
Dependents: YATTT sd_map_test cPong SnowDemo ... more
PokittoLib
Library for programming Pokitto hardware
How to Use
- Import this library to online compiler (see button "import" on the right hand side
- DO NOT import mbed-src anymore, a better version is now included inside PokittoLib
- Change My_settings.h according to your project
- Start coding!
POKITTO_LIBS/Synth/Synth_helpers.cpp
- Committer:
- Pokitto
- Date:
- 2019-12-25
- Revision:
- 71:531419862202
- Parent:
- 66:6281a40d73e6
File content as of revision 71:531419862202:
/**************************************************************************/ /*! @file Synth_envfuncs.cpp @author Jonne Valola @section LICENSE Pokitto development stage library Software License Agreement Copyright (c) 2015, Jonne Valola ("Author") All rights reserved. This library is intended solely for the purpose of Pokitto development. Redistribution and use in source and binary forms, with or without modification requires written permission from Author. */ /**************************************************************************/ #include "Pokitto.h" #include "Synth.h" #include "Pokitto_settings.h" #define PROGMEM #define pgm_read_byte(addr) (*(const unsigned char *)(addr)) #ifndef WIN32 #ifndef pgm_read_word #define pgm_read_word(addr) (*(const unsigned short *)(addr)) #endif #else #define pgm_read_word(addr) (*(const unsigned int *)(addr)) #endif // WIN32 // http://www.arklyffe.com/main/2010/08/29/xorshift-pseudorandom-number-generator/ static uint8_t y8 = 1; static uint16_t y16 = 1; // returns values from 1 to 255 inclusive, period is 255 uint8_t xorshift8(void) { //y8 ^= (y8 << 7); y8 ^= (y8 * 128); y8 ^= (y8 >> 5); //return y8 ^= (y8 << 3); return y8 ^= (y8 * 8); } // returns values from 1 to 65535 inclusive, period is 65535 uint16_t xorshift16(void) { //y16 ^= (y16 << 13); y16 ^= (y16 * 8192); y16 ^= (y16 >> 9); //return y16 ^= (y16 << 7); return y16 ^= (y16 * 128); } int8_t arptable[MAX_ARPMODE][5] = { {0,0,0,0,0}, // Off {0,4,7,4,0}, // Major tonic, 3rd, 5th {0,3,7,3,0}, // Minor tonic, 3rd, 5th {0,1,0,-1,0}, // vibrato test {0,12,0,12,0}, // octave test {0,11,14,17,21}, // funky test }; /** VITAL TABLES **/ #if (POK_AUD_FREQ==8000) uint32_t cincs[] ={ 16573205 , // 0 - NOTE_B0 17555679 , // 1 - NOTE_C1 18602577 , // 2 - NOTE_CS1 19708531 , // 3 - NOTE_D1 20878910 , // 4 - NOTE_DS1 22119082 , // 5 - NOTE_E1 23434415 , // 6 - NOTE_F1 24830280 , // 7 - NOTE_FS1 26306675 , // 8 - NOTE_G1 27868969 , // 9 - NOTE_GS1 29527900 , // 10 - NOTE_A1 31283468 , // 11 - NOTE_AS1 33146410 , // 12 - NOTE_B1 35116726 , // 13 - NOTE_C2 37205154 , // 14 - NOTE_CS2 39417062 , // 15 - NOTE_D2 41757820 , // 16 - NOTE_DS2 44243532 , // 17 - NOTE_E2 46874199 , // 18 - NOTE_F2 49660559 , // 19 - NOTE_FS2 52613349 , // 20 - NOTE_G2 55743307 , // 21 - NOTE_GS2 59055800 , // 22 - NOTE_A2 62566936 , // 23 - NOTE_AS2 66287451 , // 24 - NOTE_B2 70228084 , // 25 - NOTE_C3 74404940 , // 26 - NOTE_CS3 78828756 , // 27 - NOTE_D3 83515639 , // 28 - NOTE_DS3 88481695 , // 29 - NOTE_E3 93743030 , // 30 - NOTE_F3 99321119 , // 31 - NOTE_FS3 105226699 , // 32 - NOTE_G3 111481245 , // 33 - NOTE_GS3 118111601 , // 34 - NOTE_A3 125133872 , // 35 - NOTE_AS3 132574903 , // 36 - NOTE_B3 140461537 , // 37 - NOTE_C4 148809879 , // 38 - NOTE_CS4 157657512 , // 39 - NOTE_D4 167036647 , // 40 - NOTE_DS4 176968759 , // 41 - NOTE_E4 187491429 , // 42 - NOTE_F4 198636869 , // 43 - NOTE_FS4 210453397 , // 44 - NOTE_G4 222962490 , // 45 - NOTE_GS4 236223201 , // 46 - NOTE_A4 // 440Hz 250267744 , // 47 - NOTE_AS4 265149806 , // 48 - NOTE_B4 280917705 , // 49 - NOTE_C5 297625127 , // 50 - NOTE_CS5 315320393 , // 51 - NOTE_D5 334067925 , // 52 - NOTE_DS5 353932149 , // 53 - NOTE_E5 374982857 , // 54 - NOTE_F5 397279106 , // 55 - NOTE_FS5 420901426 , // 56 - NOTE_G5 445930348 , // 57 - NOTE_GS5 472446402 , // 58 - NOTE_A5 500540857 , // 59 - NOTE_AS5 530304981 , // 60 - NOTE_B5 561835409 , // 61 - NOTE_C6 595244886 , // 62 - NOTE_CS6 630640785 , // 63 - NOTE_D6 668141219 , // 64 - NOTE_DS6 707869666 , // 65 - NOTE_E6 749960346 , // 66 - NOTE_F6 794558212 , // 67 - NOTE_FS6 841802852 , // 68 - NOTE_G6 891860696 , // 69 - NOTE_GS6 944892805 , // 70 - NOTE_A6 1001081715 , // 71 - NOTE_AS6 1060604593 , // 72 - NOTE_B6 1123670819 , // 73 - NOTE_C7 1190489772 , // 74 - NOTE_CS7 1261281571 , // 75 - NOTE_D7 1336282437 , // 76 - NOTE_DS7 1415739332 , // 77 - NOTE_E7 1499926060 , // 78 - NOTE_F7 1589116424 , // 79 - NOTE_FS7 1683605705 , // 80 - NOTE_G7 1783721392 , // 81 - NOTE_GS7 1889785610 , // 82 - NOTE_A7 2002158060 , // 83 - NOTE_AS7 2121214554 , // 84 - NOTE_B7 2247347006 , // 85 - NOTE_C8 2380979544 , // 86 - NOTE_CS8 2522557773 , // 87 - NOTE_D8 2672559505 , // 88 - NOTE_DS8 }; #elif (POK_AUD_FREQ==11025) uint32_t cincs[] ={ 12025908 , // 0 - NOTE_B0 12738815 , // 1 - NOTE_C1 13498469 , // 2 - NOTE_CS1 14300975 , // 3 - NOTE_D1 15150229 , // 4 - NOTE_DS1 16050127 , // 5 - NOTE_E1 17004564 , // 6 - NOTE_F1 18017436 , // 7 - NOTE_FS1 19088744 , // 8 - NOTE_G1 20222381 , // 9 - NOTE_GS1 21426141 , // 10 - NOTE_A1 22700022 , // 11 - NOTE_AS1 24051817 , // 12 - NOTE_B1 25481525 , // 13 - NOTE_C2 26996937 , // 14 - NOTE_CS2 28601950 , // 15 - NOTE_D2 30300459 , // 16 - NOTE_DS2 32104150 , // 17 - NOTE_E2 34013024 , // 18 - NOTE_F2 36034873 , // 19 - NOTE_FS2 38177487 , // 20 - NOTE_G2 40448658 , // 21 - NOTE_GS2 42852281 , // 22 - NOTE_A2 45400044 , // 23 - NOTE_AS2 48099738 , // 24 - NOTE_B2 50959154 , // 25 - NOTE_C3 53989979 , // 26 - NOTE_CS3 57200004 , // 27 - NOTE_D3 60600917 , // 28 - NOTE_DS3 64204405 , // 29 - NOTE_E3 68022153 , // 30 - NOTE_F3 72069746 , // 31 - NOTE_FS3 76354974 , // 32 - NOTE_G3 80893420 , // 33 - NOTE_GS3 85704563 , // 34 - NOTE_A3 90800089 , // 35 - NOTE_AS3 96199476 , // 36 - NOTE_B3 101922203 , // 37 - NOTE_C4 107979958 , // 38 - NOTE_CS4 114400009 , // 39 - NOTE_D4 121205730 , // 40 - NOTE_DS4 128412705 , // 41 - NOTE_E4 136048202 , // 42 - NOTE_F4 144135596 , // 43 - NOTE_FS4 152709948 , // 44 - NOTE_G4 161786841 , // 45 - NOTE_GS4 171409126 , // 46 - NOTE_A4 // 440Hz 181600177 , // 47 - NOTE_AS4 192398952 , // 48 - NOTE_B4 203840511 , // 49 - NOTE_C5 215963811 , // 50 - NOTE_CS5 228803913 , // 51 - NOTE_D5 242407565 , // 52 - NOTE_DS5 256821514 , // 53 - NOTE_E5 272096404 , // 54 - NOTE_F5 288275088 , // 55 - NOTE_FS5 305416001 , // 56 - NOTE_G5 323577577 , // 57 - NOTE_GS5 342818251 , // 58 - NOTE_A5 363204250 , // 59 - NOTE_AS5 384801800 , // 60 - NOTE_B5 407681023 , // 61 - NOTE_C6 431923727 , // 62 - NOTE_CS6 457607826 , // 63 - NOTE_D6 484819025 , // 64 - NOTE_DS6 513646923 , // 65 - NOTE_E6 544188913 , // 66 - NOTE_F6 576550177 , // 67 - NOTE_FS6 610832002 , // 68 - NOTE_G6 647155154 , // 69 - NOTE_GS6 685636502 , // 70 - NOTE_A6 726408500 , // 71 - NOTE_AS6 769599704 , // 72 - NOTE_B6 815362045 , // 73 - NOTE_C7 863847454 , // 74 - NOTE_CS7 915215652 , // 75 - NOTE_D7 969638050 , // 76 - NOTE_DS7 1027293846 , // 77 - NOTE_E7 1088381721 , // 78 - NOTE_F7 1153100353 , // 79 - NOTE_FS7 1221664003 , // 80 - NOTE_G7 1294310307 , // 81 - NOTE_GS7 1371273005 , // 82 - NOTE_A7 1452813105 , // 83 - NOTE_AS7 1539203304 , // 84 - NOTE_B7 1630727986 , // 85 - NOTE_C8 1727694908 , // 86 - NOTE_CS8 1830427409 , // 87 - NOTE_D8 1939272203 , // 88 - NOTE_DS8 }; #elif (POK_AUD_FREQ==16000) uint32_t cincs[] ={ 8286603 , // 0 - NOTE_B0 8777839 , // 1 - NOTE_C1 9301289 , // 2 - NOTE_CS1 9854266 , // 3 - NOTE_D1 10439455 , // 4 - NOTE_DS1 11059541 , // 5 - NOTE_E1 11717208 , // 6 - NOTE_F1 12415140 , // 7 - NOTE_FS1 13153337 , // 8 - NOTE_G1 13934485 , // 9 - NOTE_GS1 14763950 , // 10 - NOTE_A1 15641734 , // 11 - NOTE_AS1 16573205 , // 12 - NOTE_B1 17558363 , // 13 - NOTE_C2 18602577 , // 14 - NOTE_CS2 19708531 , // 15 - NOTE_D2 20878910 , // 16 - NOTE_DS2 22121766 , // 17 - NOTE_E2 23437100 , // 18 - NOTE_F2 24830280 , // 19 - NOTE_FS2 26306675 , // 20 - NOTE_G2 27871653 , // 21 - NOTE_GS2 29527900 , // 22 - NOTE_A2 31283468 , // 23 - NOTE_AS2 33143726 , // 24 - NOTE_B2 35114042 , // 25 - NOTE_C3 37202470 , // 26 - NOTE_CS3 39414378 , // 27 - NOTE_D3 41757820 , // 28 - NOTE_DS3 44240847 , // 29 - NOTE_E3 46871515 , // 30 - NOTE_F3 49660559 , // 31 - NOTE_FS3 52613349 , // 32 - NOTE_G3 55740622 , // 33 - NOTE_GS3 59055800 , // 34 - NOTE_A3 62566936 , // 35 - NOTE_AS3 66287451 , // 36 - NOTE_B3 70230768 , // 37 - NOTE_C4 74404940 , // 38 - NOTE_CS4 78828756 , // 39 - NOTE_D4 83518323 , // 40 - NOTE_DS4 88484379 , // 41 - NOTE_E4 93745714 , // 42 - NOTE_F4 99318434 , // 43 - NOTE_FS4 105226699 , // 44 - NOTE_G4 111481245 , // 45 - NOTE_GS4 118111601 , // 46 - NOTE_A4 // 440Hz 125133872 , // 47 - NOTE_AS4 132574903 , // 48 - NOTE_B4 140458852 , // 49 - NOTE_C5 148812564 , // 50 - NOTE_CS5 157660196 , // 51 - NOTE_D5 167033962 , // 52 - NOTE_DS5 176966074 , // 53 - NOTE_E5 187491429 , // 54 - NOTE_F5 198639553 , // 55 - NOTE_FS5 210450713 , // 56 - NOTE_G5 222965174 , // 57 - NOTE_GS5 236223201 , // 58 - NOTE_A5 250270429 , // 59 - NOTE_AS5 265152490 , // 60 - NOTE_B5 280917705 , // 61 - NOTE_C6 297622443 , // 62 - NOTE_CS6 315320393 , // 63 - NOTE_D6 334070609 , // 64 - NOTE_DS6 353934833 , // 65 - NOTE_E6 374980173 , // 66 - NOTE_F6 397279106 , // 67 - NOTE_FS6 420901426 , // 68 - NOTE_G6 445930348 , // 69 - NOTE_GS6 472446402 , // 70 - NOTE_A6 500540857 , // 71 - NOTE_AS6 530302296 , // 72 - NOTE_B6 561835409 , // 73 - NOTE_C7 595244886 , // 74 - NOTE_CS7 630640785 , // 75 - NOTE_D7 668141219 , // 76 - NOTE_DS7 707869666 , // 77 - NOTE_E7 749963030 , // 78 - NOTE_F7 794558212 , // 79 - NOTE_FS7 841802852 , // 80 - NOTE_G7 891860696 , // 81 - NOTE_GS7 944892805 , // 82 - NOTE_A7 1001079030 , // 83 - NOTE_AS7 1060607277 , // 84 - NOTE_B7 1123673503 , // 85 - NOTE_C8 1190489772 , // 86 - NOTE_CS8 1261278886 , // 87 - NOTE_D8 1336279753 , // 88 - NOTE_DS8 }; #elif (POK_AUD_FREQ==22050) uint32_t cincs[] ={ 6012954 , // 0 - NOTE_B0 6369407 , // 1 - NOTE_C1 6749234 , // 2 - NOTE_CS1 7150488 , // 3 - NOTE_D1 7575115 , // 4 - NOTE_DS1 8025064 , // 5 - NOTE_E1 8502282 , // 6 - NOTE_F1 9008718 , // 7 - NOTE_FS1 9544372 , // 8 - NOTE_G1 10111191 , // 9 - NOTE_GS1 10713070 , // 10 - NOTE_A1 11350011 , // 11 - NOTE_AS1 12025908 , // 12 - NOTE_B1 12740762 , // 13 - NOTE_C2 13498469 , // 14 - NOTE_CS2 14300975 , // 15 - NOTE_D2 15150229 , // 16 - NOTE_DS2 16052075 , // 17 - NOTE_E2 17006512 , // 18 - NOTE_F2 18017436 , // 19 - NOTE_FS2 19088744 , // 20 - NOTE_G2 20224329 , // 21 - NOTE_GS2 21426141 , // 22 - NOTE_A2 22700022 , // 23 - NOTE_AS2 24049869 , // 24 - NOTE_B2 25479577 , // 25 - NOTE_C3 26994989 , // 26 - NOTE_CS3 28600002 , // 27 - NOTE_D3 30300459 , // 28 - NOTE_DS3 32102202 , // 29 - NOTE_E3 34011077 , // 30 - NOTE_F3 36034873 , // 31 - NOTE_FS3 38177487 , // 32 - NOTE_G3 40446710 , // 33 - NOTE_GS3 42852281 , // 34 - NOTE_A3 45400044 , // 35 - NOTE_AS3 48099738 , // 36 - NOTE_B3 50961102 , // 37 - NOTE_C4 53989979 , // 38 - NOTE_CS4 57200004 , // 39 - NOTE_D4 60602865 , // 40 - NOTE_DS4 64206352 , // 41 - NOTE_E4 68024101 , // 42 - NOTE_F4 72067798 , // 43 - NOTE_FS4 76354974 , // 44 - NOTE_G4 80893420 , // 45 - NOTE_GS4 85704563 , // 46 - NOTE_A4 // 440Hz 90800089 , // 47 - NOTE_AS4 96199476 , // 48 - NOTE_B4 101920256 , // 49 - NOTE_C5 107981906 , // 50 - NOTE_CS5 114401957 , // 51 - NOTE_D5 121203782 , // 52 - NOTE_DS5 128410757 , // 53 - NOTE_E5 136048202 , // 54 - NOTE_F5 144137544 , // 55 - NOTE_FS5 152708000 , // 56 - NOTE_G5 161788788 , // 57 - NOTE_GS5 171409126 , // 58 - NOTE_A5 181602125 , // 59 - NOTE_AS5 192400900 , // 60 - NOTE_B5 203840511 , // 61 - NOTE_C6 215961863 , // 62 - NOTE_CS6 228803913 , // 63 - NOTE_D6 242409512 , // 64 - NOTE_DS6 256823462 , // 65 - NOTE_E6 272094456 , // 66 - NOTE_F6 288275088 , // 67 - NOTE_FS6 305416001 , // 68 - NOTE_G6 323577577 , // 69 - NOTE_GS6 342818251 , // 70 - NOTE_A6 363204250 , // 71 - NOTE_AS6 384799852 , // 72 - NOTE_B6 407681023 , // 73 - NOTE_C7 431923727 , // 74 - NOTE_CS7 457607826 , // 75 - NOTE_D7 484819025 , // 76 - NOTE_DS7 513646923 , // 77 - NOTE_E7 544190861 , // 78 - NOTE_F7 576550177 , // 79 - NOTE_FS7 610832002 , // 80 - NOTE_G7 647155154 , // 81 - NOTE_GS7 685636502 , // 82 - NOTE_A7 726406553 , // 83 - NOTE_AS7 769601652 , // 84 - NOTE_B7 815363993 , // 85 - NOTE_C8 863847454 , // 86 - NOTE_CS8 915213704 , // 87 - NOTE_D8 969636102 , // 88 - NOTE_DS8 }; #elif (POK_AUD_FREQ==32000) uint32_t cincs[] ={ 4143301 , // 0 - NOTE_B0 4388920 , // 1 - NOTE_C1 4650644 , // 2 - NOTE_CS1 4927133 , // 3 - NOTE_D1 5219727 , // 4 - NOTE_DS1 5529770 , // 5 - NOTE_E1 5858604 , // 6 - NOTE_F1 6207570 , // 7 - NOTE_FS1 6576669 , // 8 - NOTE_G1 6967242 , // 9 - NOTE_GS1 7381975 , // 10 - NOTE_A1 7820867 , // 11 - NOTE_AS1 8286603 , // 12 - NOTE_B1 8779182 , // 13 - NOTE_C2 9301289 , // 14 - NOTE_CS2 9854266 , // 15 - NOTE_D2 10439455 , // 16 - NOTE_DS2 11060883 , // 17 - NOTE_E2 11718550 , // 18 - NOTE_F2 12415140 , // 19 - NOTE_FS2 13153337 , // 20 - NOTE_G2 13935827 , // 21 - NOTE_GS2 14763950 , // 22 - NOTE_A2 15641734 , // 23 - NOTE_AS2 16571863 , // 24 - NOTE_B2 17557021 , // 25 - NOTE_C3 18601235 , // 26 - NOTE_CS3 19707189 , // 27 - NOTE_D3 20878910 , // 28 - NOTE_DS3 22120424 , // 29 - NOTE_E3 23435757 , // 30 - NOTE_F3 24830280 , // 31 - NOTE_FS3 26306675 , // 32 - NOTE_G3 27870311 , // 33 - NOTE_GS3 29527900 , // 34 - NOTE_A3 31283468 , // 35 - NOTE_AS3 33143726 , // 36 - NOTE_B3 35115384 , // 37 - NOTE_C4 37202470 , // 38 - NOTE_CS4 39414378 , // 39 - NOTE_D4 41759162 , // 40 - NOTE_DS4 44242190 , // 41 - NOTE_E4 46872857 , // 42 - NOTE_F4 49659217 , // 43 - NOTE_FS4 52613349 , // 44 - NOTE_G4 55740622 , // 45 - NOTE_GS4 59055800 , // 46 - NOTE_A4 // 440Hz 62566936 , // 47 - NOTE_AS4 66287451 , // 48 - NOTE_B4 70229426 , // 49 - NOTE_C5 74406282 , // 50 - NOTE_CS5 78830098 , // 51 - NOTE_D5 83516981 , // 52 - NOTE_DS5 88483037 , // 53 - NOTE_E5 93745714 , // 54 - NOTE_F5 99319777 , // 55 - NOTE_FS5 105225357 , // 56 - NOTE_G5 111482587 , // 57 - NOTE_GS5 118111601 , // 58 - NOTE_A5 125135214 , // 59 - NOTE_AS5 132576245 , // 60 - NOTE_B5 140458852 , // 61 - NOTE_C6 148811222 , // 62 - NOTE_CS6 157660196 , // 63 - NOTE_D6 167035305 , // 64 - NOTE_DS6 176967417 , // 65 - NOTE_E6 187490086 , // 66 - NOTE_F6 198639553 , // 67 - NOTE_FS6 210450713 , // 68 - NOTE_G6 222965174 , // 69 - NOTE_GS6 236223201 , // 70 - NOTE_A6 250270429 , // 71 - NOTE_AS6 265151148 , // 72 - NOTE_B6 280917705 , // 73 - NOTE_C7 297622443 , // 74 - NOTE_CS7 315320393 , // 75 - NOTE_D7 334070609 , // 76 - NOTE_DS7 353934833 , // 77 - NOTE_E7 374981515 , // 78 - NOTE_F7 397279106 , // 79 - NOTE_FS7 420901426 , // 80 - NOTE_G7 445930348 , // 81 - NOTE_GS7 472446402 , // 82 - NOTE_A7 500539515 , // 83 - NOTE_AS7 530303638 , // 84 - NOTE_B7 561836751 , // 85 - NOTE_C8 595244886 , // 86 - NOTE_CS8 630639443 , // 87 - NOTE_D8 668139876 , // 88 - NOTE_DS8 }; #elif (POK_AUD_FREQ==44100) uint32_t cincs[] ={ 3006477 , // 0 - NOTE_B0 3184704 , // 1 - NOTE_C1 3374617 , // 2 - NOTE_CS1 3575244 , // 3 - NOTE_D1 3787557 , // 4 - NOTE_DS1 4012532 , // 5 - NOTE_E1 4251141 , // 6 - NOTE_F1 4504359 , // 7 - NOTE_FS1 4772186 , // 8 - NOTE_G1 5055595 , // 9 - NOTE_GS1 5356535 , // 10 - NOTE_A1 5675006 , // 11 - NOTE_AS1 6012954 , // 12 - NOTE_B1 6370381 , // 13 - NOTE_C2 6749234 , // 14 - NOTE_CS2 7150488 , // 15 - NOTE_D2 7575115 , // 16 - NOTE_DS2 8026038 , // 17 - NOTE_E2 8503256 , // 18 - NOTE_F2 9008718 , // 19 - NOTE_FS2 9544372 , // 20 - NOTE_G2 10112164 , // 21 - NOTE_GS2 10713070 , // 22 - NOTE_A2 11350011 , // 23 - NOTE_AS2 12024935 , // 24 - NOTE_B2 12739788 , // 25 - NOTE_C3 13497495 , // 26 - NOTE_CS3 14300001 , // 27 - NOTE_D3 15150229 , // 28 - NOTE_DS3 16051101 , // 29 - NOTE_E3 17005538 , // 30 - NOTE_F3 18017436 , // 31 - NOTE_FS3 19088744 , // 32 - NOTE_G3 20223355 , // 33 - NOTE_GS3 21426141 , // 34 - NOTE_A3 22700022 , // 35 - NOTE_AS3 24049869 , // 36 - NOTE_B3 25480551 , // 37 - NOTE_C4 26994989 , // 38 - NOTE_CS4 28600002 , // 39 - NOTE_D4 30301433 , // 40 - NOTE_DS4 32103176 , // 41 - NOTE_E4 34012051 , // 42 - NOTE_F4 36033899 , // 43 - NOTE_FS4 38177487 , // 44 - NOTE_G4 40446710 , // 45 - NOTE_GS4 42852281 , // 46 - NOTE_A4 // 440Hz 45400044 , // 47 - NOTE_AS4 48099738 , // 48 - NOTE_B4 50960128 , // 49 - NOTE_C5 53990953 , // 50 - NOTE_CS5 57200978 , // 51 - NOTE_D5 60601891 , // 52 - NOTE_DS5 64205378 , // 53 - NOTE_E5 68024101 , // 54 - NOTE_F5 72068772 , // 55 - NOTE_FS5 76354000 , // 56 - NOTE_G5 80894394 , // 57 - NOTE_GS5 85704563 , // 58 - NOTE_A5 90801063 , // 59 - NOTE_AS5 96200450 , // 60 - NOTE_B5 101920256 , // 61 - NOTE_C6 107980932 , // 62 - NOTE_CS6 114401957 , // 63 - NOTE_D6 121204756 , // 64 - NOTE_DS6 128411731 , // 65 - NOTE_E6 136047228 , // 66 - NOTE_F6 144137544 , // 67 - NOTE_FS6 152708000 , // 68 - NOTE_G6 161788788 , // 69 - NOTE_GS6 171409126 , // 70 - NOTE_A6 181602125 , // 71 - NOTE_AS6 192399926 , // 72 - NOTE_B6 203840511 , // 73 - NOTE_C7 215961863 , // 74 - NOTE_CS7 228803913 , // 75 - NOTE_D7 242409512 , // 76 - NOTE_DS7 256823462 , // 77 - NOTE_E7 272095430 , // 78 - NOTE_F7 288275088 , // 79 - NOTE_FS7 305416001 , // 80 - NOTE_G7 323577577 , // 81 - NOTE_GS7 342818251 , // 82 - NOTE_A7 363203276 , // 83 - NOTE_AS7 384800826 , // 84 - NOTE_B7 407681997 , // 85 - NOTE_C8 431923727 , // 86 - NOTE_CS8 457606852 , // 87 - NOTE_D8 484818051 , // 88 - NOTE_DS8 }; #endif /** NOTE TO TEXT TABLES **/ const char note_0[] = "B-0"; // 0 - NOTE_B0 const char note_1[] = "C-1"; // 1 - NOTE_C1 const char note_2[] = "C#1"; // 2 - NOTE_CS1 const char note_3[] = "D-1"; // 3 - NOTE_D1 const char note_4[] = "D#1"; // 4 - NOTE_DS1 const char note_5[] = "E-1"; // 5 - NOTE_E1 const char note_6[] = "F-1"; // 6 - NOTE_F1 const char note_7[] = "F#1"; // 7 - NOTE_FS1 const char note_8[] = "G-1"; // 8 - NOTE_G1 const char note_9[] = "G#1"; // 9 - NOTE_GS1 const char note_10[] = "A-1"; // 10 - NOTE_A1 const char note_11[] = "A#1"; // 11 - NOTE_AS1 const char note_12[] = "B-1"; // 12 - NOTE_B1 const char note_13[] = "C-2"; // 2 - NOTE_C2 const char note_14[] = "C#2"; // 2 - NOTE_CS2 const char note_15[] = "D-2"; // 3 - NOTE_D2 const char note_16[] = "D#2"; // 4 - NOTE_DS2 const char note_17[] = "E-2"; // 5 - NOTE_E2 const char note_18[] = "F-2"; // 6 - NOTE_F2 const char note_19[] = "F#2"; // 7 - NOTE_FS2 const char note_20[] = "G-2"; // 8 - NOTE_G2 const char note_21[] = "G#2"; // 9 - NOTE_GS2 const char note_22[] = "A-2"; // 20 - NOTE_A2 const char note_23[] = "A#2"; // 22 - NOTE_AS2 const char note_24[] = "B-2"; // 22 - NOTE_B2 const char note_25[] = "C-3"; // 3 - NOTE_C3 const char note_26[] = "C#3"; // 3 - NOTE_CS3 const char note_27[] = "D-3"; // 3 - NOTE_D3 const char note_28[] = "D#3"; // 4 - NOTE_DS3 const char note_29[] = "E-3"; // 5 - NOTE_E3 const char note_30[] = "F-3"; // 6 - NOTE_F3 const char note_31[] = "F#3"; // 7 - NOTE_FS3 const char note_32[] = "G-3"; // 8 - NOTE_G3 const char note_33[] = "G#3"; // 9 - NOTE_GS3 const char note_34[] = "A-3"; // 30 - NOTE_A3 const char note_35[] = "A#3"; // 33 - NOTE_AS3 const char note_36[] = "B-3"; // 33 - NOTE_B3 const char note_37[] = "C-4"; // 4 - NOTE_C4 const char note_38[] = "C#4"; // 4 - NOTE_CS4 const char note_39[] = "D-4"; // 3 - NOTE_D4 const char note_40[] = "D#4"; // 4 - NOTE_DS4 const char note_41[] = "E-4"; // 5 - NOTE_E4 const char note_42[] = "F-4"; // 6 - NOTE_F4 const char note_43[] = "F#4"; // 7 - NOTE_FS4 const char note_44[] = "G-4"; // 8 - NOTE_G4 const char note_45[] = "G#4"; // 9 - NOTE_GS4 const char note_46[] = "A-4"; // 40 - NOTE_A4 const char note_47[] = "A#4"; // 44 - NOTE_AS4 const char note_48[] = "B-4"; // 44 - NOTE_B4 const char note_49[] = "C-5"; // 5 - NOTE_C5 const char note_50[] = "C#5"; // 5 - NOTE_CS5 const char note_51[] = "D-5"; // 3 - NOTE_D5 const char note_52[] = "D#5"; // 4 - NOTE_DS5 const char note_53[] = "E-5"; // 5 - NOTE_E5 const char note_54[] = "F-5"; // 6 - NOTE_F5 const char note_55[] = "F#5"; // 7 - NOTE_FS5 const char note_56[] = "G-5"; // 8 - NOTE_G5 const char note_57[] = "G#5"; // 9 - NOTE_GS5 const char note_58[] = "A-5"; // 50 - NOTE_A5 const char note_59[] = "A#5"; // 55 - NOTE_AS5 const char note_60[] = "B-5"; // 55 - NOTE_B5 const char note_61[] = "C-6"; // 6 - NOTE_C6 const char note_62[] = "C#6"; // 6 - NOTE_CS6 const char note_63[] = "D-6"; // 3 - NOTE_D6 const char note_64[] = "D#6"; // 4 - NOTE_DS6 const char note_65[] = "E-6"; // 5 - NOTE_E6 const char note_66[] = "F-6"; // 6 - NOTE_F6 const char note_67[] = "F#6"; // 7 - NOTE_FS6 const char note_68[] = "G-6"; // 8 - NOTE_G6 const char note_69[] = "G#6"; // 9 - NOTE_GS6 const char note_70[] = "A-6"; // 60 - NOTE_A6 const char note_71[] = "A#6"; // 66 - NOTE_AS6 const char note_72[] = "B-6"; // 66 - NOTE_B6 const char note_73[] = "C-7"; // 7 - NOTE_C7 const char note_74[] = "C#7"; // 7 - NOTE_CS7 const char note_75[] = "D-7"; // 3 - NOTE_D7 const char note_76[] = "D#7"; // 4 - NOTE_DS7 const char note_77[] = "E-7"; // 5 - NOTE_E7 const char note_78[] = "F-7"; // 6 - NOTE_F7 const char note_79[] = "F#7"; // 7 - NOTE_FS7 const char note_80[] = "G-7"; // 8 - NOTE_G7 const char note_81[] = "G#7"; // 9 - NOTE_GS7 const char note_82[] = "A-7"; // 70 - NOTE_A7 const char note_83[] = "A#7"; // 77 - NOTE_AS7 const char note_84[] = "B-7"; // 77 - NOTE_B7 const char note_85[] = "C-8"; // 8 - NOTE_C8 const char note_86[] = "C#8"; // 8 - NOTE_CS8 const char note_87[] = "D-8"; // 3 - NOTE_D8 const char note_88[] = "D#8"; // 4 - NOTE_DS8 const char* note_table[] = { note_0, note_1, note_2, note_3, note_4, note_5, note_6, note_7, note_8, note_9, note_10, note_11, note_12, note_13, note_14, note_15, note_16, note_17, note_18, note_19, note_20, note_21, note_22, note_23, note_24, note_25, note_26, note_27, note_28, note_29, note_30, note_31, note_32, note_33, note_34, note_35, note_36, note_37, note_38, note_39, note_40, note_41, note_42, note_43, note_44, note_45, note_46, note_47, note_48, note_49, note_50, note_51, note_52, note_53, note_54, note_55, note_56, note_57, note_58, note_59, note_60, note_61, note_62, note_63, note_64, note_65, note_66, note_67, note_68, note_69, note_70, note_71, note_72, note_73, note_74, note_75, note_76, note_77, note_78, note_79, note_80, note_81, note_82, note_83, note_84, note_85, note_86, note_87, note_88, }; void getNoteString(char * buffer, uint8_t i) { if (i>88) strcpy(buffer,"@@@"); else strcpy(buffer, note_table[i]); }