Vario improvements
This commit is contained in:
@@ -462,6 +462,8 @@ class GeneralSettings {
|
||||
int beepVolume;
|
||||
int wavVolume;
|
||||
int varioVolume;
|
||||
int varioPitch;
|
||||
int varioRange;
|
||||
int backgroundVolume;
|
||||
unsigned int mavbaud;
|
||||
unsigned int switchUnlockStates;
|
||||
|
||||
@@ -2370,6 +2370,8 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE
|
||||
internalField.Append(new SignedField<8>(generalData.beepVolume));
|
||||
internalField.Append(new SignedField<8>(generalData.wavVolume));
|
||||
internalField.Append(new SignedField<8>(generalData.varioVolume));
|
||||
internalField.Append(new SignedField<8>(generalData.varioPitch));
|
||||
internalField.Append(new SignedField<8>(generalData.varioRange));
|
||||
internalField.Append(new SignedField<8>(generalData.backgroundVolume));
|
||||
}
|
||||
if (IS_TARANIS(board) && version >= 216) {
|
||||
|
||||
+107
-105
@@ -41,109 +41,109 @@ extern OS_MutexID audioMutex;
|
||||
|
||||
const int16_t sineValues[] =
|
||||
{
|
||||
0, 207, 414, 621, 829, 1036, 1243, 1450, 1657, 1864,
|
||||
2071, 2278, 2485, 2691, 2898, 3104, 3310, 3516, 3722, 3928,
|
||||
4133, 4338, 4543, 4748, 4953, 5157, 5361, 5565, 5769, 5972,
|
||||
6175, 6378, 6580, 6783, 6984, 7186, 7387, 7588, 7788, 7988,
|
||||
8188, 8387, 8586, 8785, 8983, 9180, 9378, 9574, 9771, 9967,
|
||||
10162, 10357, 10551, 10745, 10939, 11132, 11324, 11516, 11707, 11898,
|
||||
12088, 12278, 12467, 12656, 12844, 13031, 13218, 13404, 13589, 13774,
|
||||
13959, 14142, 14325, 14507, 14689, 14870, 15050, 15230, 15409, 15587,
|
||||
15764, 15941, 16117, 16293, 16467, 16641, 16814, 16986, 17158, 17329,
|
||||
17498, 17668, 17836, 18004, 18170, 18336, 18502, 18666, 18829, 18992,
|
||||
19154, 19315, 19475, 19634, 19793, 19950, 20107, 20262, 20417, 20571,
|
||||
20724, 20876, 21028, 21178, 21327, 21476, 21623, 21770, 21916, 22060,
|
||||
22204, 22347, 22489, 22630, 22770, 22909, 23047, 23184, 23320, 23455,
|
||||
23589, 23722, 23854, 23985, 24115, 24244, 24372, 24499, 24624, 24749,
|
||||
24873, 24996, 25118, 25239, 25358, 25477, 25595, 25711, 25827, 25941,
|
||||
26054, 26167, 26278, 26388, 26497, 26605, 26712, 26818, 26923, 27026,
|
||||
27129, 27231, 27331, 27430, 27529, 27626, 27722, 27817, 27910, 28003,
|
||||
28095, 28185, 28275, 28363, 28450, 28536, 28621, 28705, 28788, 28869,
|
||||
28950, 29029, 29107, 29184, 29260, 29335, 29409, 29481, 29553, 29623,
|
||||
29692, 29760, 29827, 29893, 29958, 30021, 30084, 30145, 30205, 30264,
|
||||
30322, 30378, 30434, 30488, 30542, 30594, 30645, 30694, 30743, 30791,
|
||||
30837, 30882, 30927, 30970, 31011, 31052, 31092, 31130, 31167, 31204,
|
||||
31239, 31272, 31305, 31337, 31367, 31397, 31425, 31452, 31478, 31502,
|
||||
31526, 31549, 31570, 31590, 31609, 31627, 31644, 31660, 31674, 31688,
|
||||
31700, 31711, 31721, 31730, 31738, 31744, 31750, 31754, 31757, 31760,
|
||||
31761, 31760, 31759, 31757, 31753, 31749, 31743, 31736, 31728, 31719,
|
||||
31709, 31698, 31685, 31672, 31657, 31641, 31624, 31606, 31587, 31567,
|
||||
31546, 31524, 31500, 31475, 31450, 31423, 31395, 31366, 31336, 31305,
|
||||
31273, 31239, 31205, 31169, 31133, 31095, 31056, 31016, 30975, 30933,
|
||||
30890, 30846, 30801, 30754, 30707, 30659, 30609, 30558, 30507, 30454,
|
||||
30400, 30345, 30289, 30232, 30174, 30115, 30055, 29994, 29932, 29868,
|
||||
29804, 29738, 29672, 29605, 29536, 29466, 29396, 29324, 29252, 29178,
|
||||
29103, 29027, 28951, 28873, 28794, 28714, 28633, 28552, 28469, 28385,
|
||||
28300, 28214, 28127, 28039, 27950, 27861, 27770, 27678, 27585, 27491,
|
||||
27396, 27301, 27204, 27106, 27007, 26908, 26807, 26705, 26603, 26499,
|
||||
26395, 26289, 26183, 26076, 25967, 25858, 25748, 25637, 25525, 25412,
|
||||
25298, 25183, 25067, 24951, 24833, 24715, 24595, 24475, 24354, 24232,
|
||||
24109, 23985, 23860, 23735, 23608, 23481, 23353, 23223, 23093, 22963,
|
||||
22831, 22698, 22565, 22431, 22296, 22160, 22023, 21885, 21747, 21608,
|
||||
21468, 21327, 21185, 21043, 20899, 20755, 20611, 20465, 20319, 20171,
|
||||
20023, 19875, 19725, 19575, 19424, 19272, 19120, 18967, 18813, 18658,
|
||||
18503, 18347, 18190, 18032, 17874, 17715, 17556, 17395, 17234, 17073,
|
||||
16910, 16747, 16584, 16420, 16255, 16089, 15923, 15756, 15589, 15421,
|
||||
15252, 15083, 14913, 14743, 14572, 14400, 14228, 14055, 13882, 13708,
|
||||
13534, 13359, 13183, 13007, 12831, 12654, 12476, 12298, 12120, 11941,
|
||||
11761, 11581, 11401, 11220, 11039, 10857, 10675, 10492, 10309, 10125,
|
||||
9941, 9757, 9572, 9387, 9202, 9016, 8830, 8643, 8456, 8269,
|
||||
8081, 7894, 7705, 7517, 7328, 7139, 6949, 6759, 6569, 6379,
|
||||
6189, 5998, 5807, 5615, 5424, 5232, 5040, 4848, 4656, 4463,
|
||||
4270, 4077, 3884, 3691, 3498, 3304, 3110, 2917, 2723, 2529,
|
||||
2334, 2140, 1946, 1752, 1557, 1362, 1168, 973, 779, 584,
|
||||
389, 194, 0, -194, -389, -584, -779, -973, -1168, -1362,
|
||||
-1557, -1752, -1946, -2140, -2334, -2529, -2723, -2917, -3110, -3304,
|
||||
-3498, -3691, -3884, -4077, -4270, -4463, -4656, -4848, -5040, -5232,
|
||||
-5424, -5615, -5807, -5998, -6189, -6379, -6569, -6759, -6949, -7139,
|
||||
-7328, -7517, -7705, -7894, -8081, -8269, -8456, -8643, -8830, -9016,
|
||||
-9202, -9387, -9572, -9757, -9941, -10125, -10309, -10492, -10675, -10857,
|
||||
-11039, -11220, -11401, -11581, -11761, -11941, -12120, -12298, -12476, -12654,
|
||||
-12831, -13007, -13183, -13359, -13534, -13708, -13882, -14055, -14228, -14400,
|
||||
-14572, -14743, -14913, -15083, -15252, -15421, -15589, -15756, -15923, -16089,
|
||||
-16255, -16420, -16584, -16747, -16910, -17073, -17234, -17395, -17556, -17715,
|
||||
-17874, -18032, -18190, -18347, -18503, -18658, -18813, -18967, -19120, -19272,
|
||||
-19424, -19575, -19725, -19875, -20023, -20171, -20319, -20465, -20611, -20755,
|
||||
-20899, -21043, -21185, -21327, -21468, -21608, -21747, -21885, -22023, -22160,
|
||||
-22296, -22431, -22565, -22698, -22831, -22963, -23093, -23223, -23353, -23481,
|
||||
-23608, -23735, -23860, -23985, -24109, -24232, -24354, -24475, -24595, -24715,
|
||||
-24833, -24951, -25067, -25183, -25298, -25412, -25525, -25637, -25748, -25858,
|
||||
-25967, -26076, -26183, -26289, -26395, -26499, -26603, -26705, -26807, -26908,
|
||||
-27007, -27106, -27204, -27301, -27396, -27491, -27585, -27678, -27770, -27861,
|
||||
-27950, -28039, -28127, -28214, -28300, -28385, -28469, -28552, -28633, -28714,
|
||||
-28794, -28873, -28951, -29027, -29103, -29178, -29252, -29324, -29396, -29466,
|
||||
-29536, -29605, -29672, -29738, -29804, -29868, -29932, -29994, -30055, -30115,
|
||||
-30174, -30232, -30289, -30345, -30400, -30454, -30507, -30558, -30609, -30659,
|
||||
-30707, -30754, -30801, -30846, -30890, -30933, -30975, -31016, -31056, -31095,
|
||||
-31133, -31169, -31205, -31239, -31273, -31305, -31336, -31366, -31395, -31423,
|
||||
-31450, -31475, -31500, -31524, -31546, -31567, -31587, -31606, -31624, -31641,
|
||||
-31657, -31672, -31685, -31698, -31709, -31719, -31728, -31736, -31743, -31749,
|
||||
-31753, -31757, -31759, -31760, -31761, -31760, -31757, -31754, -31750, -31744,
|
||||
-31738, -31730, -31721, -31711, -31700, -31688, -31674, -31660, -31644, -31627,
|
||||
-31609, -31590, -31570, -31549, -31526, -31502, -31478, -31452, -31425, -31397,
|
||||
-31367, -31337, -31305, -31272, -31239, -31204, -31167, -31130, -31092, -31052,
|
||||
-31011, -30970, -30927, -30882, -30837, -30791, -30743, -30694, -30645, -30594,
|
||||
-30542, -30488, -30434, -30378, -30322, -30264, -30205, -30145, -30084, -30021,
|
||||
-29958, -29893, -29827, -29760, -29692, -29623, -29553, -29481, -29409, -29335,
|
||||
-29260, -29184, -29107, -29029, -28950, -28869, -28788, -28705, -28621, -28536,
|
||||
-28450, -28363, -28275, -28185, -28095, -28003, -27910, -27817, -27722, -27626,
|
||||
-27529, -27430, -27331, -27231, -27129, -27026, -26923, -26818, -26712, -26605,
|
||||
-26497, -26388, -26278, -26167, -26054, -25941, -25827, -25711, -25595, -25477,
|
||||
-25358, -25239, -25118, -24996, -24873, -24749, -24624, -24499, -24372, -24244,
|
||||
-24115, -23985, -23854, -23722, -23589, -23455, -23320, -23184, -23047, -22909,
|
||||
-22770, -22630, -22489, -22347, -22204, -22060, -21916, -21770, -21623, -21476,
|
||||
-21327, -21178, -21028, -20876, -20724, -20571, -20417, -20262, -20107, -19950,
|
||||
-19793, -19634, -19475, -19315, -19154, -18992, -18829, -18666, -18502, -18336,
|
||||
-18170, -18004, -17836, -17668, -17498, -17329, -17158, -16986, -16814, -16641,
|
||||
-16467, -16293, -16117, -15941, -15764, -15587, -15409, -15230, -15050, -14870,
|
||||
-14689, -14507, -14325, -14142, -13959, -13774, -13589, -13404, -13218, -13031,
|
||||
-12844, -12656, -12467, -12278, -12088, -11898, -11707, -11516, -11324, -11132,
|
||||
-10939, -10745, -10551, -10357, -10162, -9967, -9771, -9574, -9378, -9180,
|
||||
-8983, -8785, -8586, -8387, -8188, -7988, -7788, -7588, -7387, -7186,
|
||||
-6984, -6783, -6580, -6378, -6175, -5972, -5769, -5565, -5361, -5157,
|
||||
-4953, -4748, -4543, -4338, -4133, -3928, -3722, -3516, -3310, -3104,
|
||||
-2898, -2691, -2485, -2278, -2071, -1864, -1657, -1450, -1243, -1036,
|
||||
-829, -621, -414, -207,
|
||||
0, 218, 437, 655, 874, 1092, 1311, 1529, 1747, 1966,
|
||||
2184, 2401, 2619, 2837, 3054, 3271, 3488, 3705, 3921, 4138,
|
||||
4354, 4569, 4785, 5000, 5215, 5429, 5643, 5857, 6071, 6284,
|
||||
6496, 6709, 6920, 7132, 7343, 7553, 7763, 7973, 8182, 8390,
|
||||
8598, 8806, 9012, 9219, 9425, 9630, 9834, 10038, 10242, 10444,
|
||||
10646, 10848, 11049, 11249, 11448, 11647, 11845, 12042, 12238, 12434,
|
||||
12629, 12823, 13017, 13209, 13401, 13592, 13782, 13972, 14160, 14348,
|
||||
14535, 14721, 14906, 15090, 15273, 15456, 15637, 15818, 15997, 16176,
|
||||
16354, 16531, 16706, 16881, 17055, 17228, 17400, 17570, 17740, 17909,
|
||||
18077, 18243, 18409, 18574, 18737, 18899, 19061, 19221, 19380, 19538,
|
||||
19695, 19851, 20006, 20160, 20312, 20464, 20614, 20763, 20911, 21058,
|
||||
21204, 21348, 21491, 21634, 21775, 21914, 22053, 22191, 22327, 22462,
|
||||
22596, 22728, 22860, 22990, 23119, 23247, 23373, 23499, 23623, 23746,
|
||||
23867, 23988, 24107, 24225, 24342, 24457, 24571, 24684, 24796, 24906,
|
||||
25016, 25123, 25230, 25336, 25440, 25543, 25644, 25745, 25844, 25942,
|
||||
26039, 26134, 26228, 26321, 26412, 26503, 26592, 26680, 26766, 26852,
|
||||
26936, 27018, 27100, 27180, 27259, 27337, 27413, 27489, 27563, 27635,
|
||||
27707, 27777, 27846, 27914, 27980, 28046, 28110, 28173, 28234, 28295,
|
||||
28354, 28412, 28468, 28524, 28578, 28631, 28683, 28733, 28783, 28831,
|
||||
28878, 28924, 28968, 29011, 29054, 29095, 29134, 29173, 29210, 29247,
|
||||
29282, 29316, 29349, 29380, 29411, 29440, 29468, 29495, 29521, 29545,
|
||||
29569, 29591, 29613, 29633, 29652, 29670, 29686, 29702, 29717, 29730,
|
||||
29743, 29754, 29764, 29773, 29781, 29788, 29794, 29799, 29802, 29805,
|
||||
29806, 29807, 29806, 29805, 29802, 29799, 29794, 29788, 29781, 29773,
|
||||
29765, 29755, 29744, 29732, 29719, 29705, 29690, 29675, 29658, 29640,
|
||||
29621, 29601, 29580, 29559, 29536, 29512, 29488, 29462, 29435, 29408,
|
||||
29379, 29350, 29320, 29288, 29256, 29223, 29189, 29154, 29118, 29081,
|
||||
29044, 29005, 28966, 28925, 28884, 28842, 28799, 28755, 28710, 28664,
|
||||
28617, 28570, 28522, 28472, 28422, 28371, 28320, 28267, 28214, 28159,
|
||||
28104, 28048, 27991, 27934, 27875, 27816, 27756, 27695, 27633, 27570,
|
||||
27507, 27443, 27378, 27312, 27245, 27178, 27109, 27040, 26971, 26900,
|
||||
26829, 26756, 26683, 26610, 26535, 26460, 26384, 26307, 26229, 26151,
|
||||
26072, 25992, 25911, 25830, 25748, 25665, 25581, 25497, 25412, 25326,
|
||||
25239, 25152, 25064, 24975, 24885, 24795, 24704, 24612, 24520, 24427,
|
||||
24333, 24238, 24143, 24047, 23950, 23853, 23755, 23656, 23556, 23456,
|
||||
23355, 23254, 23151, 23048, 22945, 22840, 22735, 22630, 22523, 22416,
|
||||
22308, 22200, 22091, 21981, 21871, 21760, 21648, 21536, 21423, 21309,
|
||||
21194, 21079, 20964, 20848, 20731, 20613, 20495, 20376, 20257, 20137,
|
||||
20016, 19894, 19773, 19650, 19527, 19403, 19279, 19154, 19028, 18902,
|
||||
18775, 18647, 18519, 18391, 18262, 18132, 18001, 17870, 17739, 17607,
|
||||
17474, 17341, 17207, 17073, 16938, 16802, 16666, 16530, 16393, 16255,
|
||||
16117, 15978, 15839, 15699, 15559, 15418, 15277, 15135, 14992, 14850,
|
||||
14706, 14562, 14418, 14273, 14128, 13982, 13836, 13689, 13542, 13394,
|
||||
13246, 13097, 12948, 12799, 12649, 12498, 12347, 12196, 12044, 11892,
|
||||
11740, 11587, 11433, 11280, 11125, 10971, 10816, 10661, 10505, 10349,
|
||||
10192, 10036, 9878, 9721, 9563, 9405, 9246, 9087, 8928, 8768,
|
||||
8609, 8448, 8288, 8127, 7966, 7805, 7643, 7481, 7319, 7156,
|
||||
6994, 6831, 6667, 6504, 6340, 6176, 6012, 5847, 5683, 5518,
|
||||
5353, 5188, 5022, 4857, 4691, 4525, 4359, 4192, 4026, 3859,
|
||||
3692, 3526, 3358, 3191, 3024, 2857, 2689, 2521, 2354, 2186,
|
||||
2018, 1850, 1682, 1514, 1346, 1178, 1009, 841, 673, 505,
|
||||
336, 168, 0, -168, -336, -505, -673, -841, -1009, -1178,
|
||||
-1346, -1514, -1682, -1850, -2018, -2186, -2354, -2521, -2689, -2857,
|
||||
-3024, -3191, -3358, -3526, -3692, -3859, -4026, -4192, -4359, -4525,
|
||||
-4691, -4857, -5022, -5188, -5353, -5518, -5683, -5847, -6012, -6176,
|
||||
-6340, -6504, -6667, -6831, -6994, -7156, -7319, -7481, -7643, -7805,
|
||||
-7966, -8127, -8288, -8448, -8609, -8768, -8928, -9087, -9246, -9405,
|
||||
-9563, -9721, -9878, -10036, -10192, -10349, -10505, -10661, -10816, -10971,
|
||||
-11125, -11280, -11433, -11587, -11740, -11892, -12044, -12196, -12347, -12498,
|
||||
-12649, -12799, -12948, -13097, -13246, -13394, -13542, -13689, -13836, -13982,
|
||||
-14128, -14273, -14418, -14562, -14706, -14850, -14992, -15135, -15277, -15418,
|
||||
-15559, -15699, -15839, -15978, -16117, -16255, -16393, -16530, -16666, -16802,
|
||||
-16938, -17073, -17207, -17341, -17474, -17607, -17739, -17870, -18001, -18132,
|
||||
-18262, -18391, -18519, -18647, -18775, -18902, -19028, -19154, -19279, -19403,
|
||||
-19527, -19650, -19773, -19894, -20016, -20137, -20257, -20376, -20495, -20613,
|
||||
-20731, -20848, -20964, -21079, -21194, -21309, -21423, -21536, -21648, -21760,
|
||||
-21871, -21981, -22091, -22200, -22308, -22416, -22523, -22630, -22735, -22840,
|
||||
-22945, -23048, -23151, -23254, -23355, -23456, -23556, -23656, -23755, -23853,
|
||||
-23950, -24047, -24143, -24238, -24333, -24427, -24520, -24612, -24704, -24795,
|
||||
-24885, -24975, -25064, -25152, -25239, -25326, -25412, -25497, -25581, -25665,
|
||||
-25748, -25830, -25911, -25992, -26072, -26151, -26229, -26307, -26384, -26460,
|
||||
-26535, -26610, -26683, -26756, -26829, -26900, -26971, -27040, -27109, -27178,
|
||||
-27245, -27312, -27378, -27443, -27507, -27570, -27633, -27695, -27756, -27816,
|
||||
-27875, -27934, -27991, -28048, -28104, -28159, -28214, -28267, -28320, -28371,
|
||||
-28422, -28472, -28522, -28570, -28617, -28664, -28710, -28755, -28799, -28842,
|
||||
-28884, -28925, -28966, -29005, -29044, -29081, -29118, -29154, -29189, -29223,
|
||||
-29256, -29288, -29320, -29350, -29379, -29408, -29435, -29462, -29488, -29512,
|
||||
-29536, -29559, -29580, -29601, -29621, -29640, -29658, -29675, -29690, -29705,
|
||||
-29719, -29732, -29744, -29755, -29765, -29773, -29781, -29788, -29794, -29799,
|
||||
-29802, -29805, -29806, -29807, -29806, -29805, -29802, -29799, -29794, -29788,
|
||||
-29781, -29773, -29764, -29754, -29743, -29730, -29717, -29702, -29686, -29670,
|
||||
-29652, -29633, -29613, -29591, -29569, -29545, -29521, -29495, -29468, -29440,
|
||||
-29411, -29380, -29349, -29316, -29282, -29247, -29210, -29173, -29134, -29095,
|
||||
-29054, -29011, -28968, -28924, -28878, -28831, -28783, -28733, -28683, -28631,
|
||||
-28578, -28524, -28468, -28412, -28354, -28295, -28234, -28173, -28110, -28046,
|
||||
-27980, -27914, -27846, -27777, -27707, -27635, -27563, -27489, -27413, -27337,
|
||||
-27259, -27180, -27100, -27018, -26936, -26852, -26766, -26680, -26592, -26503,
|
||||
-26412, -26321, -26228, -26134, -26039, -25942, -25844, -25745, -25644, -25543,
|
||||
-25440, -25336, -25230, -25123, -25016, -24906, -24796, -24684, -24571, -24457,
|
||||
-24342, -24225, -24107, -23988, -23867, -23746, -23623, -23499, -23373, -23247,
|
||||
-23119, -22990, -22860, -22728, -22596, -22462, -22327, -22191, -22053, -21914,
|
||||
-21775, -21634, -21491, -21348, -21204, -21058, -20911, -20763, -20614, -20464,
|
||||
-20312, -20160, -20006, -19851, -19695, -19538, -19380, -19221, -19061, -18899,
|
||||
-18737, -18574, -18409, -18243, -18077, -17909, -17740, -17570, -17400, -17228,
|
||||
-17055, -16881, -16706, -16531, -16354, -16176, -15997, -15818, -15637, -15456,
|
||||
-15273, -15090, -14906, -14721, -14535, -14348, -14160, -13972, -13782, -13592,
|
||||
-13401, -13209, -13017, -12823, -12629, -12434, -12238, -12042, -11845, -11647,
|
||||
-11448, -11249, -11049, -10848, -10646, -10444, -10242, -10038, -9834, -9630,
|
||||
-9425, -9219, -9012, -8806, -8598, -8390, -8182, -7973, -7763, -7553,
|
||||
-7343, -7132, -6920, -6709, -6496, -6284, -6071, -5857, -5643, -5429,
|
||||
-5215, -5000, -4785, -4569, -4354, -4138, -3921, -3705, -3488, -3271,
|
||||
-3054, -2837, -2619, -2401, -2184, -1966, -1747, -1529, -1311, -1092,
|
||||
-874, -655, -437, -218,
|
||||
};
|
||||
|
||||
#if defined(SDCARD)
|
||||
@@ -539,7 +539,7 @@ int AudioQueue::mixWav(AudioContext &context, AudioBuffer *buffer, int volume, u
|
||||
}
|
||||
#endif
|
||||
|
||||
const unsigned int toneVolumes[] = { 2, 4, 8, 12, 16 };
|
||||
const unsigned int toneVolumes[] = { 10, 8, 6, 4, 2 };
|
||||
|
||||
int AudioQueue::mixBeep(AudioContext &context, AudioBuffer *buffer, int volume, unsigned int fade)
|
||||
{
|
||||
@@ -553,7 +553,9 @@ int AudioQueue::mixBeep(AudioContext &context, AudioBuffer *buffer, int volume,
|
||||
|
||||
if (fragment.tone.freq) {
|
||||
context.state.tone.step = double(DIM(sineValues)*fragment.tone.freq) / AUDIO_SAMPLE_RATE;
|
||||
context.state.tone.volume = (fragment.tone.freq * fragment.tone.freq * 32) / (110 * 110 * toneVolumes[2+volume]);
|
||||
context.state.tone.volume = toneVolumes[2+volume];
|
||||
if (fragment.tone.freq < 330)
|
||||
context.state.tone.volume = (context.state.tone.volume * fragment.tone.freq * fragment.tone.freq) / (330 * 330);
|
||||
if (fragment.tone.freqIncr)
|
||||
fragment.tone.freq += AUDIO_BUFFER_DURATION * fragment.tone.freqIncr;
|
||||
else
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
#define AUDIO_BUFFER_SIZE (AUDIO_SAMPLE_RATE*AUDIO_BUFFER_DURATION/1000)
|
||||
#define AUDIO_BUFFER_COUNT (3)
|
||||
|
||||
#define BEEP_MIN_FREQ (110)
|
||||
#define BEEP_MIN_FREQ (150)
|
||||
#define BEEP_DEFAULT_FREQ (2250)
|
||||
#define BEEP_KEY_UP_FREQ (BEEP_DEFAULT_FREQ+150)
|
||||
#define BEEP_KEY_DOWN_FREQ (BEEP_DEFAULT_FREQ-150)
|
||||
@@ -106,7 +106,7 @@ class AudioContext {
|
||||
struct {
|
||||
double step;
|
||||
double idx;
|
||||
int volume;
|
||||
float volume;
|
||||
} tone;
|
||||
} state;
|
||||
|
||||
|
||||
@@ -150,6 +150,8 @@ enum menuGeneralSetupItems {
|
||||
IF_CPUARM(ITEM_SETUP_BEEP_VOLUME)
|
||||
IF_CPUARM(ITEM_SETUP_WAV_VOLUME)
|
||||
IF_CPUARM(ITEM_SETUP_VARIO_VOLUME)
|
||||
IF_CPUARM(ITEM_SETUP_VARIO_PITCH)
|
||||
IF_CPUARM(ITEM_SETUP_VARIO_RANGE)
|
||||
IF_CPUARM(ITEM_SETUP_BACKGROUND_VOLUME)
|
||||
ITEM_SETUP_BEEP_LENGTH,
|
||||
IF_AUDIO(ITEM_SETUP_SPEAKER_PITCH)
|
||||
@@ -211,7 +213,7 @@ void menuGeneralSetup(uint8_t event)
|
||||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) IF_BATTGRAPH(1) LABEL(SOUND), IF_AUDIO(0) IF_BUZZER(0) IF_VOICE(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) 0, IF_AUDIO(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_PCBSKY9X(0) CASE_PCBSKY9X(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, IF_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, IF_SPLASH(0) IF_GPS(0) IF_GPS(0) IF_PXX(0) IF_CPUARM(0) IF_CPUARM(0) IF_FAI_CHOICE(0) 0, LABEL(TX_MODE), CASE_PCBTARANIS(0) 1/*to force edit mode*/});
|
||||
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) IF_BATTGRAPH(1) LABEL(SOUND), IF_AUDIO(0) IF_BUZZER(0) IF_VOICE(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) IF_CPUARM(0) 0, IF_AUDIO(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) 0, LABEL(ALARMS), 0, CASE_PCBSKY9X(0) CASE_PCBSKY9X(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) LABEL(BACKLIGHT), 0, 0, IF_CPUARM(0) CASE_PWM_BACKLIGHT(0) CASE_PWM_BACKLIGHT(0) 0, IF_SPLASH(0) IF_GPS(0) IF_GPS(0) IF_PXX(0) IF_CPUARM(0) IF_CPUARM(0) IF_FAI_CHOICE(0) 0, LABEL(TX_MODE), CASE_PCBTARANIS(0) 1/*to force edit mode*/});
|
||||
|
||||
uint8_t sub = m_posVert - 1;
|
||||
|
||||
@@ -360,6 +362,16 @@ void menuGeneralSetup(uint8_t event)
|
||||
case ITEM_SETUP_VARIO_VOLUME:
|
||||
SLIDER_5POS(y, g_eeGeneral.varioVolume, STR_VARIO_VOLUME, event, attr);
|
||||
break;
|
||||
case ITEM_SETUP_VARIO_PITCH:
|
||||
lcd_putsLeft(y, "\001Vario Pitch");
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10), attr|LEFT);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioPitch, -30, 30);
|
||||
break;
|
||||
case ITEM_SETUP_VARIO_RANGE:
|
||||
lcd_putsLeft(y, "\001Vario Max");
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10)+VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10), attr|LEFT);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioRange, -30, 30);
|
||||
break;
|
||||
case ITEM_SETUP_BACKGROUND_VOLUME:
|
||||
SLIDER_5POS(y, g_eeGeneral.backgroundVolume, STR_BG_VOLUME, event, attr);
|
||||
break;
|
||||
|
||||
+38
-41
@@ -123,7 +123,12 @@ void varioWakeup()
|
||||
if (isFunctionActive(FUNCTION_VARIO)) {
|
||||
#if defined(AUDIO)
|
||||
cli();
|
||||
int16_t verticalSpeed = frskyData.hub.varioSpeed;
|
||||
#if 1
|
||||
#warning "Ele stick for vario tests"
|
||||
int verticalSpeed = getValue(MIXSRC_Ele);
|
||||
#else
|
||||
int verticalSpeed = frskyData.hub.varioSpeed;
|
||||
#endif
|
||||
sei();
|
||||
|
||||
#if defined(PCBSTD)
|
||||
@@ -135,60 +140,52 @@ void varioWakeup()
|
||||
verticalSpeed = (verticalSpeed * 10) / ((varioMax-varioCenterMax) / 100);
|
||||
|
||||
if ((int16_t)(s_varioTmr-tmr10ms) < 0) {
|
||||
uint8_t SoundVarioBeepTime = (1600 - verticalSpeed) / 100;
|
||||
uint8_t SoundVarioBeepFreq = (verticalSpeed * 10 + 16000) >> 8;
|
||||
s_varioTmr = tmr10ms + (SoundVarioBeepTime*2);
|
||||
AUDIO_VARIO(SoundVarioBeepFreq, SoundVarioBeepTime);
|
||||
uint8_t varioBeepFreq = (verticalSpeed * 10 + 16000) >> 8;
|
||||
uint8_t varioBeepTime = (1600 - verticalSpeed) / 100;
|
||||
s_varioTmr = tmr10ms + (varioBeepTime*2);
|
||||
AUDIO_VARIO(varioBeepFreq, varioBeepTime);
|
||||
}
|
||||
}
|
||||
#else
|
||||
int16_t varioCenterMax = (int16_t)g_model.frsky.varioCenterMax * 10 + 50;
|
||||
if (verticalSpeed >= varioCenterMax) {
|
||||
verticalSpeed = verticalSpeed - varioCenterMax;
|
||||
int16_t varioMax = (10+(int16_t)g_model.frsky.varioMax) * 100;
|
||||
if (verticalSpeed > varioMax) verticalSpeed = varioMax;
|
||||
verticalSpeed = (verticalSpeed * 10) / ((varioMax-varioCenterMax) / 100);
|
||||
}
|
||||
else {
|
||||
int16_t varioCenterMin = (int16_t)g_model.frsky.varioCenterMin * 10 - 50;
|
||||
if (verticalSpeed <= varioCenterMin) {
|
||||
verticalSpeed = verticalSpeed - varioCenterMin;
|
||||
int16_t varioMin = (-10+(int16_t)g_model.frsky.varioMin) * 100;
|
||||
if (verticalSpeed < varioMin) verticalSpeed = varioMin;
|
||||
verticalSpeed = (verticalSpeed * 10) / ((varioCenterMin-varioMin) / 100);
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
int varioCenterMin = (int)g_model.frsky.varioCenterMin * 10 - 50;
|
||||
int varioCenterMax = (int)g_model.frsky.varioCenterMax * 10 + 50;
|
||||
int varioMax = (10+(int)g_model.frsky.varioMax) * 100;
|
||||
int varioMin = (-10+(int)g_model.frsky.varioMin) * 100;
|
||||
|
||||
if (verticalSpeed < 0 || (int16_t)(s_varioTmr-tmr10ms) < 0) {
|
||||
if (verticalSpeed > varioMax)
|
||||
verticalSpeed = varioMax;
|
||||
else if (verticalSpeed < varioMin)
|
||||
verticalSpeed = varioMin;
|
||||
|
||||
if ((int16_t)(s_varioTmr - tmr10ms) < 0) {
|
||||
#if defined(CPUARM)
|
||||
int SoundVarioBeepTime;
|
||||
int SoundVarioBeepFreq;
|
||||
if (verticalSpeed > 0) {
|
||||
SoundVarioBeepTime = min(5, 320 - (verticalSpeed >> 2));
|
||||
SoundVarioBeepFreq = 1000 + verticalSpeed;
|
||||
int varioBeepFreq, varioBeepTime;
|
||||
if (verticalSpeed > varioCenterMin) {
|
||||
varioBeepFreq = VARIO_FREQUENCY_ZERO + (g_eeGeneral.varioPitch*10) + (((VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10)) * verticalSpeed) / varioMax);
|
||||
int period = VARIO_PERIOD_ZERO - ((VARIO_PERIOD_ZERO-VARIO_PERIOD_MAX) * verticalSpeed) / varioMax;
|
||||
// TODO something exponential would be better
|
||||
varioBeepTime = (verticalSpeed > varioCenterMax ? (period / 4) : (period / 2));
|
||||
s_varioTmr = tmr10ms + (period/10);
|
||||
}
|
||||
else {
|
||||
SoundVarioBeepTime = 80;
|
||||
SoundVarioBeepFreq = (verticalSpeed * 3 + 8000) >> 3;
|
||||
varioBeepFreq = VARIO_FREQUENCY_ZERO + (g_eeGeneral.varioPitch*10) - (((VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10)-BEEP_MIN_FREQ) * verticalSpeed) / varioMin);
|
||||
varioBeepTime = 80; // TODO 20 // continuous beep: we will enter again here before the tone ends
|
||||
s_varioTmr = tmr10ms + 1;
|
||||
}
|
||||
s_varioTmr = tmr10ms + (SoundVarioBeepTime/5);
|
||||
#else
|
||||
uint8_t SoundVarioBeepTime;
|
||||
uint8_t SoundVarioBeepFreq;
|
||||
uint8_t varioBeepFreq, varioBeepTime;
|
||||
if (verticalSpeed > 0) {
|
||||
SoundVarioBeepTime = (8000 - verticalSpeed * 5) / 100;
|
||||
SoundVarioBeepFreq = (verticalSpeed * 4 + 8000) >> 7;
|
||||
varioBeepFreq = (verticalSpeed * 4 + 8000) >> 7;
|
||||
varioBeepTime = (8000 - verticalSpeed * 5) / 100;
|
||||
}
|
||||
else {
|
||||
SoundVarioBeepTime = 20;
|
||||
SoundVarioBeepFreq = (verticalSpeed * 3 + 8000) >> 7;
|
||||
varioBeepFreq = (verticalSpeed * 3 + 8000) >> 7;
|
||||
varioBeepTime = 20;
|
||||
}
|
||||
s_varioTmr = tmr10ms + (SoundVarioBeepTime/2);
|
||||
s_varioTmr = tmr10ms + (varioBeepTime/2);
|
||||
#endif
|
||||
AUDIO_VARIO(SoundVarioBeepFreq, SoundVarioBeepTime);
|
||||
|
||||
AUDIO_VARIO(varioBeepFreq, varioBeepTime);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -239,6 +239,8 @@ enum BeeperMode {
|
||||
int8_t beepVolume; \
|
||||
int8_t wavVolume; \
|
||||
int8_t varioVolume; \
|
||||
int8_t varioPitch; \
|
||||
int8_t varioRange; \
|
||||
int8_t backgroundVolume;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -4530,7 +4530,7 @@ void perMain()
|
||||
|
||||
checkBacklight();
|
||||
|
||||
#if defined(FRSKY) || defined(MAVLINK)
|
||||
#if !defined(CPUARM) && (defined(FRSKY) || defined(MAVLINK))
|
||||
telemetryWakeup();
|
||||
#endif
|
||||
|
||||
@@ -5188,6 +5188,10 @@ void mixerTask(void * pdata)
|
||||
CoLeaveMutexSection(mixerMutex);
|
||||
if (tick10ms) checkTrims();
|
||||
|
||||
#if defined(FRSKY) || defined(MAVLINK)
|
||||
telemetryWakeup();
|
||||
#endif
|
||||
|
||||
if (heartbeat == HEART_WDT_CHECK) {
|
||||
wdt_reset();
|
||||
heartbeat = 0;
|
||||
|
||||
@@ -1331,6 +1331,10 @@ enum FunctionsActive {
|
||||
#endif
|
||||
};
|
||||
|
||||
#define VARIO_FREQUENCY_ZERO 700/*Hz*/
|
||||
#define VARIO_FREQUENCY_RANGE 1000/*Hz*/
|
||||
#define VARIO_PERIOD_ZERO 250/*ms*/
|
||||
#define VARIO_PERIOD_MAX 50/*ms*/
|
||||
|
||||
extern MASK_FUNC_TYPE activeFunctions;
|
||||
extern MASK_CFN_TYPE activeFnSwitches;
|
||||
|
||||
@@ -655,7 +655,11 @@ void telemetryWakeup()
|
||||
#endif
|
||||
|
||||
#if defined(VARIO)
|
||||
#if 1
|
||||
#warning "test removed for vario tests"
|
||||
#else
|
||||
if (TELEMETRY_STREAMING() && !IS_FAI_ENABLED())
|
||||
#endif
|
||||
varioWakeup();
|
||||
#endif
|
||||
|
||||
|
||||
+3
-1
@@ -3,12 +3,14 @@
|
||||
import math
|
||||
|
||||
samples = 1024
|
||||
amplitudes = (63999, 1024, 512)
|
||||
amplitudes = (60000, 4096, 1024)
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user