Code/Tables.cs
#nullable enable
namespace SharpTalk
{
public static class Tables
{
// Control block types
public const int kFreqType = 0;
public const int kBWType = 1;
public const int kFNZType = 2;
public const int kSourceAmpType = 3;
public const int kResonAmpType = 4;
// Rank types
public const int kFrontR = 0;
public const int kMiddleR = 1;
public const int kBackR = 2;
public const int kRoundR = 3;
public const int kConsonantR = 4;
// Phoneme flags
public const uint kVowelF = (1 << 0); // 0x1
public const uint kVoicedF = (1 << 2); // 0x4
public const uint kVowel1F = (1 << 3); // 0x8
public const uint kSonorantF = (1 << 4); // 0x10
public const uint kNasalF = (1 << 6); // 0x40
public const uint kPlosiveF = (1 << 9); // 0x200
public const uint kStopF = (1 << 12); // 0x1000
public const uint kGStopF = (1 << 20); // 0x100000
public const uint kAffricateF = (1 << 24); // 0x1000000
// Misc constants
public const int k100pct = 0x10000;
public const int UseEnvList = 0x8000;
// Coarticulation types
public const int kControlType = 0;
public const int kStressType = 1;
public const int kPDType = 2;
public const int kBoundryType = 3;
public const int kWordBoundType = 4;
public const int kTerminatorType = 5;
// Locus macros/placeholders (should be replaced in extract_tables.py)
public static readonly uint[] PhonFlags2 = new uint[]
{
2621501u, 2097213u, 2097213u, 2097213u, 61u, 61u, 61u, 61u,
61u, 61u, 6815805u, 4194365u, 4194365u, 4194365u, 4194365u, 4194365u,
4456765u, 4194365u, 4194365u, 4194365u, 4194365u, 4194365u, 2097213u, 32u,
100663478u, 67109046u, 53u, 10613u, 33554870u, 786870u, 33554870u, 438u,
34u, 8423798u, 8399222u, 8407414u, 134251522u, 134251526u, 134284290u, 134284294u,
134226946u, 134226950u, 134349826u, 134349830u, 8429058u, 8429062u, 8404482u, 8404486u,
8412674u, 8412678u, 16911874u, 16911878u, 1064454u, 3078u, 1050628u, 73222u,
61u, 61u, 61u, 61u, 61u,
};
// MinDurTbl[phon] = min duration in ms
public static readonly short[] MinDurTbl = new short[]
{
60, 60, 60, 50, 90, 70, 100, 50, 50, 90, 110, 100, 110, 110, 90, 50,
100, 120, 120, 120, 120, 120, 50, 200, 70, 70, 110, 100, 15, 30, 30, 40,
35, 60, 35, 50, 60, 55, 40, 35, 65, 60, 60, 50, 70, 60, 50, 40,
75, 65, 100, 70, 50, 20, 50, 35,
80, 60, 60, 60, 80,
};
// BoundryDurTbl[bndType] = silence duration in ms for boundary types 0-20
public static readonly short[] BoundryDurTbl = new short[]
{
0, // 0: unused
350, // 1: kBND_Pause (comma)
600, // 2: kBND_Decl (declarative)
600, // 3: kBND_Quest (yes-no question)
600, // 4: kBND_Emph (exclamation)
300, // 5: kBND_Paren_L
200, // 6: kBND_Paren_R
155, // 7: kBND_Sep1
60, // 8: kBND_Sep2
60, // 9: kBND_Sep3
60, // 10: kBND_Sep4
20, // 11: kBND_Sep5
0, // 12: kBND_Sep6
100, // 13: kBND_Sep7
850, // 14: kBND_Ellipsis
35, // 15
60, // 16
60, // 17
20, // 18
10, // 19
100, // 20
};
public static readonly short[] LogToLin = new short[]
{
0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5,
6, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 23, 25, 29, 32,
};
public static readonly short[] logOf2Tbl = new short[]
{
0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10,
11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 21, 21,
22, 23, 23, 24, 25, 25, 26, 27, 27, 28, 29, 29, 30, 31, 31, 32,
33, 33, 34, 35, 35, 36, 37, 37, 38, 38, 39, 40, 40, 41, 42, 42,
43, 44, 44, 45, 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 52,
53, 54, 54, 55, 56, 56, 57, 57, 58, 59, 59, 60, 61, 61, 62, 62,
63, 64, 64, 65, 65, 66, 67, 67, 68, 68, 69, 70, 70, 71, 71, 72,
73, 73, 74, 74, 75, 76, 76, 77, 77, 78, 78, 79, 80, 80, 81, 81,
82, 82, 83, 84, 84, 85, 85, 86, 87, 87, 88, 88, 89, 89, 90, 90,
91, 92, 92, 93, 93, 94, 94, 95, 96, 96, 97, 97, 98, 98, 99, 99,
100, 100, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 108, 108,
109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 116, 116, 117,
117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125,
125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 131, 131, 132, 132, 133, 133,
134, 134, 135, 135, 136, 136, 137, 137, 138, 138, 139, 139, 140, 140, 140, 141,
141, 142, 142, 143, 143, 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, 149,
149, 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, 155, 155, 155, 156, 156,
157, 157, 158, 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 163, 163, 164,
164, 165, 165, 166, 166, 167, 167, 168, 168, 168, 169, 169, 170, 170, 171, 171,
172, 172, 173, 173, 173, 174, 174, 175, 175, 176, 176, 177, 177, 177, 178, 178,
179, 179, 180, 180, 181, 181, 181, 182, 182, 183, 183, 184, 184, 185, 185, 185,
186, 186, 187, 187, 188, 188, 188, 189, 189, 190, 190, 191, 191, 191, 192, 192,
193, 193, 194, 194, 194, 195, 195, 196, 196, 197, 197, 197, 198, 198, 199, 199,
200, 200, 200, 201, 201, 202, 202, 202, 203, 203, 204, 204, 205, 205, 205, 206,
206, 207, 207, 207, 208, 208, 209, 209, 209, 210, 210, 211, 211, 212, 212, 212,
213, 213, 214, 214, 214, 215, 215, 216, 216, 216, 217, 217, 218, 218, 218, 219,
219, 220, 220, 220, 221, 221, 222, 222, 222, 223, 223, 223, 224, 224, 225, 225,
225, 226, 226, 227, 227, 227, 228, 228, 229, 229, 229, 230, 230, 231, 231, 231,
232, 232, 232, 233, 233, 234, 234, 234, 235, 235, 235, 236, 236, 237, 237, 237,
238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 242, 242, 242, 243, 243, 243,
244, 244, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 249, 249, 249,
250, 250, 250, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255, 255,
};
public static readonly short[] CtrlBlockTypeTbl = new short[]
{
0, 0, 0, 1, 1, 1, 2, 3, 3, 4, 4, 4, 4, 4, 4,
};
public static readonly short[] Male_Loci_Tbl = new short[]
{
300, 63, 30, 1, 92, 35, 2080, 35, 30, 320, 60, 30, 1, 91, 35, 2100,
65, 40, 300, 50, 30, 1, 92, 35, 2080, 35, 40, 300, 50, 30, 1, 91,
40, 2100, 65, 40, 340, 10, 45, 1350, 20, 50, 2700, 0, 50, 350, 10, 50,
1300, 12, 55, 2720, 11, 55, 340, 10, 45, 1350, 20, 50, 2700, 0, 50, 350,
10, 50, 1300, 12, 55, 2720, 11, 55, 310, 40, 40, 1240, 40, 50, 2550, 0,
70, 310, 40, 40, 1240, 40, 50, 2630, 0, 70, 310, 40, 40, 1320, 15, 60,
2460, 0, 65, 310, 40, 40, 1240, 35, 50, 2550, 0, 70, 310, 40, 40, 1240,
35, 60, 2630, 0, 70, 310, 40, 40, 1320, 15, 60, 2460, 0, 65, 285, 32,
55, 1830, 30, 70, 2640, 51, 70, 285, 32, 55, 1700, 27, 70, 2270, 0, 85,
340, 32, 55, 1630, 27, 90, 2100, 20, 110, 285, 32, 55, 1830, 30, 70, 2640,
51, 70, 285, 32, 55, 1700, 27, 70, 2270, 0, 85, 340, 32, 55, 1630, 27,
90, 2100, 20, 110, 350, 55, 20, 950, 56, 30, 2200, 25, 45, 350, 45, 25,
920, 46, 30, 2250, 40, 50, 330, 55, 20, 900, 56, 30, 2200, 25, 45, 330,
45, 25, 920, 46, 30, 2250, 40, 50, 320, 43, 35, 1800, 66, 35, 2650, 30,
45, 320, 43, 50, 1700, 40, 75, 2600, 0, 50, 320, 43, 40, 1700, 40, 95,
2300, 0, 95, 250, 43, 35, 1800, 66, 35, 2650, 30, 45, 250, 43, 50, 1700,
40, 75, 2600, 0, 50, 250, 43, 40, 1700, 40, 95, 2300, 0, 95, 320, 33,
45, 1990, 20, 50, 3000, 117, 50, 320, 33, 50, 1800, 16, 60, 2150, 0, 90,
320, 33, 40, 1600, 42, 65, 2050, 15, 80, 250, 33, 45, 1990, 20, 50, 3000,
113, 50, 300, 33, 50, 1780, 16, 60, 2150, 0, 90, 290, 45, 40, 1600, 42,
65, 1920, 15, 80, 320, 54, 55, 1750, 25, 70, 2750, 19, 70, 320, 54, 55,
1680, 10, 70, 2450, 10, 70, 320, 54, 55, 1680, 10, 90, 2350, 10, 100, 240,
32, 55, 1750, 25, 70, 2750, 19, 70, 245, 32, 55, 1680, 10, 70, 2450, 10,
70, 245, 32, 55, 1680, 10, 90, 2350, 10, 100, 470, 30, 30, 1200, 10, 35,
2100, 30, 40, 450, 20, 30, 1, 88, 40, 1550, 80, 25, 450, 20, 35, 1350,
75, 35, 2600, 40, 45, 450, 20, 30, 1420, 25, 75, 2600, 0, 60, 450, 20,
30, 1550, 25, 95, 2320, 0, 95, 440, 25, 40, 2200, 15, 60, 3000, 105, 60,
440, 25, 40, 1800, 20, 70, 2150, 20, 70, 440, 25, 40, 1700, 42, 70, 1920,
25, 70,
};
public static readonly short[] Female_Loci_Tbl = new short[]
{
350, 65, 30, 1, 87, 40, 2600, 35, 30, 350, 75, 30, 1, 85, 30, 2000,
65, 40, 330, 65, 30, 1, 85, 40, 2600, 35, 40, 330, 75, 30, 1, 84,
30, 2000, 65, 40, 360, 30, 45, 1300, 40, 70, 3180, 35, 70, 440, 30, 50,
1800, 42, 70, 3060, 11, 70, 340, 30, 45, 1300, 35, 60, 3180, 35, 60, 400,
30, 50, 1800, 42, 70, 3060, 11, 70, 330, 40, 40, 2000, 30, 50, 2980, 0,
70, 390, 40, 40, 1800, 40, 50, 3070, 0, 70, 390, 40, 40, 1900, 15, 60,
2880, 0, 65, 320, 40, 40, 2000, 30, 50, 2980, 0, 70, 320, 35, 40, 1800,
40, 50, 3070, 0, 70, 320, 40, 40, 1900, 15, 60, 2880, 0, 65, 360, 32,
55, 2000, 30, 70, 2940, 51, 70, 360, 32, 55, 1850, 7, 70, 2700, 0, 85,
400, 32, 55, 1840, 7, 90, 2700, 20, 110, 320, 26, 55, 2000, 30, 70, 2940,
51, 70, 320, 26, 55, 1850, 7, 70, 2700, 0, 85, 320, 30, 55, 1840, 7,
90, 2700, 20, 110, 440, 40, 20, 1350, 60, 25, 2690, 55, 35, 440, 40, 25,
1130, 50, 30, 2530, 48, 40, 360, 40, 20, 1350, 60, 25, 2690, 55, 35, 360,
50, 20, 1130, 50, 30, 2530, 48, 40, 470, 33, 35, 2150, 60, 35, 3150, 30,
45, 470, 33, 45, 2050, 0, 80, 2990, 0, 50, 470, 33, 40, 1900, 0, 70,
2900, 20, 70, 370, 33, 35, 2150, 60, 35, 3150, 30, 45, 370, 33, 45, 2050,
0, 80, 2990, 0, 50, 370, 33, 40, 1900, 0, 80, 2900, 20, 80, 440, 33,
40, 2750, 60, 50, 3350, 110, 50, 440, 33, 45, 1900, 0, 60, 2500, 0, 90,
440, 33, 35, 1800, 62, 65, 2520, 15, 80, 320, 33, 45, 2750, 60, 50, 3350,
110, 50, 340, 43, 50, 1900, 0, 60, 2500, 0, 90, 370, 45, 40, 1800, 62,
65, 2520, 15, 80, 400, 34, 55, 2100, 25, 70, 3300, 19, 70, 420, 40, 55,
1900, 10, 70, 3200, 10, 70, 420, 34, 55, 2050, 10, 90, 3100, 10, 100, 370,
32, 55, 2000, 25, 70, 3300, 19, 70, 380, 40, 55, 1900, 10, 70, 3200, 10,
70, 380, 32, 55, 2050, 10, 90, 3100, 10, 100, 470, 30, 30, 1380, 10, 35,
2400, 30, 40, 450, 20, 30, 1, 88, 40, 1750, 80, 30, 450, 24, 35, 1500,
75, 35, 3000, 35, 45, 450, 22, 30, 1900, 25, 75, 3040, 0, 60, 450, 24,
30, 1900, 25, 80, 2890, 0, 80, 460, 20, 40, 2860, 40, 60, 3200, 65, 60,
500, 20, 40, 1970, 20, 70, 2620, 20, 70, 480, 20, 40, 1650, 42, 70, 2500,
25, 70,
};
public static readonly short[] Front_Loci_Tbl = new short[]
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 792, -1, -1, -1, -1,
-1, 756, 792, 846, 0, 36, 72, 108, 144, 198, 252, 306, 360, 396, 432, 486,
540, 594, 648, 702, 432, 486, -1, 108,
};
public static readonly short[] Mid_Loci_Tbl = new short[]
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 810, -1, -1, -1, -1,
-1, 774, 810, 864, 18, 54, 90, 126, 162, 216, 270, 324, 378, 414, 450, 504,
558, 612, 666, 720, 450, 504, -1, 126,
};
public static readonly short[] Back_Loci_Tbl = new short[]
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 828, -1, -1, -1, -1,
-1, 774, 828, 882, 18, 54, 90, 126, 180, 234, 288, 342, 378, 414, 468, 522,
576, 630, 684, 738, 468, 522, -1, 126,
-1, -1, -1, -1, -1,
};
public static readonly short[] NoiseIndexTbl = new short[]
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 0, 24, 48, 72, 96, 120, 144, 168, 192, 216, 240, 264,
288, 312, 336, 360, 384, -1, -1, 408,
-1, -1, -1, -1, -1,
};
public static readonly short[] Male_NoiseAmpTbl = new short[]
{
0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0,
0, 49, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 45, 0, 0,
0, 0, 0, 45, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 43,
0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0,
0, 48, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 41, 0, 0,
0, 0, 0, 41, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 39,
0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0,
55, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 55, 0, 0, 0,
0, 0, 55, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 55, 0,
0, 46, 63, 0, 60, 0, 0, 46, 63, 0, 60, 0, 0, 46, 63, 0,
63, 0, 0, 46, 63, 0, 63, 0, 0, 43, 59, 0, 42, 0, 0, 43,
59, 0, 42, 0, 0, 43, 54, 0, 36, 0, 0, 43, 54, 0, 36, 0,
0, 0, 0, 0, 44, 61, 0, 0, 0, 0, 44, 61, 0, 0, 0, 0,
44, 61, 0, 0, 0, 0, 44, 61, 0, 0, 0, 0, 40, 56, 0, 0,
0, 0, 40, 56, 0, 0, 0, 0, 40, 56, 0, 0, 0, 0, 40, 56,
0, 0, 48, 0, 55, 0, 0, 0, 52, 0, 54, 0, 33, 37, 60, 0,
50, 0, 33, 37, 60, 0, 50, 0, 0, 0, 44, 0, 52, 0, 0, 0,
46, 0, 51, 0, 0, 0, 57, 0, 0, 0, 0, 0, 55, 0, 0, 0,
0, 42, 51, 44, 33, 0, 43, 0, 0, 46, 0, 0, 43, 0, 28, 38,
0, 0, 43, 0, 28, 38, 0, 0, 0, 38, 0, 33, 0, 0, 39, 0,
0, 42, 0, 0, 38, 0, 23, 33, 0, 0, 38, 0, 23, 33, 0, 0,
0, 49, 53, 0, 48, 0, 0, 49, 53, 0, 48, 0, 0, 49, 52, 0,
42, 0, 0, 49, 52, 0, 42, 0, 0, 49, 63, 0, 48, 0, 0, 49,
63, 0, 48, 0, 0, 49, 60, 0, 42, 0, 0, 49, 60, 0, 42, 0,
0, 0, 44, 0, 52, 0, 0, 0, 46, 0, 51, 0, 0, 0, 57, 0,
0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 44, 61, 0, 0,
0, 0, 44, 61, 0, 0, 0, 0, 44, 61, 0, 0, 0, 0, 44, 61,
};
public static readonly short[] Female_NoiseAmpTbl = new short[]
{
0, 0, 0, 0, 35, 52, 0, 0, 0, 0, 35, 52, 0, 0, 0, 0,
33, 50, 0, 0, 0, 0, 33, 50, 0, 0, 0, 0, 29, 46, 0, 0,
0, 0, 29, 46, 0, 0, 0, 0, 27, 44, 0, 0, 0, 0, 27, 44,
0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0,
0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 40, 0, 0,
0, 0, 0, 40, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 38,
0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
61, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 52, 0, 0, 0,
0, 0, 52, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 55, 0,
0, 46, 53, 0, 37, 0, 0, 46, 53, 0, 37, 0, 0, 46, 53, 0,
37, 0, 0, 46, 53, 0, 37, 0, 0, 40, 47, 0, 31, 0, 0, 40,
47, 0, 31, 0, 0, 40, 47, 0, 31, 0, 0, 40, 47, 0, 31, 0,
40, 0, 0, 0, 43, 60, 0, 0, 0, 0, 43, 60, 0, 0, 0, 0,
43, 60, 0, 0, 0, 0, 43, 60, 34, 0, 0, 0, 37, 54, 0, 0,
0, 0, 37, 54, 0, 0, 0, 0, 37, 54, 0, 0, 0, 0, 37, 54,
0, 0, 0, 0, 54, 60, 0, 0, 0, 0, 54, 60, 0, 0, 0, 0,
54, 60, 0, 0, 0, 0, 54, 60, 0, 0, 0, 0, 49, 55, 0, 0,
0, 0, 49, 55, 0, 0, 0, 0, 49, 55, 0, 0, 0, 0, 49, 55,
0, 44, 51, 0, 35, 0, 45, 0, 0, 0, 0, 0, 48, 0, 30, 0,
0, 0, 48, 0, 30, 0, 0, 0, 0, 40, 0, 0, 0, 0, 41, 0,
0, 0, 0, 0, 43, 0, 25, 0, 0, 0, 43, 0, 25, 0, 0, 0,
0, 46, 53, 0, 37, 0, 0, 46, 53, 0, 37, 0, 0, 46, 49, 0,
34, 0, 0, 46, 49, 0, 34, 0, 0, 46, 53, 0, 37, 0, 0, 46,
53, 0, 37, 0, 0, 46, 49, 0, 34, 0, 0, 46, 49, 0, 34, 0,
0, 0, 0, 0, 49, 55, 0, 0, 0, 0, 49, 55, 0, 0, 0, 0,
49, 55, 0, 0, 0, 0, 49, 55, 40, 0, 0, 0, 43, 60, 0, 0,
0, 0, 43, 60, 0, 0, 0, 0, 43, 60, 0, 0, 0, 0, 43, 60,
};
public static readonly short[] Rank_FWD_Tbl = new short[]
{
0, 0, 0, 0, 1, 1, 2, 2, 1, 2, 0, 1, 2, 1, 2, 2,
0, 0, 0, 1, 2, 2, 0, 4, 2, 3, 3, 4, 3, 0, 3, 3,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
1, 0, 2, 0, 2,
};
public static readonly short[] Rank_BKWD_Tbl = new short[]
{
0, 0, 0, 0, 1, 1, 2, 2, 1, 2, 0, 0, 0, 3, 3, 3,
2, 2, 2, 2, 2, 2, 0, 4, 2, 3, 3, 4, 3, 0, 3, 3,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
1, 0, 2, 0, 3,
};
public static readonly short[] DefaultTargTbl = new short[]
{
600, 1600, 2600, 100, 150, 250,
};
public static readonly short[] BurstDurTbl = new short[]
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 13, 13,
20, 20, 70, 40, 0, 0, 0, 13,
0, 0, 0, 0, 0,
};
public static readonly short[] f1FreqTblM = new short[]
{
317, 458, 617, 714, 735, 625, 665, 498, 523, 462, -32768, -32764, -32760, -32756, -32752, -32748,
-32744, -32740, -32736, -32732, -32728, -32724, 454, -1, 475, 450, 450, 425, 295, 267, 395, 355,
-1, 400, 405, 403, 350, 280, 325, 300, 325, 270, 300, 280, 350, 230, 350, 200,
350, 200, 350, 250, 200, 350, -1, 200,
744, 298, 355, 480, 460,
};
public static readonly short[] f2FreqTblM = new short[]
{
2182, -32720, -32716, -32712, 1200, 1238, 1000, -32708, 1375, 1348, -32704, -32700, -32696, -32692, -32688, -32684,
-32680, -32676, -32672, -32668, -32664, -32660, 1667, -1, 1280, 800, 800, 1350, 536, 2156, 1112, 1090,
-1, 1179, 1500, 1870, 1100, 1100, 1300, 1300, 1430, 1430, 1650, 1650, 1100, 1034, 1600, 1600,
1800, 1895, 1750, 1750, 1600, 1600, -1, 1400,
1240, 2083, 1282, 1857, 857,
};
public static readonly short[] f3FreqTblM = new short[]
{
2860, 2540, 2540, 2470, 2660, 2600, 2635, 2530, 2510, 1863, -32652, -32648, -32644, -32640, -32636, -32632,
-32628, -32624, -32620, -32616, -32612, -32608, 2526, -1, 1550, 3000, 2850, 2500, 2300, 2660, 1490, 2815,
-1, 2212, 2520, 2470, 2070, 2070, 2520, 2570, 2550, 2600, 2550, 2550, 2150, 2025, 2600, 2600,
2250, 2675, 2700, 2700, 2600, 2600, -1, 2600,
2426, 2954, 2233, 2437, 2405,
};
public static readonly short[] b1FreqTblM = new short[]
{
75, 75, 75, 90, 115, 90, 100, 85, 90, 90, 80, -32604, 90, -32600, 90, 82,
70, 80, 85, 115, 95, 90, 60, 300, 80, 90, 90, 130, 75, 70, 80, 80,
300, 130, 110, 130, 200, 100, 200, 100, 200, 100, 200, 100, 200, 90, 200, 75,
200, 75, 200, 70, 110, 90, -1, 90,
182, 67, 55, 65, 61,
};
public static readonly short[] b2FreqTblM = new short[]
{
120, 120, 122, -32596, 115, 105, 115, 110, 110, 110, 120, 120, -32592, 107, 105, 105,
-32588, 120, 125, 115, 110, 90, 100, 300, 80, 90, 90, 300, 100, 170, 100, 102,
200, 280, 220, 250, 120, 120, 90, 120, 180, 140, 240, 160, 180, 80, 150, 100,
160, 135, 280, 170, 100, 100, -1, 110,
117, 130, 129, 97, 114,
};
public static readonly short[] b3FreqTblM = new short[]
{
220, 225, 240, 255, 230, 220, 190, 210, 220, 175, 230, 245, 220, 205, 220, 200,
-32584, 200, 230, 205, 200, 180, 200, 300, 130, 160, 200, 460, 170, 280, 120, 190,
220, 360, 360, 400, 150, 120, 150, 170, 300, 300, 300, 300, 180, 130, 250, 205,
280, 230, 250, 250, 170, 170, -1, 200,
222, 145, 135, 257, 134,
};
public static readonly short[] avVolTblM = new short[]
{
61, 62, 62, 60, 61, 61, 61, 62, 60, 62, 62, 61, 62, 61, 62, 62,
65, 65, 62, 61, 62, 65, 63, 0, 64, 63, 63, 60, 58, 58, 58, 59,
0, 60, 59, 60, 0, 53, 0, 53, 0, 53, 0, 53, 0, 0, 0, 26,
0, 28, 0, 0, 0, 34, 47, 50,
61, 61, 61, 61, 61,
};
public static readonly short[] f1FreqTblF = new short[]
{
322, 533, 667, -32768, 810, 738, 728, -32764, 623, 512, -32760, -32756, -32752, -32748, -32744, -32740,
-32736, -32732, -32728, -32724, -32720, -32716, 499, -1, 490, 480, 480, 450, 320, 302, 395, 360,
-1, 410, 415, 413, 360, 300, 340, 320, 340, 300, 320, 300, 370, 240, 370, 210,
370, 210, 370, 280, 220, 370, -1, 220,
834, 334, 398, 538, 515,
};
public static readonly short[] f2FreqTblF = new short[]
{
-32712, -32708, -32704, -32700, 1325, -32696, -32692, 1195, 1650, 1513, -32688, -32684, -32680, -32676, -32672, -32668,
-32664, -32660, -32656, -32652, -32648, -32644, 2055, -1, 1600, 930, 990, 1530, 636, 2361, 1100, 1190,
-1, 1224, 1575, 2370, 1150, 1150, 1530, 1500, 1640, 1640, 1980, 1980, 1150, 1059, 1860, 1730,
2190, 2090, 2100, 2100, 1860, 1860, -1, 1860,
1314, 2208, 1359, 1968, 908,
};
public static readonly short[] f3FreqTblF = new short[]
{
3085, 2890, 2930, 2795, 2830, 2800, 2810, 2780, 2710, 2138, -32640, -32636, -32632, -32628, -32624, -32620,
-32616, -32612, -32608, -32604, -32600, -32596, 2864, -1, 1950, 3320, 3320, 2920, 2495, 3080, 1650, 3055,
-1, 2395, 2720, 3020, 2460, 2460, 2940, 2940, 2930, 3000, 2930, 2940, 2470, 2185, 3020, 2810,
2710, 2780, 3150, 3150, 3000, 3000, -1, 3020,
2523, 3072, 2322, 2534, 2501,
};
public static readonly short[] b1FreqTblF = new short[]
{
82, 82, 85, -32592, 135, 100, 115, 90, 115, 90, 82, -32588, 95, -32584, 95, 90,
80, 80, 105, 110, 90, 80, 80, 300, 90, 90, 90, 110, 85, 130, 80, 90,
500, 120, 105, 120, 200, 140, 200, 120, 200, 140, 200, 120, 200, 100, 200, 85,
200, 80, 200, 120, 90, 100, 100, 120,
191, 70, 58, 68, 64,
};
public static readonly short[] b2FreqTblF = new short[]
{
180, 165, 150, 190, 170, 145, 120, 120, 140, 195, 165, 165, -32580, 145, 125, 120,
-32576, 220, 165, 170, 155, 130, 180, 300, 200, 110, 120, 200, 110, 160, 125, 125,
-1, 340, 170, 600, 140, 120, 220, 210, 200, 170, 240, 160, 180, 110, 150, 120,
160, 125, 230, 170, 100, 100, -1, 90,
123, 137, 135, 102, 120,
};
public static readonly short[] b3FreqTblF = new short[]
{
265, 240, 265, 280, 220, 235, 220, 215, 230, 190, 280, 265, 220, 255, 220, 220,
-32572, 200, 205, 210, 195, 140, 240, 500, 150, 130, 200, 160, 185, 230, 125, 190,
-1, 250, 305, 550, 150, 120, 300, 270, 200, 200, 300, 300, 180, 150, 250, 170,
280, 215, 350, 350, 130, 130, -1, 120,
233, 152, 142, 270, 141,
};
public static readonly short[] avVolTblF = new short[]
{
62, 62, 62, 61, 61, 61, 61, 62, 60, 62, 62, 61, 62, 61, 62, 62,
66, 66, 62, 61, 61, 66, 63, 0, 64, 64, 64, 60, 58, 58, 58, 59,
0, 60, 59, 60, 0, 53, 0, 53, 0, 53, 0, 53, 0, 0, 0, 26,
0, 28, 0, 0, 0, 34, 47, 50,
62, 62, 62, 62, 62,
};
public static readonly uint[] One_Over_X_Tbl = new uint[]
{
65536, 65536, 32768, 21845, 16384, 13107, 10922, 9362, 8192, 7281, 6553, 5957, 5461, 5041, 4681, 4369,
4096, 3855, 3640, 3449, 3276, 3120, 2978, 2849, 2730, 2621, 2520, 2427, 2340, 2259, 2184, 2114,
2048, 1985, 1927, 1872, 1820, 1771, 1724, 1680, 1638, 1598, 1560, 1524, 1489, 1456, 1424, 1394,
1365, 1337, 1310, 1285, 1260, 1236, 1213, 1191, 1170, 1149, 1129, 1110, 1092, 1074, 1057, 1040,
1024, 1008, 992, 978, 963, 949, 936, 923, 910, 897, 885, 873, 862, 851, 840, 829,
819, 809, 799, 789, 780, 771, 762, 753, 744, 736, 728, 720, 712, 704, 697, 689,
682, 675, 668, 661,
};
public static readonly short[] MaleEnvTbl = new short[]
{
604, 5, 429, 80, 773, 50, 482, 80, 556, 35, 411, 85, 742, 40, 523, 90,
548, 20, 429, 75, 363, 20, 330, 85, 312, 20, 340, 70, 367, 40, 463, 75,
605, 15, 505, 90, 727, 40, 545, 70, 487, 35, 501, 70, 460, 35, 480, 75,
1860, 40, 1730, 90, 1783, 50, 1550, 90, 1507, 20, 1460, 90, 1117, 40, 1175, 75,
1760, 5, 1980, 80, 1230, 40, 1915, 85, 931, 35, 1844, 85, 1260, 40, 860, 85,
1082, 20, 845, 75, 1305, 20, 970, 85, 2111, 20, 1050, 65, 1940, 40, 1330, 75,
1705, 50, 1300, 75, 1139, 40, 1300, 70, 858, 40, 1200, 75, 997, 35, 1190, 75,
1680, 25, 1200, 75, 2524, 5, 2550, 80, 2655, 50, 2445, 70, 2578, 50, 2388, 75,
2635, 50, 2585, 90, 2416, 20, 2331, 80, 2280, 20, 2267, 80, 2660, 20, 2217, 50,
2710, 30, 1660, 90, 2460, 40, 1650, 80, 2605, 40, 1670, 80, 2480, 40, 1650, 80,
2371, 30, 1740, 90, 110, 40, 77, 90, 105, 50, 95, 90, 135, 50, 130, 90,
110, 40, 150, 90, 145, 20, 105, 65, 255, 20, 195, 50,
};
public static readonly short[] FemaleEnvTbl = new short[]
{
789, 20, 786, 80, 550, 29, 587, 75, 599, 20, 434, 90, 863, 50, 585, 90,
651, 50, 444, 85, 842, 40, 588, 90, 633, 20, 439, 80, 391, 20, 360, 85,
352, 30, 365, 70, 372, 40, 523, 75, 710, 20, 575, 90, 877, 40, 610, 70,
552, 40, 556, 70, 460, 30, 520, 75, 2486, 5, 2625, 90, 2135, 40, 2050, 90,
2108, 50, 1875, 90, 1737, 50, 1670, 80, 1484, 25, 1521, 60, 1080, 50, 1110, 90,
2075, 15, 2280, 85, 1405, 40, 2190, 80, 1021, 40, 2039, 85, 1535, 20, 1075, 65,
1232, 20, 895, 60, 1405, 20, 1125, 90, 2386, 35, 1250, 90, 2365, 40, 1480, 80,
2105, 45, 1450, 80, 1279, 40, 1450, 70, 1048, 40, 1350, 75, 1242, 35, 1340, 75,
2864, 10, 2975, 80, 2855, 60, 2920, 90, 2853, 50, 2738, 90, 2835, 25, 2760, 75,
2666, 20, 2656, 90, 2530, 20, 2467, 85, 2910, 30, 2517, 50, 2910, 30, 1810, 70,
2710, 40, 1800, 80, 2830, 35, 1820, 70, 2680, 35, 1800, 80, 2646, 30, 1890, 80,
95, 20, 120, 60, 135, 50, 95, 90, 120, 50, 95, 90, 120, 40, 160, 80,
145, 30, 120, 60, 275, 30, 195, 70,
};
public static readonly short[] phonPitchTbl = new short[]
{
29, 18, 6, 0, 0, 6, 0, 18, 9, 15, 12, 0, 15, 0, 9, 29,
29, 29, 18, 0, 9, 24, 18, 15, 0, 0, 0, -15, 18, 18, 0, 0,
57, -15, -15, -15, 82, -15, 82, -15, 82, -15, 82, -15, 82, -15, 82, -15,
82, -15, 82, -15, 0, -3, 0, -15,
0, 29, 18, 6, 9,
};
public static readonly short[] MaxDurTbl = new short[]
{
170, 160, 160, 230, 240, 160, 240, 170, 120, 180, 200, 250, 260, 260, 220, 210,
230, 230, 250, 250, 250, 230, 120, 305, 120, 100, 160, 170, 60, 75, 65, 75,
70, 70, 65, 80, 100, 70, 100, 60, 115, 75, 115, 70, 85, 80, 85, 80,
90, 90, 160, 100, 70, 20, 50, 60,
240, 170, 200, 160, 220,
};
}
} // namespace