diff --git a/radio/src/audio_arm.cpp b/radio/src/audio_arm.cpp index 5e3fd7ef6..1340ccd7d 100644 --- a/radio/src/audio_arm.cpp +++ b/radio/src/audio_arm.cpp @@ -41,109 +41,110 @@ extern OS_MutexID audioMutex; const int16_t sineValues[] = { - 0, 773, 1545, 2317, 3087, 3855, 4620, 5383, 6142, 6898, - 7649, 8395, 9135, 9870, 10599, 11321, 12035, 12742, 13441, 14132, - 14813, 15485, 16148, 16800, 17441, 18072, 18691, 19299, 19894, 20478, - 21048, 21605, 22149, 22680, 23196, 23698, 24185, 24658, 25116, 25558, - 25985, 26396, 26791, 27170, 27533, 27879, 28209, 28522, 28818, 29098, - 29360, 29605, 29833, 30044, 30237, 30414, 30573, 30714, 30839, 30946, - 31036, 31109, 31165, 31204, 31226, 31231, 31220, 31192, 31147, 31087, - 31011, 30918, 30811, 30687, 30549, 30396, 30227, 30045, 29848, 29637, - 29413, 29176, 28925, 28662, 28386, 28098, 27799, 27488, 27166, 26833, - 26491, 26138, 25776, 25404, 25024, 24636, 24240, 23836, 23425, 23007, - 22584, 22154, 21719, 21279, 20834, 20385, 19933, 19477, 19018, 18557, - 18094, 17630, 17164, 16698, 16231, 15764, 15298, 14834, 14370, 13908, - 13449, 12992, 12538, 12087, 11641, 11198, 10760, 10327, 9899, 9477, - 9060, 8650, 8247, 7850, 7460, 7079, 6704, 6338, 5981, 5632, - 5291, 4960, 4639, 4326, 4024, 3732, 3449, 3177, 2916, 2665, - 2425, 2196, 1978, 1771, 1575, 1391, 1218, 1056, 906, 767, - 640, 525, 421, 329, 248, 178, 121, 74, 39, 15, - 2, 0, 9, 29, 60, 101, 152, 214, 285, 367, - 458, 558, 668, 786, 914, 1050, 1194, 1346, 1506, 1674, - 1849, 2030, 2219, 2413, 2614, 2821, 3033, 3250, 3472, 3699, - 3929, 4164, 4402, 4644, 4888, 5135, 5384, 5635, 5887, 6141, - 6396, 6651, 6906, 7161, 7416, 7670, 7923, 8175, 8424, 8672, - 8917, 9160, 9399, 9635, 9868, 10097, 10321, 10541, 10757, 10967, - 11172, 11372, 11565, 11753, 11935, 12110, 12279, 12440, 12595, 12742, - 12882, 13014, 13139, 13255, 13364, 13464, 13556, 13640, 13715, 13781, - 13839, 13888, 13928, 13959, 13982, 13995, 14000, 13995, 13982, 13959, - 13928, 13888, 13839, 13781, 13715, 13640, 13556, 13464, 13364, 13255, - 13139, 13014, 12882, 12742, 12595, 12440, 12279, 12110, 11935, 11753, - 11565, 11372, 11172, 10967, 10757, 10541, 10321, 10097, 9868, 9635, - 9399, 9160, 8917, 8672, 8424, 8175, 7923, 7670, 7416, 7161, - 6906, 6651, 6396, 6141, 5887, 5635, 5384, 5135, 4888, 4644, - 4402, 4164, 3929, 3699, 3472, 3250, 3033, 2821, 2614, 2413, - 2219, 2030, 1849, 1674, 1506, 1346, 1194, 1050, 914, 786, - 668, 558, 458, 367, 285, 214, 152, 101, 60, 29, - 9, 0, 2, 15, 39, 74, 121, 178, 248, 329, - 421, 525, 640, 767, 906, 1056, 1218, 1391, 1575, 1771, - 1978, 2196, 2425, 2665, 2916, 3177, 3449, 3732, 4024, 4326, - 4639, 4960, 5291, 5632, 5981, 6338, 6704, 7079, 7460, 7850, - 8247, 8650, 9060, 9477, 9899, 10327, 10760, 11198, 11641, 12087, - 12538, 12992, 13449, 13908, 14370, 14834, 15298, 15764, 16231, 16698, - 17164, 17630, 18094, 18557, 19018, 19477, 19933, 20385, 20834, 21279, - 21719, 22154, 22584, 23007, 23425, 23836, 24240, 24636, 25024, 25404, - 25776, 26138, 26491, 26833, 27166, 27488, 27799, 28098, 28386, 28662, - 28925, 29176, 29413, 29637, 29848, 30045, 30227, 30396, 30549, 30687, - 30811, 30918, 31011, 31087, 31147, 31192, 31220, 31231, 31226, 31204, - 31165, 31109, 31036, 30946, 30839, 30714, 30573, 30414, 30237, 30044, - 29833, 29605, 29360, 29098, 28818, 28522, 28209, 27879, 27533, 27170, - 26791, 26396, 25985, 25558, 25116, 24658, 24185, 23698, 23196, 22680, - 22149, 21605, 21048, 20478, 19894, 19299, 18691, 18072, 17441, 16800, - 16148, 15485, 14813, 14132, 13441, 12742, 12035, 11321, 10599, 9870, - 9135, 8395, 7649, 6898, 6142, 5383, 4620, 3855, 3087, 2317, - 1545, 773, 0, -773, -1545, -2317, -3087, -3855, -4620, -5383, - -6142, -6898, -7649, -8395, -9135, -9870, -10599, -11321, -12035, -12742, - -13441, -14132, -14813, -15485, -16148, -16800, -17441, -18072, -18691, -19299, - -19894, -20478, -21048, -21605, -22149, -22680, -23196, -23698, -24185, -24658, - -25116, -25558, -25985, -26396, -26791, -27170, -27533, -27879, -28209, -28522, - -28818, -29098, -29360, -29605, -29833, -30044, -30237, -30414, -30573, -30714, - -30839, -30946, -31036, -31109, -31165, -31204, -31226, -31231, -31220, -31192, - -31147, -31087, -31011, -30918, -30811, -30687, -30549, -30396, -30227, -30045, - -29848, -29637, -29413, -29176, -28925, -28662, -28386, -28098, -27799, -27488, - -27166, -26833, -26491, -26138, -25776, -25404, -25024, -24636, -24240, -23836, - -23425, -23007, -22584, -22154, -21719, -21279, -20834, -20385, -19933, -19477, - -19018, -18557, -18094, -17630, -17164, -16698, -16231, -15764, -15298, -14834, - -14370, -13908, -13449, -12992, -12538, -12087, -11641, -11198, -10760, -10327, - -9899, -9477, -9060, -8650, -8247, -7850, -7460, -7079, -6704, -6338, - -5981, -5632, -5291, -4960, -4639, -4326, -4024, -3732, -3449, -3177, - -2916, -2665, -2425, -2196, -1978, -1771, -1575, -1391, -1218, -1056, - -906, -767, -640, -525, -421, -329, -248, -178, -121, -74, - -39, -15, -2, 0, -9, -29, -60, -101, -152, -214, - -285, -367, -458, -558, -668, -786, -914, -1050, -1194, -1346, - -1506, -1674, -1849, -2030, -2219, -2413, -2614, -2821, -3033, -3250, - -3472, -3699, -3929, -4164, -4402, -4644, -4888, -5135, -5384, -5635, - -5887, -6141, -6396, -6651, -6906, -7161, -7416, -7670, -7923, -8175, - -8424, -8672, -8917, -9160, -9399, -9635, -9868, -10097, -10321, -10541, - -10757, -10967, -11172, -11372, -11565, -11753, -11935, -12110, -12279, -12440, - -12595, -12742, -12882, -13014, -13139, -13255, -13364, -13464, -13556, -13640, - -13715, -13781, -13839, -13888, -13928, -13959, -13982, -13995, -14000, -13995, - -13982, -13959, -13928, -13888, -13839, -13781, -13715, -13640, -13556, -13464, - -13364, -13255, -13139, -13014, -12882, -12742, -12595, -12440, -12279, -12110, - -11935, -11753, -11565, -11372, -11172, -10967, -10757, -10541, -10321, -10097, - -9868, -9635, -9399, -9160, -8917, -8672, -8424, -8175, -7923, -7670, - -7416, -7161, -6906, -6651, -6396, -6141, -5887, -5635, -5384, -5135, - -4888, -4644, -4402, -4164, -3929, -3699, -3472, -3250, -3033, -2821, - -2614, -2413, -2219, -2030, -1849, -1674, -1506, -1346, -1194, -1050, - -914, -786, -668, -558, -458, -367, -285, -214, -152, -101, - -60, -29, -9, 0, -2, -15, -39, -74, -121, -178, - -248, -329, -421, -525, -640, -767, -906, -1056, -1218, -1391, - -1575, -1771, -1978, -2196, -2425, -2665, -2916, -3177, -3449, -3732, - -4024, -4326, -4639, -4960, -5291, -5632, -5981, -6338, -6704, -7079, - -7460, -7850, -8247, -8650, -9060, -9477, -9899, -10327, -10760, -11198, - -11641, -12087, -12538, -12992, -13449, -13908, -14370, -14834, -15298, -15764, - -16231, -16698, -17164, -17630, -18094, -18557, -19018, -19477, -19933, -20385, - -20834, -21279, -21719, -22154, -22584, -23007, -23425, -23836, -24240, -24636, - -25024, -25404, -25776, -26138, -26491, -26833, -27166, -27488, -27799, -28098, - -28386, -28662, -28925, -29176, -29413, -29637, -29848, -30045, -30227, -30396, - -30549, -30687, -30811, -30918, -31011, -31087, -31147, -31192, -31220, -31231, - -31226, -31204, -31165, -31109, -31036, -30946, -30839, -30714, -30573, -30414, - -30237, -30044, -29833, -29605, -29360, -29098, -28818, -28522, -28209, -27879, - -27533, -27170, -26791, -26396, -25985, -25558, -25116, -24658, -24185, -23698, - -23196, -22680, -22149, -21605, -21048, -20478, -19894, -19299, -18691, -18072, - -17441, -16800, -16148, -15485, -14813, -14132, -13441, -12742, -12035, -11321, - -10599, -9870, -9135, -8395, -7649, -6898, -6142, -5383, -4620, -3855, - -3087, -2317, -1545, -773, + 0, 763, 1527, 2289, 3050, 3810, 4567, 5322, 6073, 6821, + 7565, 8305, 9039, 9769, 10493, 11211, 11922, 12626, 13324, 14013, + 14695, 15368, 16032, 16688, 17333, 17969, 18595, 19210, 19814, 20408, + 20989, 21559, 22117, 22663, 23196, 23716, 24223, 24717, 25197, 25664, + 26116, 26555, 26979, 27388, 27783, 28163, 28529, 28879, 29214, 29534, + 29838, 30127, 30401, 30659, 30901, 31128, 31340, 31535, 31716, 31880, + 32029, 32163, 32281, 32384, 32472, 32545, 32602, 32645, 32673, 32686, + 32685, 32670, 32640, 32596, 32539, 32468, 32384, 32287, 32176, 32054, + 31918, 31771, 31612, 31441, 31259, 31066, 30863, 30649, 30424, 30191, + 29947, 29695, 29434, 29165, 28887, 28602, 28309, 28010, 27704, 27392, + 27074, 26750, 26421, 26088, 25750, 25408, 25063, 24715, 24363, 24010, + 23654, 23296, 22938, 22578, 22218, 21857, 21497, 21138, 20779, 20422, + 20067, 19713, 19362, 19013, 18668, 18326, 17988, 17653, 17324, 16998, + 16678, 16363, 16054, 15750, 15453, 15162, 14877, 14600, 14329, 14066, + 13811, 13563, 13324, 13092, 12869, 12654, 12449, 12252, 12064, 11885, + 11715, 11555, 11404, 11263, 11132, 11010, 10898, 10796, 10704, 10622, + 10549, 10487, 10435, 10392, 10359, 10337, 10324, 10321, 10327, 10344, + 10369, 10405, 10449, 10503, 10566, 10638, 10719, 10808, 10906, 11013, + 11127, 11250, 11380, 11518, 11664, 11816, 11976, 12142, 12315, 12495, + 12680, 12871, 13067, 13269, 13476, 13688, 13904, 14124, 14348, 14576, + 14807, 15041, 15278, 15517, 15759, 16002, 16247, 16493, 16740, 16988, + 17236, 17484, 17732, 17979, 18225, 18471, 18714, 18957, 19197, 19435, + 19670, 19902, 20132, 20358, 20580, 20798, 21013, 21222, 21427, 21628, + 21823, 22012, 22196, 22375, 22547, 22713, 22873, 23026, 23172, 23311, + 23444, 23569, 23687, 23797, 23899, 23994, 24081, 24160, 24231, 24293, + 24348, 24394, 24432, 24461, 24483, 24495, 24500, 24495, 24483, 24461, + 24432, 24394, 24348, 24293, 24231, 24160, 24081, 23994, 23899, 23797, + 23687, 23569, 23444, 23311, 23172, 23026, 22873, 22713, 22547, 22375, + 22196, 22012, 21823, 21628, 21427, 21222, 21013, 20798, 20580, 20358, + 20132, 19902, 19670, 19435, 19197, 18957, 18714, 18471, 18225, 17979, + 17732, 17484, 17236, 16988, 16740, 16493, 16247, 16002, 15759, 15517, + 15278, 15041, 14807, 14576, 14348, 14124, 13904, 13688, 13476, 13269, + 13067, 12871, 12680, 12495, 12315, 12142, 11976, 11816, 11664, 11518, + 11380, 11250, 11127, 11013, 10906, 10808, 10719, 10638, 10566, 10503, + 10449, 10405, 10369, 10344, 10327, 10321, 10324, 10337, 10359, 10392, + 10435, 10487, 10549, 10622, 10704, 10796, 10898, 11010, 11132, 11263, + 11404, 11555, 11715, 11885, 12064, 12252, 12449, 12654, 12869, 13092, + 13324, 13563, 13811, 14066, 14329, 14600, 14877, 15162, 15453, 15750, + 16054, 16363, 16678, 16998, 17324, 17653, 17988, 18326, 18668, 19013, + 19362, 19713, 20067, 20422, 20779, 21138, 21497, 21857, 22218, 22578, + 22938, 23296, 23654, 24010, 24363, 24715, 25063, 25408, 25750, 26088, + 26421, 26750, 27074, 27392, 27704, 28010, 28309, 28602, 28887, 29165, + 29434, 29695, 29947, 30191, 30424, 30649, 30863, 31066, 31259, 31441, + 31612, 31771, 31918, 32054, 32176, 32287, 32384, 32468, 32539, 32596, + 32640, 32670, 32685, 32686, 32673, 32645, 32602, 32545, 32472, 32384, + 32281, 32163, 32029, 31880, 31716, 31535, 31340, 31128, 30901, 30659, + 30401, 30127, 29838, 29534, 29214, 28879, 28529, 28163, 27783, 27388, + 26979, 26555, 26116, 25664, 25197, 24717, 24223, 23716, 23196, 22663, + 22117, 21559, 20989, 20408, 19814, 19210, 18595, 17969, 17333, 16688, + 16032, 15368, 14695, 14013, 13324, 12626, 11922, 11211, 10493, 9769, + 9039, 8305, 7565, 6821, 6073, 5322, 4567, 3810, 3050, 2289, + 1527, 763, 0, -763, -1527, -2289, -3050, -3810, -4567, -5322, + -6073, -6821, -7565, -8305, -9039, -9769, -10493, -11211, -11922, -12626, + -13324, -14013, -14695, -15368, -16032, -16688, -17333, -17969, -18595, -19210, + -19814, -20408, -20989, -21559, -22117, -22663, -23196, -23716, -24223, -24717, + -25197, -25664, -26116, -26555, -26979, -27388, -27783, -28163, -28529, -28879, + -29214, -29534, -29838, -30127, -30401, -30659, -30901, -31128, -31340, -31535, + -31716, -31880, -32029, -32163, -32281, -32384, -32472, -32545, -32602, -32645, + -32673, -32686, -32685, -32670, -32640, -32596, -32539, -32468, -32384, -32287, + -32176, -32054, -31918, -31771, -31612, -31441, -31259, -31066, -30863, -30649, + -30424, -30191, -29947, -29695, -29434, -29165, -28887, -28602, -28309, -28010, + -27704, -27392, -27074, -26750, -26421, -26088, -25750, -25408, -25063, -24715, + -24363, -24010, -23654, -23296, -22938, -22578, -22218, -21857, -21497, -21138, + -20779, -20422, -20067, -19713, -19362, -19013, -18668, -18326, -17988, -17653, + -17324, -16998, -16678, -16363, -16054, -15750, -15453, -15162, -14877, -14600, + -14329, -14066, -13811, -13563, -13324, -13092, -12869, -12654, -12449, -12252, + -12064, -11885, -11715, -11555, -11404, -11263, -11132, -11010, -10898, -10796, + -10704, -10622, -10549, -10487, -10435, -10392, -10359, -10337, -10324, -10321, + -10327, -10344, -10369, -10405, -10449, -10503, -10566, -10638, -10719, -10808, + -10906, -11013, -11127, -11250, -11380, -11518, -11664, -11816, -11976, -12142, + -12315, -12495, -12680, -12871, -13067, -13269, -13476, -13688, -13904, -14124, + -14348, -14576, -14807, -15041, -15278, -15517, -15759, -16002, -16247, -16493, + -16740, -16988, -17236, -17484, -17732, -17979, -18225, -18471, -18714, -18957, + -19197, -19435, -19670, -19902, -20132, -20358, -20580, -20798, -21013, -21222, + -21427, -21628, -21823, -22012, -22196, -22375, -22547, -22713, -22873, -23026, + -23172, -23311, -23444, -23569, -23687, -23797, -23899, -23994, -24081, -24160, + -24231, -24293, -24348, -24394, -24432, -24461, -24483, -24495, -24500, -24495, + -24483, -24461, -24432, -24394, -24348, -24293, -24231, -24160, -24081, -23994, + -23899, -23797, -23687, -23569, -23444, -23311, -23172, -23026, -22873, -22713, + -22547, -22375, -22196, -22012, -21823, -21628, -21427, -21222, -21013, -20798, + -20580, -20358, -20132, -19902, -19670, -19435, -19197, -18957, -18714, -18471, + -18225, -17979, -17732, -17484, -17236, -16988, -16740, -16493, -16247, -16002, + -15759, -15517, -15278, -15041, -14807, -14576, -14348, -14124, -13904, -13688, + -13476, -13269, -13067, -12871, -12680, -12495, -12315, -12142, -11976, -11816, + -11664, -11518, -11380, -11250, -11127, -11013, -10906, -10808, -10719, -10638, + -10566, -10503, -10449, -10405, -10369, -10344, -10327, -10321, -10324, -10337, + -10359, -10392, -10435, -10487, -10549, -10622, -10704, -10796, -10898, -11010, + -11132, -11263, -11404, -11555, -11715, -11885, -12064, -12252, -12449, -12654, + -12869, -13092, -13324, -13563, -13811, -14066, -14329, -14600, -14877, -15162, + -15453, -15750, -16054, -16363, -16678, -16998, -17324, -17653, -17988, -18326, + -18668, -19013, -19362, -19713, -20067, -20422, -20779, -21138, -21497, -21857, + -22218, -22578, -22938, -23296, -23654, -24010, -24363, -24715, -25063, -25408, + -25750, -26088, -26421, -26750, -27074, -27392, -27704, -28010, -28309, -28602, + -28887, -29165, -29434, -29695, -29947, -30191, -30424, -30649, -30863, -31066, + -31259, -31441, -31612, -31771, -31918, -32054, -32176, -32287, -32384, -32468, + -32539, -32596, -32640, -32670, -32685, -32686, -32673, -32645, -32602, -32545, + -32472, -32384, -32281, -32163, -32029, -31880, -31716, -31535, -31340, -31128, + -30901, -30659, -30401, -30127, -29838, -29534, -29214, -28879, -28529, -28163, + -27783, -27388, -26979, -26555, -26116, -25664, -25197, -24717, -24223, -23716, + -23196, -22663, -22117, -21559, -20989, -20408, -19814, -19210, -18595, -17969, + -17333, -16688, -16032, -15368, -14695, -14013, -13324, -12626, -11922, -11211, + -10493, -9769, -9039, -8305, -7565, -6821, -6073, -5322, -4567, -3810, + -3050, -2289, -1527, -763, + }; #if defined(SDCARD) diff --git a/radio/util/sinus.py b/radio/util/sinus.py index cce2efce3..e852b7427 100644 --- a/radio/util/sinus.py +++ b/radio/util/sinus.py @@ -3,14 +3,27 @@ import math samples = 1024 -amplitudes = (28000, 0, 28000, 0, 28000) +amplitudes = (49000, 0, 25000, 0, 25000) + +max = 0 +min = 0 for i in range(samples): - sample = 0.0 - for harmonic, amplitude in enumerate(amplitudes): - sample += math.sin(math.pi*2*i*(harmonic+1)/samples) * amplitude / 2 - if sample > 32767 or sample < -32768: - print "erreur" - print "%d," % int(sample), - if i % 10 == 9: - print + sample = 0.0 + for harmonic, amplitude in enumerate(amplitudes): + sample += math.sin(math.pi*2*i*(harmonic+1)/samples) * amplitude / 2 + sample = int(sample) + if sample > max: + max = sample + elif sample < min: + min = sample + print "%d," % sample, + if i % 10 == 9: + print + +print +print 'Range is:', min, max + +if max > 32767 or min < -32768: + print "Invalid range!" +