haarnet
This commit is contained in:
commit
219e98ec64
BIN
Friction Cheat Sheet.pdf
Executable file
BIN
Friction Cheat Sheet.pdf
Executable file
Binary file not shown.
129
FrictionHertzTable.inc
Executable file
129
FrictionHertzTable.inc
Executable file
@ -0,0 +1,129 @@
|
||||
// MIDI notes 0 - 127 as floating point frequencies
|
||||
8.175773,
|
||||
8.66193,
|
||||
9.176996,
|
||||
9.722689,
|
||||
10.30083,
|
||||
10.91335,
|
||||
11.562292,
|
||||
12.249822,
|
||||
12.978235,
|
||||
13.749962,
|
||||
14.567577,
|
||||
15.433812,
|
||||
16.351555,
|
||||
17.32387,
|
||||
18.354002,
|
||||
19.445389,
|
||||
20.601671,
|
||||
21.826712,
|
||||
23.124598,
|
||||
24.499659,
|
||||
25.956484,
|
||||
27.499939,
|
||||
29.13517,
|
||||
30.86764,
|
||||
32.70313,
|
||||
34.64776,
|
||||
36.708023,
|
||||
38.890797,
|
||||
41.203365,
|
||||
43.65345,
|
||||
46.249218,
|
||||
48.999344,
|
||||
51.913,
|
||||
54.99991,
|
||||
58.270374,
|
||||
61.735313,
|
||||
65.40629,
|
||||
69.295555,
|
||||
73.416084,
|
||||
77.78164,
|
||||
82.40678,
|
||||
87.306946,
|
||||
92.49849,
|
||||
97.99874,
|
||||
103.82606,
|
||||
109.99988,
|
||||
116.54082,
|
||||
123.4707,
|
||||
130.81267,
|
||||
138.59119,
|
||||
146.83224,
|
||||
155.56335,
|
||||
164.81364,
|
||||
174.61398,
|
||||
184.99709,
|
||||
195.9976,
|
||||
207.65222,
|
||||
219.99988,
|
||||
233.08176,
|
||||
246.94154,
|
||||
261.62546,
|
||||
277.18253,
|
||||
293.66467,
|
||||
311.1269,
|
||||
329.62747,
|
||||
349.22818,
|
||||
369.9944,
|
||||
391.9954,
|
||||
415.30466,
|
||||
440.0,
|
||||
466.1638,
|
||||
493.88336,
|
||||
523.2512,
|
||||
554.36536,
|
||||
587.32965,
|
||||
622.2541,
|
||||
659.2553,
|
||||
698.4567,
|
||||
739.9892,
|
||||
783.9912,
|
||||
830.6098,
|
||||
880.00055,
|
||||
932.32806,
|
||||
987.7672,
|
||||
1046.5029,
|
||||
1108.7314,
|
||||
1174.66,
|
||||
1244.5089,
|
||||
1318.5114,
|
||||
1396.9142,
|
||||
1479.9791,
|
||||
1567.9833,
|
||||
1661.2206,
|
||||
1760.0018,
|
||||
1864.6572,
|
||||
1975.5355,
|
||||
2093.007,
|
||||
2217.4639,
|
||||
2349.3213,
|
||||
2489.0193,
|
||||
2637.0242,
|
||||
2793.83,
|
||||
2959.9597,
|
||||
3135.9685,
|
||||
3322.4429,
|
||||
3520.0059,
|
||||
3729.3167,
|
||||
3951.0735,
|
||||
4186.0166,
|
||||
4434.93,
|
||||
4698.6455,
|
||||
4978.0415,
|
||||
5274.052,
|
||||
5587.663,
|
||||
5919.923,
|
||||
6271.9404,
|
||||
6644.8896,
|
||||
7040.016,
|
||||
7458.637,
|
||||
7902.1514,
|
||||
8372.038,
|
||||
8869.865,
|
||||
9397.296,
|
||||
9956.089,
|
||||
10548.109,
|
||||
11175.333,
|
||||
11839.853,
|
||||
12543.888
|
||||
256
FrictionSineTable16bitHex.inc
Executable file
256
FrictionSineTable16bitHex.inc
Executable file
@ -0,0 +1,256 @@
|
||||
0x7FFF, 0x8031, 0x8064, 0x8096, 0x80C8, 0x80FA, 0x812D, 0x815F, 0x8191, 0x81C3, 0x81F6, 0x8228, 0x825A, 0x828C, 0x82BF, 0x82F1,
|
||||
0x8323, 0x8355, 0x8388, 0x83BA, 0x83EC, 0x841E, 0x8451, 0x8483, 0x84B5, 0x84E7, 0x851A, 0x854C, 0x857E, 0x85B0, 0x85E2, 0x8615,
|
||||
0x8647, 0x8679, 0x86AB, 0x86DD, 0x8710, 0x8742, 0x8774, 0x87A6, 0x87D8, 0x880A, 0x883D, 0x886F, 0x88A1, 0x88D3, 0x8905, 0x8937,
|
||||
0x896A, 0x899C, 0x89CE, 0x8A00, 0x8A32, 0x8A64, 0x8A96, 0x8AC8, 0x8AFA, 0x8B2C, 0x8B5F, 0x8B91, 0x8BC3, 0x8BF5, 0x8C27, 0x8C59,
|
||||
0x8C8B, 0x8CBD, 0x8CEF, 0x8D21, 0x8D53, 0x8D85, 0x8DB7, 0x8DE9, 0x8E1B, 0x8E4D, 0x8E7F, 0x8EB1, 0x8EE2, 0x8F14, 0x8F46, 0x8F78,
|
||||
0x8FAA, 0x8FDC, 0x900E, 0x9040, 0x9072, 0x90A3, 0x90D5, 0x9107, 0x9139, 0x916B, 0x919C, 0x91CE, 0x9200, 0x9232, 0x9264, 0x9295,
|
||||
0x92C7, 0x92F9, 0x932A, 0x935C, 0x938E, 0x93BF, 0x93F1, 0x9423, 0x9454, 0x9486, 0x94B8, 0x94E9, 0x951B, 0x954C, 0x957E, 0x95AF,
|
||||
0x95E1, 0x9613, 0x9644, 0x9676, 0x96A7, 0x96D8, 0x970A, 0x973B, 0x976D, 0x979E, 0x97D0, 0x9801, 0x9832, 0x9864, 0x9895, 0x98C6,
|
||||
0x98F8, 0x9929, 0x995A, 0x998B, 0x99BD, 0x99EE, 0x9A1F, 0x9A50, 0x9A82, 0x9AB3, 0x9AE4, 0x9B15, 0x9B46, 0x9B77, 0x9BA8, 0x9BD9,
|
||||
0x9C0A, 0x9C3B, 0x9C6C, 0x9C9D, 0x9CCE, 0x9CFF, 0x9D30, 0x9D61, 0x9D92, 0x9DC3, 0x9DF4, 0x9E25, 0x9E56, 0x9E86, 0x9EB7, 0x9EE8,
|
||||
0x9F19, 0x9F4A, 0x9F7A, 0x9FAB, 0x9FDC, 0xA00C, 0xA03D, 0xA06E, 0xA09E, 0xA0CF, 0xA0FF, 0xA130, 0xA161, 0xA191, 0xA1C2, 0xA1F2,
|
||||
0xA223, 0xA253, 0xA283, 0xA2B4, 0xA2E4, 0xA314, 0xA345, 0xA375, 0xA3A5, 0xA3D6, 0xA406, 0xA436, 0xA466, 0xA497, 0xA4C7, 0xA4F7,
|
||||
0xA527, 0xA557, 0xA587, 0xA5B7, 0xA5E7, 0xA617, 0xA647, 0xA677, 0xA6A7, 0xA6D7, 0xA707, 0xA737, 0xA766, 0xA796, 0xA7C6, 0xA7F6,
|
||||
0xA826, 0xA855, 0xA885, 0xA8B5, 0xA8E4, 0xA914, 0xA943, 0xA973, 0xA9A3, 0xA9D2, 0xAA02, 0xAA31, 0xAA61, 0xAA90, 0xAABF, 0xAAEF,
|
||||
0xAB1E, 0xAB4D, 0xAB7D, 0xABAC, 0xABDB, 0xAC0A, 0xAC3A, 0xAC69, 0xAC98, 0xACC7, 0xACF6, 0xAD25, 0xAD54, 0xAD83, 0xADB2, 0xADE1,
|
||||
0xAE10, 0xAE3F, 0xAE6E, 0xAE9C, 0xAECB, 0xAEFA, 0xAF29, 0xAF57, 0xAF86, 0xAFB5, 0xAFE3, 0xB012, 0xB041, 0xB06F, 0xB09E, 0xB0CC,
|
||||
0xB0FB, 0xB129, 0xB157, 0xB186, 0xB1B4, 0xB1E2, 0xB211, 0xB23F, 0xB26D, 0xB29B, 0xB2C9, 0xB2F8, 0xB326, 0xB354, 0xB382, 0xB3B0,
|
||||
0xB3DE, 0xB40C, 0xB43A, 0xB467, 0xB495, 0xB4C3, 0xB4F1, 0xB51F, 0xB54C, 0xB57A, 0xB5A8, 0xB5D5, 0xB603, 0xB630, 0xB65E, 0xB68B,
|
||||
0xB6B9, 0xB6E6, 0xB714, 0xB741, 0xB76E, 0xB79C, 0xB7C9, 0xB7F6, 0xB823, 0xB851, 0xB87E, 0xB8AB, 0xB8D8, 0xB905, 0xB932, 0xB95F,
|
||||
0xB98C, 0xB9B9, 0xB9E5, 0xBA12, 0xBA3F, 0xBA6C, 0xBA98, 0xBAC5, 0xBAF2, 0xBB1E, 0xBB4B, 0xBB77, 0xBBA4, 0xBBD0, 0xBBFD, 0xBC29,
|
||||
0xBC55, 0xBC82, 0xBCAE, 0xBCDA, 0xBD07, 0xBD33, 0xBD5F, 0xBD8B, 0xBDB7, 0xBDE3, 0xBE0F, 0xBE3B, 0xBE67, 0xBE93, 0xBEBE, 0xBEEA,
|
||||
0xBF16, 0xBF42, 0xBF6D, 0xBF99, 0xBFC5, 0xBFF0, 0xC01C, 0xC047, 0xC073, 0xC09E, 0xC0C9, 0xC0F5, 0xC120, 0xC14B, 0xC177, 0xC1A2,
|
||||
0xC1CD, 0xC1F8, 0xC223, 0xC24E, 0xC279, 0xC2A4, 0xC2CF, 0xC2FA, 0xC324, 0xC34F, 0xC37A, 0xC3A5, 0xC3CF, 0xC3FA, 0xC425, 0xC44F,
|
||||
0xC47A, 0xC4A4, 0xC4CE, 0xC4F9, 0xC523, 0xC54D, 0xC578, 0xC5A2, 0xC5CC, 0xC5F6, 0xC620, 0xC64A, 0xC674, 0xC69E, 0xC6C8, 0xC6F2,
|
||||
0xC71C, 0xC745, 0xC76F, 0xC799, 0xC7C2, 0xC7EC, 0xC816, 0xC83F, 0xC869, 0xC892, 0xC8BB, 0xC8E5, 0xC90E, 0xC937, 0xC961, 0xC98A,
|
||||
0xC9B3, 0xC9DC, 0xCA05, 0xCA2E, 0xCA57, 0xCA80, 0xCAA9, 0xCAD1, 0xCAFA, 0xCB23, 0xCB4C, 0xCB74, 0xCB9D, 0xCBC5, 0xCBEE, 0xCC16,
|
||||
0xCC3F, 0xCC67, 0xCC8F, 0xCCB7, 0xCCE0, 0xCD08, 0xCD30, 0xCD58, 0xCD80, 0xCDA8, 0xCDD0, 0xCDF8, 0xCE20, 0xCE48, 0xCE6F, 0xCE97,
|
||||
0xCEBF, 0xCEE6, 0xCF0E, 0xCF35, 0xCF5D, 0xCF84, 0xCFAC, 0xCFD3, 0xCFFA, 0xD021, 0xD048, 0xD070, 0xD097, 0xD0BE, 0xD0E5, 0xD10C,
|
||||
0xD132, 0xD159, 0xD180, 0xD1A7, 0xD1CE, 0xD1F4, 0xD21B, 0xD241, 0xD268, 0xD28E, 0xD2B5, 0xD2DB, 0xD301, 0xD327, 0xD34E, 0xD374,
|
||||
0xD39A, 0xD3C0, 0xD3E6, 0xD40C, 0xD432, 0xD458, 0xD47D, 0xD4A3, 0xD4C9, 0xD4EE, 0xD514, 0xD539, 0xD55F, 0xD584, 0xD5AA, 0xD5CF,
|
||||
0xD5F4, 0xD61A, 0xD63F, 0xD664, 0xD689, 0xD6AE, 0xD6D3, 0xD6F8, 0xD71D, 0xD741, 0xD766, 0xD78B, 0xD7AF, 0xD7D4, 0xD7F9, 0xD81D,
|
||||
0xD842, 0xD866, 0xD88A, 0xD8AE, 0xD8D3, 0xD8F7, 0xD91B, 0xD93F, 0xD963, 0xD987, 0xD9AB, 0xD9CF, 0xD9F3, 0xDA16, 0xDA3A, 0xDA5E,
|
||||
0xDA81, 0xDAA5, 0xDAC8, 0xDAEC, 0xDB0F, 0xDB32, 0xDB55, 0xDB79, 0xDB9C, 0xDBBF, 0xDBE2, 0xDC05, 0xDC28, 0xDC4B, 0xDC6D, 0xDC90,
|
||||
0xDCB3, 0xDCD5, 0xDCF8, 0xDD1A, 0xDD3D, 0xDD5F, 0xDD82, 0xDDA4, 0xDDC6, 0xDDE8, 0xDE0B, 0xDE2D, 0xDE4F, 0xDE71, 0xDE92, 0xDEB4,
|
||||
0xDED6, 0xDEF8, 0xDF1A, 0xDF3B, 0xDF5D, 0xDF7E, 0xDFA0, 0xDFC1, 0xDFE2, 0xE004, 0xE025, 0xE046, 0xE067, 0xE088, 0xE0A9, 0xE0CA,
|
||||
0xE0EB, 0xE10C, 0xE12C, 0xE14D, 0xE16E, 0xE18E, 0xE1AF, 0xE1CF, 0xE1F0, 0xE210, 0xE230, 0xE250, 0xE271, 0xE291, 0xE2B1, 0xE2D1,
|
||||
0xE2F1, 0xE310, 0xE330, 0xE350, 0xE370, 0xE38F, 0xE3AF, 0xE3CE, 0xE3EE, 0xE40D, 0xE42D, 0xE44C, 0xE46B, 0xE48A, 0xE4A9, 0xE4C8,
|
||||
0xE4E7, 0xE506, 0xE525, 0xE544, 0xE562, 0xE581, 0xE5A0, 0xE5BE, 0xE5DD, 0xE5FB, 0xE619, 0xE638, 0xE656, 0xE674, 0xE692, 0xE6B0,
|
||||
0xE6CE, 0xE6EC, 0xE70A, 0xE728, 0xE745, 0xE763, 0xE781, 0xE79E, 0xE7BC, 0xE7D9, 0xE7F6, 0xE814, 0xE831, 0xE84E, 0xE86B, 0xE888,
|
||||
0xE8A5, 0xE8C2, 0xE8DF, 0xE8FC, 0xE918, 0xE935, 0xE952, 0xE96E, 0xE98B, 0xE9A7, 0xE9C3, 0xE9E0, 0xE9FC, 0xEA18, 0xEA34, 0xEA50,
|
||||
0xEA6C, 0xEA88, 0xEAA4, 0xEAC0, 0xEADB, 0xEAF7, 0xEB13, 0xEB2E, 0xEB4A, 0xEB65, 0xEB80, 0xEB9B, 0xEBB7, 0xEBD2, 0xEBED, 0xEC08,
|
||||
0xEC23, 0xEC3E, 0xEC58, 0xEC73, 0xEC8E, 0xECA8, 0xECC3, 0xECDD, 0xECF8, 0xED12, 0xED2C, 0xED47, 0xED61, 0xED7B, 0xED95, 0xEDAF,
|
||||
0xEDC9, 0xEDE2, 0xEDFC, 0xEE16, 0xEE2F, 0xEE49, 0xEE62, 0xEE7C, 0xEE95, 0xEEAF, 0xEEC8, 0xEEE1, 0xEEFA, 0xEF13, 0xEF2C, 0xEF45,
|
||||
0xEF5E, 0xEF76, 0xEF8F, 0xEFA8, 0xEFC0, 0xEFD9, 0xEFF1, 0xF009, 0xF022, 0xF03A, 0xF052, 0xF06A, 0xF082, 0xF09A, 0xF0B2, 0xF0CA,
|
||||
0xF0E1, 0xF0F9, 0xF111, 0xF128, 0xF140, 0xF157, 0xF16E, 0xF186, 0xF19D, 0xF1B4, 0xF1CB, 0xF1E2, 0xF1F9, 0xF210, 0xF226, 0xF23D,
|
||||
0xF254, 0xF26A, 0xF281, 0xF297, 0xF2AE, 0xF2C4, 0xF2DA, 0xF2F0, 0xF306, 0xF31C, 0xF332, 0xF348, 0xF35E, 0xF374, 0xF389, 0xF39F,
|
||||
0xF3B4, 0xF3CA, 0xF3DF, 0xF3F5, 0xF40A, 0xF41F, 0xF434, 0xF449, 0xF45E, 0xF473, 0xF488, 0xF49D, 0xF4B1, 0xF4C6, 0xF4DA, 0xF4EF,
|
||||
0xF503, 0xF518, 0xF52C, 0xF540, 0xF554, 0xF568, 0xF57C, 0xF590, 0xF5A4, 0xF5B8, 0xF5CC, 0xF5DF, 0xF5F3, 0xF606, 0xF61A, 0xF62D,
|
||||
0xF640, 0xF653, 0xF667, 0xF67A, 0xF68D, 0xF6A0, 0xF6B2, 0xF6C5, 0xF6D8, 0xF6EA, 0xF6FD, 0xF70F, 0xF722, 0xF734, 0xF747, 0xF759,
|
||||
0xF76B, 0xF77D, 0xF78F, 0xF7A1, 0xF7B3, 0xF7C4, 0xF7D6, 0xF7E8, 0xF7F9, 0xF80B, 0xF81C, 0xF82D, 0xF83F, 0xF850, 0xF861, 0xF872,
|
||||
0xF883, 0xF894, 0xF8A5, 0xF8B6, 0xF8C6, 0xF8D7, 0xF8E7, 0xF8F8, 0xF908, 0xF919, 0xF929, 0xF939, 0xF949, 0xF959, 0xF969, 0xF979,
|
||||
0xF989, 0xF998, 0xF9A8, 0xF9B8, 0xF9C7, 0xF9D7, 0xF9E6, 0xF9F5, 0xFA04, 0xFA14, 0xFA23, 0xFA32, 0xFA41, 0xFA4F, 0xFA5E, 0xFA6D,
|
||||
0xFA7C, 0xFA8A, 0xFA99, 0xFAA7, 0xFAB5, 0xFAC4, 0xFAD2, 0xFAE0, 0xFAEE, 0xFAFC, 0xFB0A, 0xFB18, 0xFB25, 0xFB33, 0xFB41, 0xFB4E,
|
||||
0xFB5C, 0xFB69, 0xFB76, 0xFB83, 0xFB91, 0xFB9E, 0xFBAB, 0xFBB8, 0xFBC4, 0xFBD1, 0xFBDE, 0xFBEB, 0xFBF7, 0xFC04, 0xFC10, 0xFC1C,
|
||||
0xFC29, 0xFC35, 0xFC41, 0xFC4D, 0xFC59, 0xFC65, 0xFC70, 0xFC7C, 0xFC88, 0xFC93, 0xFC9F, 0xFCAA, 0xFCB6, 0xFCC1, 0xFCCC, 0xFCD7,
|
||||
0xFCE2, 0xFCED, 0xFCF8, 0xFD03, 0xFD0E, 0xFD18, 0xFD23, 0xFD2E, 0xFD38, 0xFD42, 0xFD4D, 0xFD57, 0xFD61, 0xFD6B, 0xFD75, 0xFD7F,
|
||||
0xFD89, 0xFD93, 0xFD9C, 0xFDA6, 0xFDB0, 0xFDB9, 0xFDC2, 0xFDCC, 0xFDD5, 0xFDDE, 0xFDE7, 0xFDF0, 0xFDF9, 0xFE02, 0xFE0B, 0xFE13,
|
||||
0xFE1C, 0xFE25, 0xFE2D, 0xFE36, 0xFE3E, 0xFE46, 0xFE4E, 0xFE56, 0xFE5E, 0xFE66, 0xFE6E, 0xFE76, 0xFE7E, 0xFE85, 0xFE8D, 0xFE94,
|
||||
0xFE9C, 0xFEA3, 0xFEAA, 0xFEB2, 0xFEB9, 0xFEC0, 0xFEC7, 0xFECE, 0xFED4, 0xFEDB, 0xFEE2, 0xFEE8, 0xFEEF, 0xFEF5, 0xFEFC, 0xFF02,
|
||||
0xFF08, 0xFF0E, 0xFF14, 0xFF1A, 0xFF20, 0xFF26, 0xFF2C, 0xFF31, 0xFF37, 0xFF3C, 0xFF42, 0xFF47, 0xFF4C, 0xFF52, 0xFF57, 0xFF5C,
|
||||
0xFF61, 0xFF66, 0xFF6A, 0xFF6F, 0xFF74, 0xFF78, 0xFF7D, 0xFF81, 0xFF86, 0xFF8A, 0xFF8E, 0xFF92, 0xFF96, 0xFF9A, 0xFF9E, 0xFFA2,
|
||||
0xFFA6, 0xFFA9, 0xFFAD, 0xFFB0, 0xFFB4, 0xFFB7, 0xFFBB, 0xFFBE, 0xFFC1, 0xFFC4, 0xFFC7, 0xFFCA, 0xFFCD, 0xFFCF, 0xFFD2, 0xFFD5,
|
||||
0xFFD7, 0xFFD9, 0xFFDC, 0xFFDE, 0xFFE0, 0xFFE2, 0xFFE4, 0xFFE6, 0xFFE8, 0xFFEA, 0xFFEC, 0xFFEE, 0xFFEF, 0xFFF1, 0xFFF2, 0xFFF3,
|
||||
0xFFF5, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFB, 0xFFFC, 0xFFFD, 0xFFFD, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE,
|
||||
0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFD, 0xFFFD, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFF9, 0xFFF8, 0xFFF7, 0xFFF6,
|
||||
0xFFF5, 0xFFF3, 0xFFF2, 0xFFF1, 0xFFEF, 0xFFEE, 0xFFEC, 0xFFEA, 0xFFE8, 0xFFE6, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, 0xFFDC, 0xFFD9,
|
||||
0xFFD7, 0xFFD5, 0xFFD2, 0xFFCF, 0xFFCD, 0xFFCA, 0xFFC7, 0xFFC4, 0xFFC1, 0xFFBE, 0xFFBB, 0xFFB7, 0xFFB4, 0xFFB0, 0xFFAD, 0xFFA9,
|
||||
0xFFA6, 0xFFA2, 0xFF9E, 0xFF9A, 0xFF96, 0xFF92, 0xFF8E, 0xFF8A, 0xFF86, 0xFF81, 0xFF7D, 0xFF78, 0xFF74, 0xFF6F, 0xFF6A, 0xFF66,
|
||||
0xFF61, 0xFF5C, 0xFF57, 0xFF52, 0xFF4C, 0xFF47, 0xFF42, 0xFF3C, 0xFF37, 0xFF31, 0xFF2C, 0xFF26, 0xFF20, 0xFF1A, 0xFF14, 0xFF0E,
|
||||
0xFF08, 0xFF02, 0xFEFC, 0xFEF5, 0xFEEF, 0xFEE8, 0xFEE2, 0xFEDB, 0xFED4, 0xFECE, 0xFEC7, 0xFEC0, 0xFEB9, 0xFEB2, 0xFEAA, 0xFEA3,
|
||||
0xFE9C, 0xFE94, 0xFE8D, 0xFE85, 0xFE7E, 0xFE76, 0xFE6E, 0xFE66, 0xFE5E, 0xFE56, 0xFE4E, 0xFE46, 0xFE3E, 0xFE36, 0xFE2D, 0xFE25,
|
||||
0xFE1C, 0xFE13, 0xFE0B, 0xFE02, 0xFDF9, 0xFDF0, 0xFDE7, 0xFDDE, 0xFDD5, 0xFDCC, 0xFDC2, 0xFDB9, 0xFDB0, 0xFDA6, 0xFD9C, 0xFD93,
|
||||
0xFD89, 0xFD7F, 0xFD75, 0xFD6B, 0xFD61, 0xFD57, 0xFD4D, 0xFD42, 0xFD38, 0xFD2E, 0xFD23, 0xFD18, 0xFD0E, 0xFD03, 0xFCF8, 0xFCED,
|
||||
0xFCE2, 0xFCD7, 0xFCCC, 0xFCC1, 0xFCB6, 0xFCAA, 0xFC9F, 0xFC93, 0xFC88, 0xFC7C, 0xFC70, 0xFC65, 0xFC59, 0xFC4D, 0xFC41, 0xFC35,
|
||||
0xFC29, 0xFC1C, 0xFC10, 0xFC04, 0xFBF7, 0xFBEB, 0xFBDE, 0xFBD1, 0xFBC4, 0xFBB8, 0xFBAB, 0xFB9E, 0xFB91, 0xFB83, 0xFB76, 0xFB69,
|
||||
0xFB5C, 0xFB4E, 0xFB41, 0xFB33, 0xFB25, 0xFB18, 0xFB0A, 0xFAFC, 0xFAEE, 0xFAE0, 0xFAD2, 0xFAC4, 0xFAB5, 0xFAA7, 0xFA99, 0xFA8A,
|
||||
0xFA7C, 0xFA6D, 0xFA5E, 0xFA4F, 0xFA41, 0xFA32, 0xFA23, 0xFA14, 0xFA04, 0xF9F5, 0xF9E6, 0xF9D7, 0xF9C7, 0xF9B8, 0xF9A8, 0xF998,
|
||||
0xF989, 0xF979, 0xF969, 0xF959, 0xF949, 0xF939, 0xF929, 0xF919, 0xF908, 0xF8F8, 0xF8E7, 0xF8D7, 0xF8C6, 0xF8B6, 0xF8A5, 0xF894,
|
||||
0xF883, 0xF872, 0xF861, 0xF850, 0xF83F, 0xF82D, 0xF81C, 0xF80B, 0xF7F9, 0xF7E8, 0xF7D6, 0xF7C4, 0xF7B3, 0xF7A1, 0xF78F, 0xF77D,
|
||||
0xF76B, 0xF759, 0xF747, 0xF734, 0xF722, 0xF70F, 0xF6FD, 0xF6EA, 0xF6D8, 0xF6C5, 0xF6B2, 0xF6A0, 0xF68D, 0xF67A, 0xF667, 0xF653,
|
||||
0xF640, 0xF62D, 0xF61A, 0xF606, 0xF5F3, 0xF5DF, 0xF5CC, 0xF5B8, 0xF5A4, 0xF590, 0xF57C, 0xF568, 0xF554, 0xF540, 0xF52C, 0xF518,
|
||||
0xF503, 0xF4EF, 0xF4DA, 0xF4C6, 0xF4B1, 0xF49D, 0xF488, 0xF473, 0xF45E, 0xF449, 0xF434, 0xF41F, 0xF40A, 0xF3F5, 0xF3DF, 0xF3CA,
|
||||
0xF3B4, 0xF39F, 0xF389, 0xF374, 0xF35E, 0xF348, 0xF332, 0xF31C, 0xF306, 0xF2F0, 0xF2DA, 0xF2C4, 0xF2AE, 0xF297, 0xF281, 0xF26A,
|
||||
0xF254, 0xF23D, 0xF226, 0xF210, 0xF1F9, 0xF1E2, 0xF1CB, 0xF1B4, 0xF19D, 0xF186, 0xF16E, 0xF157, 0xF140, 0xF128, 0xF111, 0xF0F9,
|
||||
0xF0E1, 0xF0CA, 0xF0B2, 0xF09A, 0xF082, 0xF06A, 0xF052, 0xF03A, 0xF022, 0xF009, 0xEFF1, 0xEFD9, 0xEFC0, 0xEFA8, 0xEF8F, 0xEF76,
|
||||
0xEF5E, 0xEF45, 0xEF2C, 0xEF13, 0xEEFA, 0xEEE1, 0xEEC8, 0xEEAF, 0xEE95, 0xEE7C, 0xEE62, 0xEE49, 0xEE2F, 0xEE16, 0xEDFC, 0xEDE2,
|
||||
0xEDC9, 0xEDAF, 0xED95, 0xED7B, 0xED61, 0xED47, 0xED2C, 0xED12, 0xECF8, 0xECDD, 0xECC3, 0xECA8, 0xEC8E, 0xEC73, 0xEC58, 0xEC3E,
|
||||
0xEC23, 0xEC08, 0xEBED, 0xEBD2, 0xEBB7, 0xEB9B, 0xEB80, 0xEB65, 0xEB4A, 0xEB2E, 0xEB13, 0xEAF7, 0xEADB, 0xEAC0, 0xEAA4, 0xEA88,
|
||||
0xEA6C, 0xEA50, 0xEA34, 0xEA18, 0xE9FC, 0xE9E0, 0xE9C3, 0xE9A7, 0xE98B, 0xE96E, 0xE952, 0xE935, 0xE918, 0xE8FC, 0xE8DF, 0xE8C2,
|
||||
0xE8A5, 0xE888, 0xE86B, 0xE84E, 0xE831, 0xE814, 0xE7F6, 0xE7D9, 0xE7BC, 0xE79E, 0xE781, 0xE763, 0xE745, 0xE728, 0xE70A, 0xE6EC,
|
||||
0xE6CE, 0xE6B0, 0xE692, 0xE674, 0xE656, 0xE638, 0xE619, 0xE5FB, 0xE5DD, 0xE5BE, 0xE5A0, 0xE581, 0xE562, 0xE544, 0xE525, 0xE506,
|
||||
0xE4E7, 0xE4C8, 0xE4A9, 0xE48A, 0xE46B, 0xE44C, 0xE42D, 0xE40D, 0xE3EE, 0xE3CE, 0xE3AF, 0xE38F, 0xE370, 0xE350, 0xE330, 0xE310,
|
||||
0xE2F1, 0xE2D1, 0xE2B1, 0xE291, 0xE271, 0xE250, 0xE230, 0xE210, 0xE1F0, 0xE1CF, 0xE1AF, 0xE18E, 0xE16E, 0xE14D, 0xE12C, 0xE10C,
|
||||
0xE0EB, 0xE0CA, 0xE0A9, 0xE088, 0xE067, 0xE046, 0xE025, 0xE004, 0xDFE2, 0xDFC1, 0xDFA0, 0xDF7E, 0xDF5D, 0xDF3B, 0xDF1A, 0xDEF8,
|
||||
0xDED6, 0xDEB4, 0xDE92, 0xDE71, 0xDE4F, 0xDE2D, 0xDE0B, 0xDDE8, 0xDDC6, 0xDDA4, 0xDD82, 0xDD5F, 0xDD3D, 0xDD1A, 0xDCF8, 0xDCD5,
|
||||
0xDCB3, 0xDC90, 0xDC6D, 0xDC4B, 0xDC28, 0xDC05, 0xDBE2, 0xDBBF, 0xDB9C, 0xDB79, 0xDB55, 0xDB32, 0xDB0F, 0xDAEC, 0xDAC8, 0xDAA5,
|
||||
0xDA81, 0xDA5E, 0xDA3A, 0xDA16, 0xD9F3, 0xD9CF, 0xD9AB, 0xD987, 0xD963, 0xD93F, 0xD91B, 0xD8F7, 0xD8D3, 0xD8AE, 0xD88A, 0xD866,
|
||||
0xD842, 0xD81D, 0xD7F9, 0xD7D4, 0xD7AF, 0xD78B, 0xD766, 0xD741, 0xD71D, 0xD6F8, 0xD6D3, 0xD6AE, 0xD689, 0xD664, 0xD63F, 0xD61A,
|
||||
0xD5F4, 0xD5CF, 0xD5AA, 0xD584, 0xD55F, 0xD539, 0xD514, 0xD4EE, 0xD4C9, 0xD4A3, 0xD47D, 0xD458, 0xD432, 0xD40C, 0xD3E6, 0xD3C0,
|
||||
0xD39A, 0xD374, 0xD34E, 0xD327, 0xD301, 0xD2DB, 0xD2B5, 0xD28E, 0xD268, 0xD241, 0xD21B, 0xD1F4, 0xD1CE, 0xD1A7, 0xD180, 0xD159,
|
||||
0xD132, 0xD10C, 0xD0E5, 0xD0BE, 0xD097, 0xD070, 0xD048, 0xD021, 0xCFFA, 0xCFD3, 0xCFAB, 0xCF84, 0xCF5D, 0xCF35, 0xCF0E, 0xCEE6,
|
||||
0xCEBF, 0xCE97, 0xCE6F, 0xCE48, 0xCE20, 0xCDF8, 0xCDD0, 0xCDA8, 0xCD80, 0xCD58, 0xCD30, 0xCD08, 0xCCE0, 0xCCB7, 0xCC8F, 0xCC67,
|
||||
0xCC3F, 0xCC16, 0xCBEE, 0xCBC5, 0xCB9D, 0xCB74, 0xCB4C, 0xCB23, 0xCAFA, 0xCAD1, 0xCAA9, 0xCA80, 0xCA57, 0xCA2E, 0xCA05, 0xC9DC,
|
||||
0xC9B3, 0xC98A, 0xC961, 0xC937, 0xC90E, 0xC8E5, 0xC8BB, 0xC892, 0xC869, 0xC83F, 0xC816, 0xC7EC, 0xC7C2, 0xC799, 0xC76F, 0xC745,
|
||||
0xC71C, 0xC6F2, 0xC6C8, 0xC69E, 0xC674, 0xC64A, 0xC620, 0xC5F6, 0xC5CC, 0xC5A2, 0xC578, 0xC54D, 0xC523, 0xC4F9, 0xC4CE, 0xC4A4,
|
||||
0xC47A, 0xC44F, 0xC425, 0xC3FA, 0xC3CF, 0xC3A5, 0xC37A, 0xC34F, 0xC324, 0xC2FA, 0xC2CF, 0xC2A4, 0xC279, 0xC24E, 0xC223, 0xC1F8,
|
||||
0xC1CD, 0xC1A2, 0xC177, 0xC14B, 0xC120, 0xC0F5, 0xC0C9, 0xC09E, 0xC073, 0xC047, 0xC01C, 0xBFF0, 0xBFC5, 0xBF99, 0xBF6D, 0xBF42,
|
||||
0xBF16, 0xBEEA, 0xBEBE, 0xBE93, 0xBE67, 0xBE3B, 0xBE0F, 0xBDE3, 0xBDB7, 0xBD8B, 0xBD5F, 0xBD33, 0xBD07, 0xBCDA, 0xBCAE, 0xBC82,
|
||||
0xBC55, 0xBC29, 0xBBFD, 0xBBD0, 0xBBA4, 0xBB77, 0xBB4B, 0xBB1E, 0xBAF2, 0xBAC5, 0xBA98, 0xBA6C, 0xBA3F, 0xBA12, 0xB9E5, 0xB9B9,
|
||||
0xB98C, 0xB95F, 0xB932, 0xB905, 0xB8D8, 0xB8AB, 0xB87E, 0xB851, 0xB823, 0xB7F6, 0xB7C9, 0xB79C, 0xB76E, 0xB741, 0xB714, 0xB6E6,
|
||||
0xB6B9, 0xB68B, 0xB65E, 0xB630, 0xB603, 0xB5D5, 0xB5A8, 0xB57A, 0xB54C, 0xB51F, 0xB4F1, 0xB4C3, 0xB495, 0xB467, 0xB43A, 0xB40C,
|
||||
0xB3DE, 0xB3B0, 0xB382, 0xB354, 0xB326, 0xB2F8, 0xB2C9, 0xB29B, 0xB26D, 0xB23F, 0xB211, 0xB1E2, 0xB1B4, 0xB186, 0xB157, 0xB129,
|
||||
0xB0FB, 0xB0CC, 0xB09E, 0xB06F, 0xB041, 0xB012, 0xAFE3, 0xAFB5, 0xAF86, 0xAF57, 0xAF29, 0xAEFA, 0xAECB, 0xAE9C, 0xAE6E, 0xAE3F,
|
||||
0xAE10, 0xADE1, 0xADB2, 0xAD83, 0xAD54, 0xAD25, 0xACF6, 0xACC7, 0xAC98, 0xAC69, 0xAC3A, 0xAC0A, 0xABDB, 0xABAC, 0xAB7D, 0xAB4D,
|
||||
0xAB1E, 0xAAEF, 0xAABF, 0xAA90, 0xAA61, 0xAA31, 0xAA02, 0xA9D2, 0xA9A3, 0xA973, 0xA943, 0xA914, 0xA8E4, 0xA8B5, 0xA885, 0xA855,
|
||||
0xA826, 0xA7F6, 0xA7C6, 0xA796, 0xA766, 0xA737, 0xA707, 0xA6D7, 0xA6A7, 0xA677, 0xA647, 0xA617, 0xA5E7, 0xA5B7, 0xA587, 0xA557,
|
||||
0xA527, 0xA4F7, 0xA4C7, 0xA497, 0xA466, 0xA436, 0xA406, 0xA3D6, 0xA3A5, 0xA375, 0xA345, 0xA314, 0xA2E4, 0xA2B4, 0xA283, 0xA253,
|
||||
0xA223, 0xA1F2, 0xA1C2, 0xA191, 0xA161, 0xA130, 0xA0FF, 0xA0CF, 0xA09E, 0xA06E, 0xA03D, 0xA00C, 0x9FDC, 0x9FAB, 0x9F7A, 0x9F4A,
|
||||
0x9F19, 0x9EE8, 0x9EB7, 0x9E86, 0x9E56, 0x9E25, 0x9DF4, 0x9DC3, 0x9D92, 0x9D61, 0x9D30, 0x9CFF, 0x9CCE, 0x9C9D, 0x9C6C, 0x9C3B,
|
||||
0x9C0A, 0x9BD9, 0x9BA8, 0x9B77, 0x9B46, 0x9B15, 0x9AE4, 0x9AB3, 0x9A82, 0x9A50, 0x9A1F, 0x99EE, 0x99BD, 0x998B, 0x995A, 0x9929,
|
||||
0x98F8, 0x98C6, 0x9895, 0x9864, 0x9832, 0x9801, 0x97D0, 0x979E, 0x976D, 0x973B, 0x970A, 0x96D8, 0x96A7, 0x9676, 0x9644, 0x9613,
|
||||
0x95E1, 0x95AF, 0x957E, 0x954C, 0x951B, 0x94E9, 0x94B8, 0x9486, 0x9454, 0x9423, 0x93F1, 0x93BF, 0x938E, 0x935C, 0x932A, 0x92F9,
|
||||
0x92C7, 0x9295, 0x9264, 0x9232, 0x9200, 0x91CE, 0x919C, 0x916B, 0x9139, 0x9107, 0x90D5, 0x90A3, 0x9072, 0x9040, 0x900E, 0x8FDC,
|
||||
0x8FAA, 0x8F78, 0x8F46, 0x8F14, 0x8EE2, 0x8EB1, 0x8E7F, 0x8E4D, 0x8E1B, 0x8DE9, 0x8DB7, 0x8D85, 0x8D53, 0x8D21, 0x8CEF, 0x8CBD,
|
||||
0x8C8B, 0x8C59, 0x8C27, 0x8BF5, 0x8BC3, 0x8B91, 0x8B5F, 0x8B2C, 0x8AFA, 0x8AC8, 0x8A96, 0x8A64, 0x8A32, 0x8A00, 0x89CE, 0x899C,
|
||||
0x896A, 0x8937, 0x8905, 0x88D3, 0x88A1, 0x886F, 0x883D, 0x880A, 0x87D8, 0x87A6, 0x8774, 0x8742, 0x8710, 0x86DD, 0x86AB, 0x8679,
|
||||
0x8647, 0x8615, 0x85E2, 0x85B0, 0x857E, 0x854C, 0x851A, 0x84E7, 0x84B5, 0x8483, 0x8451, 0x841E, 0x83EC, 0x83BA, 0x8388, 0x8355,
|
||||
0x8323, 0x82F1, 0x82BF, 0x828C, 0x825A, 0x8228, 0x81F6, 0x81C3, 0x8191, 0x815F, 0x812D, 0x80FA, 0x80C8, 0x8096, 0x8064, 0x8031,
|
||||
0x7FFF, 0x7FCD, 0x7F9A, 0x7F68, 0x7F36, 0x7F04, 0x7ED1, 0x7E9F, 0x7E6D, 0x7E3B, 0x7E08, 0x7DD6, 0x7DA4, 0x7D72, 0x7D3F, 0x7D0D,
|
||||
0x7CDB, 0x7CA9, 0x7C76, 0x7C44, 0x7C12, 0x7BE0, 0x7BAD, 0x7B7B, 0x7B49, 0x7B17, 0x7AE4, 0x7AB2, 0x7A80, 0x7A4E, 0x7A1C, 0x79E9,
|
||||
0x79B7, 0x7985, 0x7953, 0x7921, 0x78EE, 0x78BC, 0x788A, 0x7858, 0x7826, 0x77F4, 0x77C1, 0x778F, 0x775D, 0x772B, 0x76F9, 0x76C7,
|
||||
0x7694, 0x7662, 0x7630, 0x75FE, 0x75CC, 0x759A, 0x7568, 0x7536, 0x7504, 0x74D2, 0x749F, 0x746D, 0x743B, 0x7409, 0x73D7, 0x73A5,
|
||||
0x7373, 0x7341, 0x730F, 0x72DD, 0x72AB, 0x7279, 0x7247, 0x7215, 0x71E3, 0x71B1, 0x717F, 0x714D, 0x711C, 0x70EA, 0x70B8, 0x7086,
|
||||
0x7054, 0x7022, 0x6FF0, 0x6FBE, 0x6F8C, 0x6F5B, 0x6F29, 0x6EF7, 0x6EC5, 0x6E93, 0x6E62, 0x6E30, 0x6DFE, 0x6DCC, 0x6D9A, 0x6D69,
|
||||
0x6D37, 0x6D05, 0x6CD4, 0x6CA2, 0x6C70, 0x6C3F, 0x6C0D, 0x6BDB, 0x6BAA, 0x6B78, 0x6B46, 0x6B15, 0x6AE3, 0x6AB2, 0x6A80, 0x6A4F,
|
||||
0x6A1D, 0x69EB, 0x69BA, 0x6988, 0x6957, 0x6926, 0x68F4, 0x68C3, 0x6891, 0x6860, 0x682E, 0x67FD, 0x67CC, 0x679A, 0x6769, 0x6738,
|
||||
0x6706, 0x66D5, 0x66A4, 0x6673, 0x6641, 0x6610, 0x65DF, 0x65AE, 0x657C, 0x654B, 0x651A, 0x64E9, 0x64B8, 0x6487, 0x6456, 0x6425,
|
||||
0x63F4, 0x63C3, 0x6392, 0x6361, 0x6330, 0x62FF, 0x62CE, 0x629D, 0x626C, 0x623B, 0x620A, 0x61D9, 0x61A8, 0x6178, 0x6147, 0x6116,
|
||||
0x60E5, 0x60B4, 0x6084, 0x6053, 0x6022, 0x5FF2, 0x5FC1, 0x5F90, 0x5F60, 0x5F2F, 0x5EFF, 0x5ECE, 0x5E9D, 0x5E6D, 0x5E3C, 0x5E0C,
|
||||
0x5DDB, 0x5DAB, 0x5D7B, 0x5D4A, 0x5D1A, 0x5CEA, 0x5CB9, 0x5C89, 0x5C59, 0x5C28, 0x5BF8, 0x5BC8, 0x5B98, 0x5B67, 0x5B37, 0x5B07,
|
||||
0x5AD7, 0x5AA7, 0x5A77, 0x5A47, 0x5A17, 0x59E7, 0x59B7, 0x5987, 0x5957, 0x5927, 0x58F7, 0x58C7, 0x5898, 0x5868, 0x5838, 0x5808,
|
||||
0x57D8, 0x57A9, 0x5779, 0x5749, 0x571A, 0x56EA, 0x56BB, 0x568B, 0x565B, 0x562C, 0x55FC, 0x55CD, 0x559D, 0x556E, 0x553F, 0x550F,
|
||||
0x54E0, 0x54B1, 0x5481, 0x5452, 0x5423, 0x53F4, 0x53C4, 0x5395, 0x5366, 0x5337, 0x5308, 0x52D9, 0x52AA, 0x527B, 0x524C, 0x521D,
|
||||
0x51EE, 0x51BF, 0x5190, 0x5162, 0x5133, 0x5104, 0x50D5, 0x50A7, 0x5078, 0x5049, 0x501B, 0x4FEC, 0x4FBD, 0x4F8F, 0x4F60, 0x4F32,
|
||||
0x4F03, 0x4ED5, 0x4EA7, 0x4E78, 0x4E4A, 0x4E1C, 0x4DED, 0x4DBF, 0x4D91, 0x4D63, 0x4D35, 0x4D06, 0x4CD8, 0x4CAA, 0x4C7C, 0x4C4E,
|
||||
0x4C20, 0x4BF2, 0x4BC4, 0x4B97, 0x4B69, 0x4B3B, 0x4B0D, 0x4ADF, 0x4AB2, 0x4A84, 0x4A56, 0x4A29, 0x49FB, 0x49CE, 0x49A0, 0x4973,
|
||||
0x4945, 0x4918, 0x48EA, 0x48BD, 0x4890, 0x4862, 0x4835, 0x4808, 0x47DB, 0x47AD, 0x4780, 0x4753, 0x4726, 0x46F9, 0x46CC, 0x469F,
|
||||
0x4672, 0x4645, 0x4619, 0x45EC, 0x45BF, 0x4592, 0x4566, 0x4539, 0x450C, 0x44E0, 0x44B3, 0x4487, 0x445A, 0x442E, 0x4401, 0x43D5,
|
||||
0x43A9, 0x437C, 0x4350, 0x4324, 0x42F7, 0x42CB, 0x429F, 0x4273, 0x4247, 0x421B, 0x41EF, 0x41C3, 0x4197, 0x416B, 0x4140, 0x4114,
|
||||
0x40E8, 0x40BC, 0x4091, 0x4065, 0x4039, 0x400E, 0x3FE2, 0x3FB7, 0x3F8B, 0x3F60, 0x3F35, 0x3F09, 0x3EDE, 0x3EB3, 0x3E87, 0x3E5C,
|
||||
0x3E31, 0x3E06, 0x3DDB, 0x3DB0, 0x3D85, 0x3D5A, 0x3D2F, 0x3D04, 0x3CDA, 0x3CAF, 0x3C84, 0x3C59, 0x3C2F, 0x3C04, 0x3BD9, 0x3BAF,
|
||||
0x3B84, 0x3B5A, 0x3B30, 0x3B05, 0x3ADB, 0x3AB1, 0x3A86, 0x3A5C, 0x3A32, 0x3A08, 0x39DE, 0x39B4, 0x398A, 0x3960, 0x3936, 0x390C,
|
||||
0x38E2, 0x38B9, 0x388F, 0x3865, 0x383C, 0x3812, 0x37E8, 0x37BF, 0x3795, 0x376C, 0x3743, 0x3719, 0x36F0, 0x36C7, 0x369D, 0x3674,
|
||||
0x364B, 0x3622, 0x35F9, 0x35D0, 0x35A7, 0x357E, 0x3555, 0x352D, 0x3504, 0x34DB, 0x34B2, 0x348A, 0x3461, 0x3439, 0x3410, 0x33E8,
|
||||
0x33BF, 0x3397, 0x336F, 0x3347, 0x331E, 0x32F6, 0x32CE, 0x32A6, 0x327E, 0x3256, 0x322E, 0x3206, 0x31DE, 0x31B6, 0x318F, 0x3167,
|
||||
0x313F, 0x3118, 0x30F0, 0x30C9, 0x30A1, 0x307A, 0x3052, 0x302B, 0x3004, 0x2FDD, 0x2FB6, 0x2F8E, 0x2F67, 0x2F40, 0x2F19, 0x2EF2,
|
||||
0x2ECC, 0x2EA5, 0x2E7E, 0x2E57, 0x2E30, 0x2E0A, 0x2DE3, 0x2DBD, 0x2D96, 0x2D70, 0x2D49, 0x2D23, 0x2CFD, 0x2CD7, 0x2CB0, 0x2C8A,
|
||||
0x2C64, 0x2C3E, 0x2C18, 0x2BF2, 0x2BCC, 0x2BA6, 0x2B81, 0x2B5B, 0x2B35, 0x2B10, 0x2AEA, 0x2AC5, 0x2A9F, 0x2A7A, 0x2A54, 0x2A2F,
|
||||
0x2A0A, 0x29E4, 0x29BF, 0x299A, 0x2975, 0x2950, 0x292B, 0x2906, 0x28E1, 0x28BD, 0x2898, 0x2873, 0x284F, 0x282A, 0x2805, 0x27E1,
|
||||
0x27BC, 0x2798, 0x2774, 0x2750, 0x272B, 0x2707, 0x26E3, 0x26BF, 0x269B, 0x2677, 0x2653, 0x262F, 0x260B, 0x25E8, 0x25C4, 0x25A0,
|
||||
0x257D, 0x2559, 0x2536, 0x2512, 0x24EF, 0x24CC, 0x24A9, 0x2485, 0x2462, 0x243F, 0x241C, 0x23F9, 0x23D6, 0x23B3, 0x2391, 0x236E,
|
||||
0x234B, 0x2329, 0x2306, 0x22E4, 0x22C1, 0x229F, 0x227C, 0x225A, 0x2238, 0x2216, 0x21F3, 0x21D1, 0x21AF, 0x218D, 0x216C, 0x214A,
|
||||
0x2128, 0x2106, 0x20E4, 0x20C3, 0x20A1, 0x2080, 0x205E, 0x203D, 0x201C, 0x1FFA, 0x1FD9, 0x1FB8, 0x1F97, 0x1F76, 0x1F55, 0x1F34,
|
||||
0x1F13, 0x1EF2, 0x1ED2, 0x1EB1, 0x1E90, 0x1E70, 0x1E4F, 0x1E2F, 0x1E0E, 0x1DEE, 0x1DCE, 0x1DAE, 0x1D8D, 0x1D6D, 0x1D4D, 0x1D2D,
|
||||
0x1D0D, 0x1CEE, 0x1CCE, 0x1CAE, 0x1C8E, 0x1C6F, 0x1C4F, 0x1C30, 0x1C10, 0x1BF1, 0x1BD1, 0x1BB2, 0x1B93, 0x1B74, 0x1B55, 0x1B36,
|
||||
0x1B17, 0x1AF8, 0x1AD9, 0x1ABA, 0x1A9C, 0x1A7D, 0x1A5E, 0x1A40, 0x1A21, 0x1A03, 0x19E5, 0x19C6, 0x19A8, 0x198A, 0x196C, 0x194E,
|
||||
0x1930, 0x1912, 0x18F4, 0x18D6, 0x18B9, 0x189B, 0x187D, 0x1860, 0x1842, 0x1825, 0x1808, 0x17EA, 0x17CD, 0x17B0, 0x1793, 0x1776,
|
||||
0x1759, 0x173C, 0x171F, 0x1702, 0x16E6, 0x16C9, 0x16AC, 0x1690, 0x1673, 0x1657, 0x163B, 0x161E, 0x1602, 0x15E6, 0x15CA, 0x15AE,
|
||||
0x1592, 0x1576, 0x155A, 0x153E, 0x1523, 0x1507, 0x14EB, 0x14D0, 0x14B4, 0x1499, 0x147E, 0x1463, 0x1447, 0x142C, 0x1411, 0x13F6,
|
||||
0x13DB, 0x13C0, 0x13A6, 0x138B, 0x1370, 0x1356, 0x133B, 0x1321, 0x1306, 0x12EC, 0x12D2, 0x12B7, 0x129D, 0x1283, 0x1269, 0x124F,
|
||||
0x1235, 0x121C, 0x1202, 0x11E8, 0x11CF, 0x11B5, 0x119C, 0x1182, 0x1169, 0x114F, 0x1136, 0x111D, 0x1104, 0x10EB, 0x10D2, 0x10B9,
|
||||
0x10A0, 0x1088, 0x106F, 0x1056, 0x103E, 0x1025, 0x100D, 0x0FF5, 0x0FDC, 0x0FC4, 0x0FAC, 0x0F94, 0x0F7C, 0x0F64, 0x0F4C, 0x0F34,
|
||||
0x0F1D, 0x0F05, 0x0EED, 0x0ED6, 0x0EBE, 0x0EA7, 0x0E90, 0x0E78, 0x0E61, 0x0E4A, 0x0E33, 0x0E1C, 0x0E05, 0x0DEE, 0x0DD8, 0x0DC1,
|
||||
0x0DAA, 0x0D94, 0x0D7D, 0x0D67, 0x0D50, 0x0D3A, 0x0D24, 0x0D0E, 0x0CF8, 0x0CE2, 0x0CCC, 0x0CB6, 0x0CA0, 0x0C8A, 0x0C75, 0x0C5F,
|
||||
0x0C4A, 0x0C34, 0x0C1F, 0x0C09, 0x0BF4, 0x0BDF, 0x0BCA, 0x0BB5, 0x0BA0, 0x0B8B, 0x0B76, 0x0B61, 0x0B4D, 0x0B38, 0x0B24, 0x0B0F,
|
||||
0x0AFB, 0x0AE6, 0x0AD2, 0x0ABE, 0x0AAA, 0x0A96, 0x0A82, 0x0A6E, 0x0A5A, 0x0A46, 0x0A32, 0x0A1F, 0x0A0B, 0x09F8, 0x09E4, 0x09D1,
|
||||
0x09BE, 0x09AB, 0x0997, 0x0984, 0x0971, 0x095E, 0x094C, 0x0939, 0x0926, 0x0914, 0x0901, 0x08EF, 0x08DC, 0x08CA, 0x08B7, 0x08A5,
|
||||
0x0893, 0x0881, 0x086F, 0x085D, 0x084B, 0x083A, 0x0828, 0x0816, 0x0805, 0x07F3, 0x07E2, 0x07D1, 0x07BF, 0x07AE, 0x079D, 0x078C,
|
||||
0x077B, 0x076A, 0x0759, 0x0748, 0x0738, 0x0727, 0x0717, 0x0706, 0x06F6, 0x06E5, 0x06D5, 0x06C5, 0x06B5, 0x06A5, 0x0695, 0x0685,
|
||||
0x0675, 0x0666, 0x0656, 0x0646, 0x0637, 0x0627, 0x0618, 0x0609, 0x05FA, 0x05EA, 0x05DB, 0x05CC, 0x05BD, 0x05AF, 0x05A0, 0x0591,
|
||||
0x0582, 0x0574, 0x0565, 0x0557, 0x0549, 0x053A, 0x052C, 0x051E, 0x0510, 0x0502, 0x04F4, 0x04E6, 0x04D9, 0x04CB, 0x04BD, 0x04B0,
|
||||
0x04A2, 0x0495, 0x0488, 0x047B, 0x046D, 0x0460, 0x0453, 0x0446, 0x043A, 0x042D, 0x0420, 0x0413, 0x0407, 0x03FA, 0x03EE, 0x03E2,
|
||||
0x03D5, 0x03C9, 0x03BD, 0x03B1, 0x03A5, 0x0399, 0x038E, 0x0382, 0x0376, 0x036B, 0x035F, 0x0354, 0x0348, 0x033D, 0x0332, 0x0327,
|
||||
0x031C, 0x0311, 0x0306, 0x02FB, 0x02F0, 0x02E6, 0x02DB, 0x02D0, 0x02C6, 0x02BC, 0x02B1, 0x02A7, 0x029D, 0x0293, 0x0289, 0x027F,
|
||||
0x0275, 0x026B, 0x0262, 0x0258, 0x024E, 0x0245, 0x023C, 0x0232, 0x0229, 0x0220, 0x0217, 0x020E, 0x0205, 0x01FC, 0x01F3, 0x01EB,
|
||||
0x01E2, 0x01D9, 0x01D1, 0x01C8, 0x01C0, 0x01B8, 0x01B0, 0x01A8, 0x01A0, 0x0198, 0x0190, 0x0188, 0x0180, 0x0179, 0x0171, 0x016A,
|
||||
0x0162, 0x015B, 0x0154, 0x014C, 0x0145, 0x013E, 0x0137, 0x0130, 0x012A, 0x0123, 0x011C, 0x0116, 0x010F, 0x0109, 0x0102, 0x00FC,
|
||||
0x00F6, 0x00F0, 0x00EA, 0x00E4, 0x00DE, 0x00D8, 0x00D2, 0x00CD, 0x00C7, 0x00C2, 0x00BC, 0x00B7, 0x00B2, 0x00AC, 0x00A7, 0x00A2,
|
||||
0x009D, 0x0098, 0x0094, 0x008F, 0x008A, 0x0086, 0x0081, 0x007D, 0x0078, 0x0074, 0x0070, 0x006C, 0x0068, 0x0064, 0x0060, 0x005C,
|
||||
0x0058, 0x0055, 0x0051, 0x004E, 0x004A, 0x0047, 0x0043, 0x0040, 0x003D, 0x003A, 0x0037, 0x0034, 0x0031, 0x002F, 0x002C, 0x0029,
|
||||
0x0027, 0x0025, 0x0022, 0x0020, 0x001E, 0x001C, 0x001A, 0x0018, 0x0016, 0x0014, 0x0012, 0x0010, 0x000F, 0x000D, 0x000C, 0x000B,
|
||||
0x0009, 0x0008, 0x0007, 0x0006, 0x0005, 0x0004, 0x0003, 0x0003, 0x0002, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0003, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
|
||||
0x0009, 0x000B, 0x000C, 0x000D, 0x000F, 0x0010, 0x0012, 0x0014, 0x0016, 0x0018, 0x001A, 0x001C, 0x001E, 0x0020, 0x0022, 0x0025,
|
||||
0x0027, 0x0029, 0x002C, 0x002F, 0x0031, 0x0034, 0x0037, 0x003A, 0x003D, 0x0040, 0x0043, 0x0047, 0x004A, 0x004E, 0x0051, 0x0055,
|
||||
0x0058, 0x005C, 0x0060, 0x0064, 0x0068, 0x006C, 0x0070, 0x0074, 0x0078, 0x007D, 0x0081, 0x0086, 0x008A, 0x008F, 0x0094, 0x0098,
|
||||
0x009D, 0x00A2, 0x00A7, 0x00AC, 0x00B2, 0x00B7, 0x00BC, 0x00C2, 0x00C7, 0x00CD, 0x00D2, 0x00D8, 0x00DE, 0x00E4, 0x00EA, 0x00F0,
|
||||
0x00F6, 0x00FC, 0x0102, 0x0109, 0x010F, 0x0116, 0x011C, 0x0123, 0x012A, 0x0130, 0x0137, 0x013E, 0x0145, 0x014C, 0x0154, 0x015B,
|
||||
0x0162, 0x016A, 0x0171, 0x0179, 0x0180, 0x0188, 0x0190, 0x0198, 0x01A0, 0x01A8, 0x01B0, 0x01B8, 0x01C0, 0x01C8, 0x01D1, 0x01D9,
|
||||
0x01E2, 0x01EB, 0x01F3, 0x01FC, 0x0205, 0x020E, 0x0217, 0x0220, 0x0229, 0x0232, 0x023C, 0x0245, 0x024E, 0x0258, 0x0262, 0x026B,
|
||||
0x0275, 0x027F, 0x0289, 0x0293, 0x029D, 0x02A7, 0x02B1, 0x02BC, 0x02C6, 0x02D0, 0x02DB, 0x02E6, 0x02F0, 0x02FB, 0x0306, 0x0311,
|
||||
0x031C, 0x0327, 0x0332, 0x033D, 0x0348, 0x0354, 0x035F, 0x036B, 0x0376, 0x0382, 0x038E, 0x0399, 0x03A5, 0x03B1, 0x03BD, 0x03C9,
|
||||
0x03D6, 0x03E2, 0x03EE, 0x03FA, 0x0407, 0x0414, 0x0420, 0x042D, 0x043A, 0x0446, 0x0453, 0x0460, 0x046D, 0x047B, 0x0488, 0x0495,
|
||||
0x04A2, 0x04B0, 0x04BD, 0x04CB, 0x04D9, 0x04E6, 0x04F4, 0x0502, 0x0510, 0x051E, 0x052C, 0x053A, 0x0549, 0x0557, 0x0565, 0x0574,
|
||||
0x0582, 0x0591, 0x05A0, 0x05AF, 0x05BD, 0x05CC, 0x05DB, 0x05EA, 0x05FA, 0x0609, 0x0618, 0x0627, 0x0637, 0x0646, 0x0656, 0x0666,
|
||||
0x0675, 0x0685, 0x0695, 0x06A5, 0x06B5, 0x06C5, 0x06D5, 0x06E5, 0x06F6, 0x0706, 0x0717, 0x0727, 0x0738, 0x0748, 0x0759, 0x076A,
|
||||
0x077B, 0x078C, 0x079D, 0x07AE, 0x07BF, 0x07D1, 0x07E2, 0x07F3, 0x0805, 0x0816, 0x0828, 0x083A, 0x084B, 0x085D, 0x086F, 0x0881,
|
||||
0x0893, 0x08A5, 0x08B7, 0x08CA, 0x08DC, 0x08EF, 0x0901, 0x0914, 0x0926, 0x0939, 0x094C, 0x095E, 0x0971, 0x0984, 0x0997, 0x09AB,
|
||||
0x09BE, 0x09D1, 0x09E4, 0x09F8, 0x0A0B, 0x0A1F, 0x0A32, 0x0A46, 0x0A5A, 0x0A6E, 0x0A82, 0x0A96, 0x0AAA, 0x0ABE, 0x0AD2, 0x0AE6,
|
||||
0x0AFB, 0x0B0F, 0x0B24, 0x0B38, 0x0B4D, 0x0B61, 0x0B76, 0x0B8B, 0x0BA0, 0x0BB5, 0x0BCA, 0x0BDF, 0x0BF4, 0x0C09, 0x0C1F, 0x0C34,
|
||||
0x0C4A, 0x0C5F, 0x0C75, 0x0C8A, 0x0CA0, 0x0CB6, 0x0CCC, 0x0CE2, 0x0CF8, 0x0D0E, 0x0D24, 0x0D3A, 0x0D50, 0x0D67, 0x0D7D, 0x0D94,
|
||||
0x0DAA, 0x0DC1, 0x0DD8, 0x0DEE, 0x0E05, 0x0E1C, 0x0E33, 0x0E4A, 0x0E61, 0x0E78, 0x0E90, 0x0EA7, 0x0EBE, 0x0ED6, 0x0EED, 0x0F05,
|
||||
0x0F1D, 0x0F34, 0x0F4C, 0x0F64, 0x0F7C, 0x0F94, 0x0FAC, 0x0FC4, 0x0FDC, 0x0FF5, 0x100D, 0x1025, 0x103E, 0x1056, 0x106F, 0x1088,
|
||||
0x10A0, 0x10B9, 0x10D2, 0x10EB, 0x1104, 0x111D, 0x1136, 0x114F, 0x1169, 0x1182, 0x119C, 0x11B5, 0x11CF, 0x11E8, 0x1202, 0x121C,
|
||||
0x1235, 0x124F, 0x1269, 0x1283, 0x129D, 0x12B7, 0x12D2, 0x12EC, 0x1306, 0x1321, 0x133B, 0x1356, 0x1370, 0x138B, 0x13A6, 0x13C0,
|
||||
0x13DB, 0x13F6, 0x1411, 0x142C, 0x1447, 0x1463, 0x147E, 0x1499, 0x14B4, 0x14D0, 0x14EB, 0x1507, 0x1523, 0x153E, 0x155A, 0x1576,
|
||||
0x1592, 0x15AE, 0x15CA, 0x15E6, 0x1602, 0x161E, 0x163B, 0x1657, 0x1673, 0x1690, 0x16AC, 0x16C9, 0x16E6, 0x1702, 0x171F, 0x173C,
|
||||
0x1759, 0x1776, 0x1793, 0x17B0, 0x17CD, 0x17EA, 0x1808, 0x1825, 0x1842, 0x1860, 0x187D, 0x189B, 0x18B9, 0x18D6, 0x18F4, 0x1912,
|
||||
0x1930, 0x194E, 0x196C, 0x198A, 0x19A8, 0x19C6, 0x19E5, 0x1A03, 0x1A21, 0x1A40, 0x1A5E, 0x1A7D, 0x1A9C, 0x1ABA, 0x1AD9, 0x1AF8,
|
||||
0x1B17, 0x1B36, 0x1B55, 0x1B74, 0x1B93, 0x1BB2, 0x1BD1, 0x1BF1, 0x1C10, 0x1C30, 0x1C4F, 0x1C6F, 0x1C8E, 0x1CAE, 0x1CCE, 0x1CEE,
|
||||
0x1D0D, 0x1D2D, 0x1D4D, 0x1D6D, 0x1D8D, 0x1DAE, 0x1DCE, 0x1DEE, 0x1E0E, 0x1E2F, 0x1E4F, 0x1E70, 0x1E90, 0x1EB1, 0x1ED2, 0x1EF2,
|
||||
0x1F13, 0x1F34, 0x1F55, 0x1F76, 0x1F97, 0x1FB8, 0x1FD9, 0x1FFA, 0x201C, 0x203D, 0x205E, 0x2080, 0x20A1, 0x20C3, 0x20E4, 0x2106,
|
||||
0x2128, 0x214A, 0x216C, 0x218D, 0x21AF, 0x21D1, 0x21F3, 0x2216, 0x2238, 0x225A, 0x227C, 0x229F, 0x22C1, 0x22E4, 0x2306, 0x2329,
|
||||
0x234B, 0x236E, 0x2391, 0x23B3, 0x23D6, 0x23F9, 0x241C, 0x243F, 0x2462, 0x2485, 0x24A9, 0x24CC, 0x24EF, 0x2513, 0x2536, 0x2559,
|
||||
0x257D, 0x25A0, 0x25C4, 0x25E8, 0x260B, 0x262F, 0x2653, 0x2677, 0x269B, 0x26BF, 0x26E3, 0x2707, 0x272B, 0x2750, 0x2774, 0x2798,
|
||||
0x27BC, 0x27E1, 0x2805, 0x282A, 0x284F, 0x2873, 0x2898, 0x28BD, 0x28E1, 0x2906, 0x292B, 0x2950, 0x2975, 0x299A, 0x29BF, 0x29E4,
|
||||
0x2A0A, 0x2A2F, 0x2A54, 0x2A7A, 0x2A9F, 0x2AC5, 0x2AEA, 0x2B10, 0x2B35, 0x2B5B, 0x2B81, 0x2BA6, 0x2BCC, 0x2BF2, 0x2C18, 0x2C3E,
|
||||
0x2C64, 0x2C8A, 0x2CB0, 0x2CD7, 0x2CFD, 0x2D23, 0x2D49, 0x2D70, 0x2D96, 0x2DBD, 0x2DE3, 0x2E0A, 0x2E30, 0x2E57, 0x2E7E, 0x2EA5,
|
||||
0x2ECC, 0x2EF2, 0x2F19, 0x2F40, 0x2F67, 0x2F8E, 0x2FB6, 0x2FDD, 0x3004, 0x302B, 0x3053, 0x307A, 0x30A1, 0x30C9, 0x30F0, 0x3118,
|
||||
0x313F, 0x3167, 0x318F, 0x31B6, 0x31DE, 0x3206, 0x322E, 0x3256, 0x327E, 0x32A6, 0x32CE, 0x32F6, 0x331E, 0x3347, 0x336F, 0x3397,
|
||||
0x33BF, 0x33E8, 0x3410, 0x3439, 0x3461, 0x348A, 0x34B2, 0x34DB, 0x3504, 0x352D, 0x3555, 0x357E, 0x35A7, 0x35D0, 0x35F9, 0x3622,
|
||||
0x364B, 0x3674, 0x369D, 0x36C7, 0x36F0, 0x3719, 0x3743, 0x376C, 0x3795, 0x37BF, 0x37E8, 0x3812, 0x383C, 0x3865, 0x388F, 0x38B9,
|
||||
0x38E2, 0x390C, 0x3936, 0x3960, 0x398A, 0x39B4, 0x39DE, 0x3A08, 0x3A32, 0x3A5C, 0x3A86, 0x3AB1, 0x3ADB, 0x3B05, 0x3B30, 0x3B5A,
|
||||
0x3B84, 0x3BAF, 0x3BD9, 0x3C04, 0x3C2F, 0x3C59, 0x3C84, 0x3CAF, 0x3CDA, 0x3D04, 0x3D2F, 0x3D5A, 0x3D85, 0x3DB0, 0x3DDB, 0x3E06,
|
||||
0x3E31, 0x3E5C, 0x3E87, 0x3EB3, 0x3EDE, 0x3F09, 0x3F35, 0x3F60, 0x3F8B, 0x3FB7, 0x3FE2, 0x400E, 0x4039, 0x4065, 0x4091, 0x40BC,
|
||||
0x40E8, 0x4114, 0x4140, 0x416B, 0x4197, 0x41C3, 0x41EF, 0x421B, 0x4247, 0x4273, 0x429F, 0x42CB, 0x42F7, 0x4324, 0x4350, 0x437C,
|
||||
0x43A9, 0x43D5, 0x4401, 0x442E, 0x445A, 0x4487, 0x44B3, 0x44E0, 0x450C, 0x4539, 0x4566, 0x4592, 0x45BF, 0x45EC, 0x4619, 0x4645,
|
||||
0x4672, 0x469F, 0x46CC, 0x46F9, 0x4726, 0x4753, 0x4780, 0x47AD, 0x47DB, 0x4808, 0x4835, 0x4862, 0x4890, 0x48BD, 0x48EA, 0x4918,
|
||||
0x4945, 0x4973, 0x49A0, 0x49CE, 0x49FB, 0x4A29, 0x4A56, 0x4A84, 0x4AB2, 0x4ADF, 0x4B0D, 0x4B3B, 0x4B69, 0x4B97, 0x4BC4, 0x4BF2,
|
||||
0x4C20, 0x4C4E, 0x4C7C, 0x4CAA, 0x4CD8, 0x4D06, 0x4D35, 0x4D63, 0x4D91, 0x4DBF, 0x4DED, 0x4E1C, 0x4E4A, 0x4E78, 0x4EA7, 0x4ED5,
|
||||
0x4F03, 0x4F32, 0x4F60, 0x4F8F, 0x4FBD, 0x4FEC, 0x501B, 0x5049, 0x5078, 0x50A7, 0x50D5, 0x5104, 0x5133, 0x5162, 0x5190, 0x51BF,
|
||||
0x51EE, 0x521D, 0x524C, 0x527B, 0x52AA, 0x52D9, 0x5308, 0x5337, 0x5366, 0x5395, 0x53C4, 0x53F4, 0x5423, 0x5452, 0x5481, 0x54B1,
|
||||
0x54E0, 0x550F, 0x553F, 0x556E, 0x559D, 0x55CD, 0x55FC, 0x562C, 0x565B, 0x568B, 0x56BB, 0x56EA, 0x571A, 0x5749, 0x5779, 0x57A9,
|
||||
0x57D8, 0x5808, 0x5838, 0x5868, 0x5898, 0x58C7, 0x58F7, 0x5927, 0x5957, 0x5987, 0x59B7, 0x59E7, 0x5A17, 0x5A47, 0x5A77, 0x5AA7,
|
||||
0x5AD7, 0x5B07, 0x5B37, 0x5B68, 0x5B98, 0x5BC8, 0x5BF8, 0x5C28, 0x5C59, 0x5C89, 0x5CB9, 0x5CEA, 0x5D1A, 0x5D4A, 0x5D7B, 0x5DAB,
|
||||
0x5DDC, 0x5E0C, 0x5E3C, 0x5E6D, 0x5E9D, 0x5ECE, 0x5EFF, 0x5F2F, 0x5F60, 0x5F90, 0x5FC1, 0x5FF2, 0x6022, 0x6053, 0x6084, 0x60B4,
|
||||
0x60E5, 0x6116, 0x6147, 0x6178, 0x61A8, 0x61D9, 0x620A, 0x623B, 0x626C, 0x629D, 0x62CE, 0x62FF, 0x6330, 0x6361, 0x6392, 0x63C3,
|
||||
0x63F4, 0x6425, 0x6456, 0x6487, 0x64B8, 0x64E9, 0x651A, 0x654B, 0x657C, 0x65AE, 0x65DF, 0x6610, 0x6641, 0x6673, 0x66A4, 0x66D5,
|
||||
0x6706, 0x6738, 0x6769, 0x679A, 0x67CC, 0x67FD, 0x682E, 0x6860, 0x6891, 0x68C3, 0x68F4, 0x6926, 0x6957, 0x6988, 0x69BA, 0x69EB,
|
||||
0x6A1D, 0x6A4F, 0x6A80, 0x6AB2, 0x6AE3, 0x6B15, 0x6B46, 0x6B78, 0x6BAA, 0x6BDB, 0x6C0D, 0x6C3F, 0x6C70, 0x6CA2, 0x6CD4, 0x6D05,
|
||||
0x6D37, 0x6D69, 0x6D9A, 0x6DCC, 0x6DFE, 0x6E30, 0x6E62, 0x6E93, 0x6EC5, 0x6EF7, 0x6F29, 0x6F5B, 0x6F8C, 0x6FBE, 0x6FF0, 0x7022,
|
||||
0x7054, 0x7086, 0x70B8, 0x70EA, 0x711C, 0x714D, 0x717F, 0x71B1, 0x71E3, 0x7215, 0x7247, 0x7279, 0x72AB, 0x72DD, 0x730F, 0x7341,
|
||||
0x7373, 0x73A5, 0x73D7, 0x7409, 0x743B, 0x746D, 0x74A0, 0x74D2, 0x7504, 0x7536, 0x7568, 0x759A, 0x75CC, 0x75FE, 0x7630, 0x7662,
|
||||
0x7694, 0x76C7, 0x76F9, 0x772B, 0x775D, 0x778F, 0x77C1, 0x77F4, 0x7826, 0x7858, 0x788A, 0x78BC, 0x78EE, 0x7921, 0x7953, 0x7985,
|
||||
0x79B7, 0x79E9, 0x7A1C, 0x7A4E, 0x7A80, 0x7AB2, 0x7AE4, 0x7B17, 0x7B49, 0x7B7B, 0x7BAD, 0x7BE0, 0x7C12, 0x7C44, 0x7C76, 0x7CA9,
|
||||
0x7CDB, 0x7D0D, 0x7D3F, 0x7D72, 0x7DA4, 0x7DD6, 0x7E08, 0x7E3B, 0x7E6D, 0x7E9F, 0x7ED1, 0x7F04, 0x7F36, 0x7F68, 0x7F9A, 0x7FCD
|
||||
272
FrictionWaveTable.inc
Executable file
272
FrictionWaveTable.inc
Executable file
@ -0,0 +1,272 @@
|
||||
// sine
|
||||
0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
|
||||
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
|
||||
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5,
|
||||
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
|
||||
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
|
||||
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,
|
||||
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
|
||||
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51,
|
||||
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
|
||||
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a,
|
||||
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,
|
||||
0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,
|
||||
0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c,
|
||||
0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c,
|
||||
// square
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
// pulse
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
//triangle
|
||||
0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,
|
||||
0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,
|
||||
0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,
|
||||
0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,
|
||||
0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,
|
||||
0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,
|
||||
0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,
|
||||
0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,
|
||||
0xff,0xfd,0xfb,0xf9,0xf7,0xf5,0xf3,0xf1,0xef,0xed,0xeb,0xe9,0xe7,0xe5,0xe3,0xe1,
|
||||
0xdf,0xdd,0xdb,0xd9,0xd7,0xd5,0xd3,0xd1,0xcf,0xcd,0xcb,0xc9,0xc7,0xc5,0xc3,0xc1,
|
||||
0xbf,0xbd,0xbb,0xb9,0xb7,0xb5,0xb3,0xb1,0xaf,0xad,0xab,0xa9,0xa7,0xa5,0xa3,0xa1,
|
||||
0x9f,0x9d,0x9b,0x99,0x97,0x95,0x93,0x91,0x8f,0x8d,0x8b,0x89,0x87,0x85,0x83,0x81,
|
||||
0x7f,0x7d,0x7b,0x79,0x77,0x75,0x73,0x71,0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61,
|
||||
0x5f,0x5d,0x5b,0x59,0x57,0x55,0x53,0x51,0x4f,0x4d,0x4b,0x49,0x47,0x45,0x43,0x41,
|
||||
0x3f,0x3d,0x3b,0x39,0x37,0x35,0x33,0x31,0x2f,0x2d,0x2b,0x29,0x27,0x25,0x23,0x21,
|
||||
0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x11,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x03,0x01,
|
||||
// sawtooth
|
||||
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,
|
||||
0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,
|
||||
0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,
|
||||
0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,
|
||||
0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,
|
||||
0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,
|
||||
0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,
|
||||
0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,
|
||||
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,
|
||||
0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,
|
||||
0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,
|
||||
0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,
|
||||
0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,
|
||||
0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,
|
||||
0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,
|
||||
0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,
|
||||
// fuzzsquare
|
||||
0x7f,0x8e,0x9d,0xac,0xba,0xc6,0xd2,0xdc,0xe4,0xea,0xef,0xf2,0xf4,0xf4,0xf4,0xf2,
|
||||
0xef,0xec,0xe8,0xe5,0xe2,0xdf,0xdc,0xda,0xd9,0xd8,0xd8,0xd9,0xda,0xdb,0xdd,0xdf,
|
||||
0xe2,0xe4,0xe6,0xe7,0xe9,0xea,0xea,0xea,0xe9,0xe8,0xe7,0xe5,0xe4,0xe2,0xe0,0xdf,
|
||||
0xdd,0xdc,0xdc,0xdc,0xdc,0xdc,0xdd,0xdf,0xe0,0xe2,0xe3,0xe5,0xe6,0xe7,0xe8,0xe8,
|
||||
0xe9,0xe8,0xe8,0xe7,0xe5,0xe4,0xe2,0xe1,0xdf,0xde,0xdd,0xdc,0xdc,0xdc,0xdc,0xdd,
|
||||
0xde,0xdf,0xe1,0xe3,0xe5,0xe6,0xe8,0xe9,0xea,0xea,0xea,0xe9,0xe8,0xe7,0xe5,0xe3,
|
||||
0xe1,0xde,0xdc,0xdb,0xd9,0xd8,0xd8,0xd8,0xd9,0xdb,0xdd,0xe0,0xe3,0xe7,0xea,0xee,
|
||||
0xf0,0xf3,0xf4,0xf4,0xf3,0xf1,0xed,0xe7,0xe0,0xd7,0xcc,0xc0,0xb3,0xa5,0x96,0x86,
|
||||
0x77,0x67,0x58,0x4a,0x3d,0x31,0x26,0x1d,0x16,0x10,0x0c,0x0a,0x09,0x09,0x0a,0x0d,
|
||||
0x0f,0x13,0x16,0x1a,0x1d,0x20,0x22,0x24,0x25,0x25,0x25,0x24,0x22,0x21,0x1f,0x1c,
|
||||
0x1a,0x18,0x16,0x15,0x14,0x13,0x13,0x13,0x14,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x1f,
|
||||
0x20,0x21,0x21,0x21,0x21,0x20,0x1f,0x1e,0x1c,0x1b,0x19,0x18,0x16,0x15,0x15,0x14,
|
||||
0x15,0x15,0x16,0x17,0x18,0x1a,0x1b,0x1d,0x1e,0x20,0x21,0x21,0x21,0x21,0x21,0x20,
|
||||
0x1e,0x1d,0x1b,0x19,0x18,0x16,0x15,0x14,0x13,0x13,0x13,0x14,0x16,0x17,0x19,0x1b,
|
||||
0x1e,0x20,0x22,0x23,0x24,0x25,0x25,0x24,0x23,0x21,0x1e,0x1b,0x18,0x15,0x11,0x0e,
|
||||
0x0b,0x09,0x09,0x09,0x0b,0x0e,0x13,0x19,0x21,0x2b,0x37,0x43,0x51,0x60,0x6f,0x7f,
|
||||
// digiwave
|
||||
0x00,0x18,0x31,0x47,0x5c,0x6f,0x7e,0x8b,0x94,0x9b,0x9f,0xa1,0xa1,0x9f,0x9d,0x9a,
|
||||
0x98,0x96,0x94,0x93,0x93,0x94,0x95,0x97,0x98,0x9a,0x9b,0x9b,0x9b,0x99,0x97,0x94,
|
||||
0x90,0x8c,0x87,0x82,0x7e,0x7a,0x77,0x74,0x72,0x71,0x70,0x70,0x71,0x71,0x72,0x72,
|
||||
0x73,0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x6f,0x70,0x70,0x72,0x74,0x76,0x79,0x7c,
|
||||
0x7f,0x82,0x85,0x87,0x89,0x8a,0x8a,0x89,0x88,0x87,0x85,0x82,0x80,0x7d,0x7b,0x78,
|
||||
0x76,0x74,0x72,0x70,0x6e,0x6b,0x67,0x63,0x5e,0x58,0x51,0x4a,0x42,0x39,0x30,0x28,
|
||||
0x1f,0x17,0x10,0x09,0x03,0x01,0x05,0x09,0x0d,0x10,0x14,0x19,0x1e,0x24,0x2b,0x32,
|
||||
0x3a,0x43,0x4b,0x53,0x5a,0x5f,0x62,0x63,0x61,0x5c,0x54,0x4a,0x3c,0x2d,0x1b,0x09,
|
||||
0x09,0x1b,0x2d,0x3c,0x4a,0x54,0x5c,0x61,0x63,0x62,0x5f,0x5a,0x53,0x4b,0x43,0x3a,
|
||||
0x32,0x2b,0x24,0x1e,0x19,0x14,0x10,0x0d,0x09,0x05,0x01,0x03,0x09,0x10,0x17,0x1f,
|
||||
0x28,0x30,0x39,0x42,0x4a,0x51,0x58,0x5e,0x63,0x67,0x6b,0x6e,0x70,0x72,0x74,0x76,
|
||||
0x78,0x7b,0x7d,0x80,0x82,0x85,0x87,0x88,0x89,0x8a,0x8a,0x89,0x87,0x85,0x82,0x7f,
|
||||
0x7c,0x79,0x76,0x74,0x72,0x70,0x70,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,0x73,0x73,
|
||||
0x72,0x72,0x71,0x71,0x70,0x70,0x71,0x72,0x74,0x77,0x7a,0x7e,0x82,0x87,0x8c,0x90,
|
||||
0x94,0x97,0x99,0x9b,0x9b,0x9b,0x9a,0x98,0x97,0x95,0x94,0x93,0x93,0x94,0x96,0x98,
|
||||
0x9a,0x9d,0x9f,0xa1,0xa1,0x9f,0x9b,0x94,0x8b,0x7e,0x6f,0x5c,0x47,0x31,0x18,0x00,
|
||||
// digiwave2
|
||||
0x00,0x17,0x2e,0x45,0x5a,0x6e,0x80,0x90,0x9e,0xaa,0xb4,0xbb,0xc0,0xc4,0xc6,0xc6,
|
||||
0xc5,0xc3,0xc0,0xbc,0xb8,0xb4,0xb1,0xad,0xaa,0xa7,0xa4,0xa2,0xa0,0x9e,0x9c,0x9b,
|
||||
0x99,0x96,0x94,0x90,0x8c,0x88,0x83,0x7d,0x76,0x6f,0x68,0x61,0x59,0x51,0x4a,0x42,
|
||||
0x3c,0x36,0x30,0x2b,0x27,0x23,0x20,0x1e,0x1d,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,
|
||||
0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1c,0x1d,0x1f,0x22,0x25,0x29,0x2d,0x33,0x39,
|
||||
0x3f,0x46,0x4d,0x55,0x5d,0x64,0x6c,0x73,0x7a,0x80,0x85,0x8a,0x8e,0x92,0x95,0x98,
|
||||
0x9a,0x9c,0x9d,0x9f,0xa1,0xa3,0xa5,0xa8,0xab,0xaf,0xb2,0xb6,0xba,0xbe,0xc1,0xc4,
|
||||
0xc5,0xc6,0xc5,0xc2,0xbe,0xb8,0xaf,0xa4,0x97,0x88,0x77,0x64,0x4f,0x39,0x23,0x0b,
|
||||
0x0b,0x23,0x39,0x4f,0x64,0x77,0x88,0x97,0xa4,0xaf,0xb8,0xbe,0xc2,0xc5,0xc6,0xc5,
|
||||
0xc4,0xc1,0xbe,0xba,0xb6,0xb2,0xaf,0xab,0xa8,0xa5,0xa3,0xa1,0x9f,0x9d,0x9c,0x9a,
|
||||
0x98,0x95,0x92,0x8e,0x8a,0x85,0x80,0x7a,0x73,0x6c,0x64,0x5d,0x55,0x4d,0x46,0x3f,
|
||||
0x39,0x33,0x2d,0x29,0x25,0x22,0x1f,0x1d,0x1c,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
|
||||
0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1d,0x1e,0x20,0x23,0x27,0x2b,0x30,0x36,0x3c,
|
||||
0x42,0x4a,0x51,0x59,0x61,0x68,0x6f,0x76,0x7d,0x83,0x88,0x8c,0x90,0x94,0x96,0x99,
|
||||
0x9b,0x9c,0x9e,0xa0,0xa2,0xa4,0xa7,0xaa,0xad,0xb1,0xb4,0xb8,0xbc,0xc0,0xc3,0xc5,
|
||||
0xc6,0xc6,0xc4,0xc0,0xbb,0xb4,0xaa,0x9e,0x90,0x80,0x6e,0x5a,0x45,0x2e,0x17,0x00,
|
||||
// digiwave3
|
||||
0x00,0x24,0x48,0x6a,0x89,0xa6,0xbe,0xd3,0xe3,0xee,0xf5,0xf7,0xf4,0xed,0xe2,0xd5,
|
||||
0xc4,0xb2,0x9f,0x8b,0x77,0x65,0x53,0x44,0x37,0x2d,0x26,0x21,0x20,0x21,0x25,0x2b,
|
||||
0x33,0x3b,0x45,0x4f,0x59,0x62,0x6a,0x71,0x76,0x79,0x7a,0x79,0x77,0x72,0x6c,0x65,
|
||||
0x5d,0x54,0x4b,0x43,0x3b,0x34,0x2f,0x2b,0x28,0x27,0x28,0x2b,0x2f,0x34,0x3a,0x41,
|
||||
0x48,0x4f,0x55,0x5b,0x5f,0x62,0x63,0x63,0x60,0x5c,0x57,0x50,0x47,0x3e,0x34,0x2a,
|
||||
0x21,0x17,0x0f,0x08,0x03,0x00,0x01,0x01,0x00,0x04,0x09,0x10,0x17,0x1f,0x27,0x2e,
|
||||
0x34,0x38,0x3a,0x3a,0x37,0x32,0x29,0x1d,0x0f,0x01,0x14,0x29,0x40,0x57,0x6d,0x83,
|
||||
0x98,0xaa,0xba,0xc6,0xce,0xd2,0xd1,0xcc,0xc1,0xb3,0x9f,0x88,0x6d,0x50,0x31,0x10,
|
||||
0x10,0x31,0x50,0x6d,0x88,0x9f,0xb3,0xc1,0xcc,0xd1,0xd2,0xce,0xc6,0xba,0xaa,0x98,
|
||||
0x83,0x6d,0x57,0x40,0x29,0x14,0x01,0x0f,0x1d,0x29,0x32,0x37,0x3a,0x3a,0x38,0x34,
|
||||
0x2e,0x27,0x1f,0x17,0x10,0x09,0x04,0x00,0x01,0x01,0x00,0x03,0x08,0x0f,0x17,0x21,
|
||||
0x2a,0x34,0x3e,0x47,0x50,0x57,0x5c,0x60,0x63,0x63,0x62,0x5f,0x5b,0x55,0x4f,0x48,
|
||||
0x41,0x3a,0x34,0x2f,0x2b,0x28,0x27,0x28,0x2b,0x2f,0x34,0x3b,0x43,0x4b,0x54,0x5d,
|
||||
0x65,0x6c,0x72,0x77,0x79,0x7a,0x79,0x76,0x71,0x6a,0x62,0x59,0x4f,0x45,0x3b,0x33,
|
||||
0x2b,0x25,0x21,0x20,0x21,0x26,0x2d,0x37,0x44,0x53,0x65,0x77,0x8b,0x9f,0xb2,0xc4,
|
||||
0xd5,0xe2,0xed,0xf4,0xf7,0xf5,0xee,0xe3,0xd3,0xbe,0xa6,0x89,0x6a,0x48,0x24,0x00,
|
||||
// digiwave4
|
||||
0x7e,0x66,0x31,0x3f,0x39,0x8d,0x9c,0x4b,0xae,0x25,0x03,0xa8,0xae,0x41,0x17,0x27,
|
||||
0x06,0x4e,0x94,0xc8,0xe4,0xeb,0xe1,0xcb,0xb0,0x92,0x74,0x59,0x41,0x2d,0x1d,0x10,
|
||||
0x08,0x02,0x00,0x01,0x00,0x02,0x06,0x0a,0x10,0x15,0x1b,0x21,0x26,0x2c,0x31,0x36,
|
||||
0x3a,0x3e,0x42,0x45,0x47,0x4a,0x4b,0x4d,0x4d,0x4e,0x4e,0x4d,0x4c,0x4b,0x4a,0x48,
|
||||
0x46,0x44,0x41,0x3f,0x3c,0x39,0x36,0x33,0x30,0x2c,0x29,0x26,0x23,0x1f,0x1c,0x19,
|
||||
0x16,0x13,0x11,0x0e,0x0c,0x09,0x07,0x05,0x04,0x02,0x01,0x00,0x00,0x00,0x01,0x01,
|
||||
0x00,0x00,0x00,0x01,0x02,0x04,0x06,0x08,0x0a,0x0d,0x10,0x13,0x16,0x1a,0x1d,0x21,
|
||||
0x26,0x2a,0x2f,0x34,0x38,0x3e,0x43,0x48,0x4e,0x53,0x59,0x5f,0x64,0x6a,0x70,0x76,
|
||||
0x7c,0x82,0x88,0x8d,0x93,0x99,0x9e,0xa4,0xa9,0xae,0xb4,0xb9,0xbd,0xc2,0xc6,0xca,
|
||||
0xce,0xd2,0xd6,0xd9,0xdc,0xdf,0xe1,0xe4,0xe5,0xe7,0xe8,0xea,0xea,0xeb,0xeb,0xeb,
|
||||
0xea,0xea,0xe8,0xe7,0xe5,0xe3,0xe1,0xdf,0xdc,0xd9,0xd5,0xd1,0xce,0xc9,0xc5,0xc0,
|
||||
0xbb,0xb6,0xb1,0xac,0xa6,0xa0,0x9a,0x94,0x8e,0x88,0x81,0x7b,0x74,0x6e,0x67,0x60,
|
||||
0x5a,0x53,0x4d,0x46,0x40,0x39,0x33,0x2d,0x27,0x21,0x1b,0x15,0x10,0x0a,0x05,0x00,
|
||||
0x03,0x08,0x0c,0x10,0x14,0x17,0x1b,0x1d,0x20,0x22,0x24,0x26,0x28,0x29,0x29,0x2a,
|
||||
0x2a,0x2a,0x2a,0x29,0x28,0x27,0x25,0x23,0x21,0x1e,0x1b,0x18,0x15,0x12,0x0e,0x0a,
|
||||
0x06,0x01,0x03,0x07,0x0c,0x12,0x17,0x1c,0x22,0x28,0x2d,0x33,0x39,0x3f,0x45,0x4b,
|
||||
// digiwave5
|
||||
0x00,0x00,0x00,0x01,0x06,0x0e,0x1e,0x39,0x5f,0x93,0xcd,0xf9,0xeb,0x6d,0x76,0xfd,
|
||||
0x19,0xfd,0x75,0x43,0x91,0x79,0x1c,0xf2,0x1b,0xbc,0xc0,0x1d,0xfc,0xb0,0xda,0xb9,
|
||||
0xfd,0xeb,0x6b,0x3a,0xfa,0xca,0xe9,0xfd,0x53,0x60,0xfc,0xd2,0xf6,0x80,0xfd,0xf8,
|
||||
0xfa,0x76,0xbf,0x97,0xed,0x01,0xf2,0x71,0xef,0x33,0x48,0x1d,0xbf,0x5d,0x82,0x7c,
|
||||
0x38,0x81,0x34,0xbd,0xa2,0x7a,0x85,0xc2,0x92,0x0d,0xd1,0xe9,0x40,0x62,0x94,0x3c,
|
||||
0xca,0x16,0x0b,0xfd,0xf7,0x3d,0x0f,0xa0,0xc0,0xfa,0xd0,0xb3,0x9a,0x5a,0x4a,0xfd,
|
||||
0x6a,0x53,0xfc,0xc9,0xe3,0xef,0xb0,0xe8,0x78,0x26,0x1b,0x80,0xf7,0x54,0xe6,0xb5,
|
||||
0xcb,0xe8,0x1f,0xf0,0xfd,0xfd,0xf2,0xda,0xe6,0xf5,0x41,0x2a,0xba,0x5f,0xee,0x83,
|
||||
0x71,0x9e,0xc5,0xba,0x2b,0xf8,0xcb,0xe8,0xfc,0x54,0xfa,0xe4,0x8e,0x1f,0xf8,0x4c,
|
||||
0x66,0xe5,0xc0,0xfd,0x2a,0xfd,0x1e,0xfd,0xd2,0xf6,0x16,0x36,0x84,0xe3,0xaa,0x86,
|
||||
0xcd,0xfa,0xfb,0x4b,0xa5,0x27,0xd3,0xb6,0x60,0xda,0xae,0xbb,0xd1,0x0e,0xfd,0x3d,
|
||||
0xe8,0x0e,0x59,0x9b,0x41,0xe7,0x04,0xca,0xdd,0xab,0x6f,0xfd,0xfd,0xa7,0x83,0xf8,
|
||||
0x91,0xad,0xc8,0xb4,0xfd,0x3f,0xdf,0xe8,0xe2,0xb3,0xc8,0xec,0x4c,0xf7,0x4b,0x30,
|
||||
0xfc,0xfd,0xa4,0x66,0xf9,0xfa,0xd0,0xf9,0x70,0x40,0xc4,0xee,0xa7,0xc9,0x21,0xee,
|
||||
0xb7,0x8a,0x64,0x19,0xe6,0x23,0xe3,0xbe,0xde,0xe2,0x39,0xae,0xfb,0xb1,0xca,0xb3,
|
||||
0x99,0x4e,0xde,0xd2,0xd7,0xf4,0x6d,0xd5,0x9c,0x47,0x23,0xfd,0x8f,0x10,0xa2,0xc5,
|
||||
// digiwave6
|
||||
0x00,0x29,0x51,0x77,0x99,0xb7,0xcf,0xe1,0xed,0xf2,0xf0,0xe9,0xdc,0xca,0xb4,0x9b,
|
||||
0x81,0x65,0x4a,0x30,0x19,0x04,0x0c,0x19,0x23,0x28,0x29,0x27,0x22,0x1b,0x12,0x08,
|
||||
0x01,0x0a,0x12,0x19,0x1d,0x1f,0x1e,0x1b,0x16,0x0e,0x05,0x05,0x10,0x1b,0x26,0x2f,
|
||||
0x37,0x3d,0x41,0x43,0x42,0x3f,0x3b,0x34,0x2d,0x25,0x1c,0x14,0x0d,0x07,0x03,0x00,
|
||||
0x00,0x01,0x05,0x0a,0x11,0x18,0x21,0x29,0x31,0x38,0x3d,0x41,0x43,0x42,0x3f,0x3a,
|
||||
0x33,0x2a,0x20,0x15,0x0a,0x00,0x09,0x12,0x19,0x1d,0x1f,0x1e,0x1b,0x16,0x0e,0x06,
|
||||
0x03,0x0d,0x17,0x1f,0x25,0x29,0x29,0x26,0x1f,0x13,0x04,0x0e,0x24,0x3d,0x58,0x73,
|
||||
0x8e,0xa8,0xbf,0xd3,0xe3,0xed,0xf2,0xf0,0xe8,0xd9,0xc4,0xa9,0x89,0x65,0x3e,0x14,
|
||||
0x14,0x3e,0x65,0x89,0xa9,0xc4,0xd9,0xe8,0xf0,0xf2,0xed,0xe3,0xd3,0xbf,0xa8,0x8e,
|
||||
0x73,0x58,0x3d,0x24,0x0e,0x04,0x13,0x1f,0x26,0x29,0x29,0x25,0x1f,0x17,0x0d,0x03,
|
||||
0x06,0x0e,0x16,0x1b,0x1e,0x1f,0x1d,0x19,0x12,0x09,0x00,0x0a,0x15,0x20,0x2a,0x33,
|
||||
0x3a,0x3f,0x42,0x43,0x41,0x3d,0x38,0x31,0x29,0x21,0x18,0x11,0x0a,0x05,0x01,0x00,
|
||||
0x00,0x03,0x07,0x0d,0x14,0x1c,0x25,0x2d,0x34,0x3b,0x3f,0x42,0x43,0x41,0x3d,0x37,
|
||||
0x2f,0x26,0x1b,0x10,0x05,0x05,0x0e,0x16,0x1b,0x1e,0x1f,0x1d,0x19,0x12,0x0a,0x01,
|
||||
0x08,0x12,0x1b,0x22,0x27,0x29,0x28,0x23,0x19,0x0c,0x04,0x19,0x30,0x4a,0x65,0x81,
|
||||
0x9b,0xb4,0xca,0xdc,0xe9,0xf0,0xf2,0xed,0xe1,0xcf,0xb7,0x99,0x77,0x51,0x29,0x00,
|
||||
// tanwave
|
||||
0x00,0x0c,0x19,0x25,0x32,0x3e,0x4b,0x57,0x64,0x70,0x7d,0x89,0x95,0xa2,0xae,0xb9,
|
||||
0xc5,0xd0,0xda,0xe2,0xe8,0xeb,0xe8,0xde,0xc6,0x9d,0x5e,0x14,0x0a,0xd2,0x02,0x09,
|
||||
0xeb,0xdc,0x89,0x69,0xfa,0xcf,0x82,0x44,0x1b,0x02,0x0b,0x12,0x15,0x15,0x14,0x12,
|
||||
0x10,0x0e,0x0b,0x09,0x07,0x06,0x04,0x03,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x05,0x06,0x08,0x0a,0x0d,0x0f,
|
||||
0x11,0x13,0x15,0x15,0x14,0x0f,0x05,0x0d,0x2d,0x60,0xa8,0xf0,0xd3,0x00,0x8b,0x11,
|
||||
0x2d,0xe7,0xe3,0x54,0x01,0x38,0x80,0xb4,0xd4,0xe4,0xea,0xea,0xe5,0xde,0xd5,0xca,
|
||||
0xbf,0xb4,0xa8,0x9b,0x8f,0x83,0x76,0x6a,0x5d,0x51,0x44,0x38,0x2b,0x1f,0x12,0x06,
|
||||
0x06,0x12,0x1f,0x2b,0x38,0x44,0x51,0x5d,0x6a,0x76,0x83,0x8f,0x9b,0xa8,0xb4,0xbf,
|
||||
0xca,0xd5,0xde,0xe5,0xea,0xea,0xe4,0xd4,0xb4,0x80,0x38,0x01,0x54,0xe3,0xe7,0x2d,
|
||||
0x11,0x8b,0x00,0xd3,0xf0,0xa8,0x60,0x2d,0x0d,0x05,0x0f,0x14,0x15,0x15,0x13,0x11,
|
||||
0x0f,0x0d,0x0a,0x08,0x06,0x05,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x06,0x07,0x09,0x0b,0x0e,0x10,
|
||||
0x12,0x14,0x15,0x15,0x12,0x0b,0x02,0x1b,0x44,0x82,0xcf,0xfa,0x69,0x89,0xdc,0xeb,
|
||||
0x09,0x02,0xd2,0x0a,0x14,0x5e,0x9d,0xc6,0xde,0xe8,0xeb,0xe8,0xe2,0xda,0xd0,0xc5,
|
||||
0xb9,0xae,0xa2,0x95,0x89,0x7d,0x70,0x64,0x57,0x4b,0x3e,0x32,0x25,0x19,0x0c,0x00,
|
||||
// tanwave2
|
||||
0x00,0x12,0x25,0x38,0x4c,0x5f,0x74,0x88,0x9c,0xae,0xba,0xba,0x98,0x30,0x20,0x26,
|
||||
0xc6,0x69,0xe0,0x6f,0x10,0x0d,0x0e,0x03,0x0b,0x1c,0x2c,0x3c,0x4b,0x59,0x66,0x73,
|
||||
0x80,0x8c,0x99,0xa5,0xb1,0xbd,0xca,0xd6,0xe1,0xeb,0xee,0xe2,0xb1,0x37,0x0b,0x4f,
|
||||
0xaa,0x10,0xcd,0x42,0x1a,0x3b,0x43,0x3f,0x38,0x30,0x27,0x20,0x18,0x11,0x0b,0x04,
|
||||
0x01,0x07,0x0e,0x15,0x1c,0x23,0x2c,0x34,0x3c,0x42,0x41,0x30,0x09,0x8e,0x7a,0x12,
|
||||
0xc8,0xdc,0x11,0x7e,0xd0,0xeb,0xee,0xe7,0xdc,0xd0,0xc3,0xb7,0xab,0x9f,0x93,0x86,
|
||||
0x7a,0x6d,0x60,0x52,0x43,0x34,0x24,0x14,0x04,0x09,0x0f,0x03,0x35,0xb9,0x4c,0xba,
|
||||
0x1d,0xa7,0x18,0x6f,0xaf,0xbd,0xb5,0xa5,0x92,0x7e,0x69,0x56,0x42,0x2f,0x1c,0x09,
|
||||
0x09,0x1c,0x2f,0x42,0x56,0x69,0x7e,0x92,0xa5,0xb5,0xbd,0xaf,0x6f,0x18,0xa7,0x1d,
|
||||
0xba,0x4c,0xb9,0x35,0x03,0x0f,0x09,0x04,0x14,0x24,0x34,0x43,0x52,0x60,0x6d,0x7a,
|
||||
0x86,0x93,0x9f,0xab,0xb7,0xc3,0xd0,0xdc,0xe7,0xee,0xeb,0xd0,0x7e,0x11,0xdc,0xc8,
|
||||
0x12,0x7a,0x8e,0x09,0x30,0x41,0x42,0x3c,0x34,0x2c,0x23,0x1c,0x15,0x0e,0x07,0x01,
|
||||
0x04,0x0b,0x11,0x18,0x20,0x27,0x30,0x38,0x3f,0x43,0x3b,0x1a,0x42,0xcd,0x10,0xaa,
|
||||
0x4f,0x0b,0x37,0xb1,0xe2,0xee,0xeb,0xe1,0xd6,0xca,0xbd,0xb1,0xa5,0x99,0x8c,0x80,
|
||||
0x73,0x66,0x59,0x4b,0x3c,0x2c,0x1c,0x0b,0x03,0x0e,0x0d,0x10,0x6f,0xe0,0x69,0xc6,
|
||||
0x26,0x20,0x30,0x98,0xba,0xba,0xae,0x9c,0x88,0x74,0x5f,0x4c,0x38,0x25,0x12,0x00,
|
||||
//tanwave3
|
||||
0x00,0x0f,0x1f,0x2f,0x3f,0x50,0x61,0x73,0x84,0x93,0x9d,0x9a,0x76,0x0c,0x46,0x4e,
|
||||
0x9d,0x3f,0xb4,0x42,0x1d,0x3b,0x3c,0x32,0x22,0x12,0x01,0x0f,0x1f,0x2e,0x3d,0x4c,
|
||||
0x5b,0x6a,0x79,0x88,0x97,0xa7,0xb7,0xc7,0xd6,0xe4,0xec,0xe4,0xb8,0x43,0x1c,0x66,
|
||||
0xc7,0x11,0xf5,0x70,0x19,0x01,0x02,0x07,0x14,0x23,0x32,0x40,0x4e,0x5b,0x68,0x75,
|
||||
0x82,0x8e,0x9b,0xa7,0xb4,0xc2,0xd0,0xdd,0xea,0xf5,0xf9,0xed,0xb7,0x36,0x4e,0xdf,
|
||||
0x07,0x09,0xe7,0x59,0x09,0x0f,0x10,0x08,0x02,0x0f,0x1b,0x27,0x33,0x3e,0x48,0x53,
|
||||
0x5d,0x67,0x72,0x7d,0x88,0x93,0x9f,0xaa,0xb5,0xbe,0xbe,0xac,0x6d,0x1d,0x49,0x2b,
|
||||
0xa5,0x28,0x90,0x00,0x47,0x5d,0x5e,0x57,0x4d,0x41,0x36,0x2c,0x21,0x17,0x0e,0x04,
|
||||
0x04,0x0e,0x17,0x21,0x2c,0x36,0x41,0x4d,0x57,0x5e,0x5d,0x47,0x00,0x90,0x28,0xa5,
|
||||
0x2b,0x49,0x1d,0x6d,0xac,0xbe,0xbe,0xb5,0xaa,0x9f,0x93,0x88,0x7d,0x72,0x67,0x5d,
|
||||
0x53,0x48,0x3e,0x33,0x27,0x1b,0x0f,0x02,0x08,0x10,0x0f,0x09,0x59,0xe7,0x09,0x07,
|
||||
0xdf,0x4e,0x36,0xb7,0xed,0xf9,0xf5,0xea,0xdd,0xd0,0xc2,0xb4,0xa7,0x9b,0x8e,0x82,
|
||||
0x75,0x68,0x5b,0x4e,0x40,0x32,0x23,0x14,0x07,0x02,0x01,0x19,0x70,0xf5,0x11,0xc7,
|
||||
0x66,0x1c,0x43,0xb8,0xe4,0xec,0xe4,0xd6,0xc7,0xb7,0xa7,0x97,0x88,0x79,0x6a,0x5b,
|
||||
0x4c,0x3d,0x2e,0x1f,0x0f,0x01,0x12,0x22,0x32,0x3c,0x3b,0x1d,0x42,0xb4,0x3f,0x9c,
|
||||
0x4e,0x46,0x0c,0x76,0x9a,0x9d,0x93,0x84,0x73,0x61,0x50,0x3f,0x2f,0x1f,0x0f,0x00,
|
||||
//tanwave4
|
||||
0x7f,0x81,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8d,0x8c,0x8c,0x8a,0x88,0x85,0x81,0x7b,
|
||||
0x74,0x6c,0x61,0x54,0x43,0x30,0x19,0x00,0x1a,0x2f,0x30,0x03,0x89,0xb2,0x3b,0x28,
|
||||
0x9b,0xb1,0x20,0xdd,0x74,0x06,0x18,0x0c,0x0f,0x2e,0x4c,0x66,0x7d,0x90,0xa1,0xaf,
|
||||
0xbc,0xc6,0xcf,0xd7,0xde,0xe4,0xe9,0xed,0xf1,0xf4,0xf7,0xf9,0xfb,0xfc,0xfd,0xfd,
|
||||
0xfd,0xfd,0xfd,0xfb,0xfa,0xf8,0xf6,0xf3,0xef,0xeb,0xe7,0xe1,0xdb,0xd3,0xcb,0xc1,
|
||||
0xb6,0xa8,0x99,0x87,0x72,0x59,0x3d,0x1f,0x00,0x15,0x10,0x31,0xbe,0x74,0xdb,0x9b,
|
||||
0x08,0x0f,0x07,0xca,0x3d,0x1f,0x34,0x26,0x0d,0x0d,0x25,0x3a,0x4c,0x5b,0x66,0x70,
|
||||
0x78,0x7e,0x83,0x86,0x89,0x8b,0x8c,0x8d,0x8c,0x8c,0x8b,0x89,0x88,0x85,0x83,0x80,
|
||||
0x7d,0x79,0x76,0x72,0x6d,0x68,0x63,0x5e,0x58,0x51,0x4a,0x42,0x39,0x30,0x25,0x19,
|
||||
0x0c,0x03,0x14,0x29,0x40,0x5a,0x78,0x98,0xb6,0xc9,0xb9,0x62,0x26,0xa1,0x9e,0xba,
|
||||
0x1b,0x20,0x4a,0x04,0x95,0xdb,0xe3,0xd1,0xb6,0x9b,0x82,0x6c,0x5a,0x4b,0x3e,0x33,
|
||||
0x2a,0x23,0x1c,0x17,0x12,0x0e,0x0b,0x08,0x06,0x04,0x03,0x02,0x01,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x01,0x02,0x04,0x05,0x07,0x0a,0x0d,0x10,0x14,0x19,0x1f,0x26,0x2e,
|
||||
0x38,0x44,0x52,0x63,0x77,0x8e,0xa8,0xc4,0xdc,0xe4,0xc2,0x50,0x1c,0xdc,0x06,0x17,
|
||||
0x87,0x6f,0x0b,0x18,0x99,0xc7,0xc2,0xa8,0x88,0x69,0x4d,0x34,0x1e,0x0b,0x04,0x13,
|
||||
0x1f,0x2b,0x35,0x3e,0x46,0x4e,0x55,0x5b,0x61,0x66,0x6b,0x6f,0x74,0x78,0x7b,0x7f
|
||||
BIN
Haarnet Cheat Sheet.pdf
Executable file
BIN
Haarnet Cheat Sheet.pdf
Executable file
Binary file not shown.
227
Haarnet Cheat Sheet.rtf
Executable file
227
Haarnet Cheat Sheet.rtf
Executable file
@ -0,0 +1,227 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190
|
||||
{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
|
||||
{\colortbl;\red255\green255\blue255;\red0\green116\blue0;\red170\green13\blue145;\red100\green56\blue32;
|
||||
\red28\green0\blue207;}
|
||||
\paperw16840\paperh11900\margl1440\margr1440\vieww16500\viewh14280\viewkind0
|
||||
\deftab560
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
|
||||
\f0\fs22 \cf0 \CocoaLigature0 CFO H\'c5RNET CHEAT SHEET\
|
||||
\
|
||||
\
|
||||
\cf2 // FREQUENCY AND DETUNE FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 setFrequency(\cf3 float\cf0 frequency); \cf2 // 0.0 - whatever, not sure what happens when negative :)\cf0 \
|
||||
\cf3 void\cf0 setFrequency1(\cf3 float\cf0 frequency1); \
|
||||
\cf3 void\cf0 setFrequency2(\cf3 float\cf0 frequency2);\
|
||||
\cf3 void\cf0 setFrequency3(\cf3 float\cf0 frequency3);\
|
||||
\
|
||||
\cf3 void\cf0 setSemitone1(int8_t semi); \cf2 // -24 to 24\cf0 \
|
||||
\cf3 void\cf0 setSemitone2(int8_t semi);\
|
||||
\cf3 void\cf0 setSemitone3(int8_t semi);\
|
||||
\
|
||||
\cf3 void\cf0 setDetune(\cf3 float\cf0 detune); \cf2 // 0.0 to whatever.\cf0 \
|
||||
\cf3 void\cf0 setDetune1(\cf3 float\cf0 detune); \cf2 // 1.0 is one octave.\cf0 \
|
||||
\cf3 void\cf0 setDetune2(\cf3 float\cf0 detune); \cf2 // best results with detune between 0.00 and 0.02\cf0 \
|
||||
\cf3 void\cf0 setDetune3(\cf3 float\cf0 detune);\
|
||||
\
|
||||
\cf3 void\cf0 setOsc1LFO(\cf3 bool\cf0 lfo); \cf2 // true or false\cf0 \
|
||||
\cf3 void\cf0 setOsc2LFO(\cf3 bool\cf0 lfo);\
|
||||
\cf3 void\cf0 setOsc3LFO(\cf3 bool\cf0 lfo);\
|
||||
\
|
||||
\cf3 void\cf0 setFM1(uint8_t fm); \cf2 // 0 - 127\cf0 \
|
||||
\cf3 void\cf0 setFM2(uint8_t fm);\
|
||||
\cf3 void\cf0 setFM3(uint8_t fm);\
|
||||
\
|
||||
\cf3 void\cf0 setFMoctaves(uint8_t octs); \cf2 // 1 - 128, it won\'92t go down to zero.\cf0 \
|
||||
\cf3 void\cf0 setFM1octaves(uint8_t octs);\
|
||||
\cf3 void\cf0 setFM2octaves(uint8_t octs);\
|
||||
\cf3 void\cf0 setFM3octaves(uint8_t octs);\
|
||||
\
|
||||
\cf3 void\cf0 setFM1Source(uint8_t source); \cf2 // 0 - 3 where\cf0 \
|
||||
\cf3 void\cf0 setFM2Source(uint8_t source); \cf2 // 0 is linear, 1 is Osc1\cf0 \
|
||||
\cf3 void\cf0 setFM3Source(uint8_t source); \cf2 // 2 is Osc2 and 3 is Osc3\cf0 \
|
||||
\
|
||||
\cf3 void\cf0 setFM1Shape(uint8_t shape); \cf2 // 0 - 5 where\cf0 \
|
||||
\cf3 void\cf0 setFM2Shape(uint8_t shape); \cf2 // 0 is linear full signal\cf0 \
|
||||
\cf3 void\cf0 setFM3Shape(uint8_t shape); \cf2 // 1 is envelope1, 2 is envelope2, \
|
||||
// 3 is oscillator1, 4 is oscillator2 and 5 is oscillator 3\cf0 \
|
||||
\
|
||||
\cf3 void\cf0 fmToZeroHertz(\cf3 bool\cf0 ); \cf2 // true or false, if set to true the FM sounds more harmonic\cf0 \
|
||||
\
|
||||
\cf3 void\cf0 setPortamento(int32_t port); \cf2 // 0 - 127\cf0 \
|
||||
\
|
||||
\cf3 void\cf0 set12bit(\cf3 bool\cf0 ) \cf2 // true or false\cf0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\cf2 // FILTER FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 setCutoff(int32_t c); \cf2 // 0 - 65535\cf0 \
|
||||
\cf3 void\cf0 setFilterType(uint8_t type); \cf2 // 0 - 3 where filter type can be seen below \cf0 \
|
||||
\cf3 void\cf0 setCutoffModAmount(int32_t amount); \cf2 // -65536 to 65535\cf0 \
|
||||
\cf3 void\cf0 setCutoffModSource(uint8_t source); \cf2 // 0 - 5, same as FM shape\cf0 \
|
||||
\
|
||||
\cf2 // SHORTNAMES FOR FILTER TYPES\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 LOWPASS \cf5 0\cf4 \
|
||||
HIGHPASS \cf5 1\cf4 \
|
||||
BANDPASS \cf5 2\cf4 \
|
||||
NOTCH \cf5 3\cf0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\cf2 // WAVEFORM FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 setWaveform(uint16_t waveForm); \cf2 // JUST FOR 8bit WAVEFORMS\cf0 \
|
||||
\cf3 void\cf0 setWaveform1(uint16_t waveForm); \cf2 // 0 - 15\cf0 \
|
||||
\cf3 void\cf0 setWaveform2(uint16_t waveForm); \cf2 //\cf0 \
|
||||
\cf3 void\cf0 setWaveform3(uint16_t waveForm); \cf2 //\
|
||||
\
|
||||
// SHORTNAMES FOR WAVEFORMS\cf0 \
|
||||
\cf4 SINE \cf5 0\cf4 \
|
||||
SQUARE \cf5 1\cf4 \
|
||||
PULSE \cf5 2\cf4 \
|
||||
TRIANGLE \cf5 3\cf4 \
|
||||
SAW \cf5 4\cf4 \
|
||||
FUZZ \cf5 5\cf4 \
|
||||
DIGI1 \cf5 6\cf4 \
|
||||
DIGI2 \cf5 7\cf4 \
|
||||
DIGI3 \cf5 8\cf4 \
|
||||
DIGI4 \cf5 9\cf4 \
|
||||
NOISE \cf5 10\cf4 \
|
||||
DIGI6 \cf5 11\cf4 \
|
||||
TAN1 \cf5 12\cf4 \
|
||||
TAN2 \cf5 13\cf4 \
|
||||
TAN3 \cf5 14\cf4 \
|
||||
TAN4 \cf5 15\cf2 \
|
||||
\
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\
|
||||
\
|
||||
\page \cf2 // GAIN FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 setGain(\cf3 float\cf0 value); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 void\cf0 setGain1(\cf3 float\cf0 value); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 void\cf0 setGain2(\cf3 float\cf0 value); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 void\cf0 setGain3(\cf3 float\cf0 value); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\
|
||||
\cf3 float\cf0 getGain(); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 float\cf0 getGain1(); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 float\cf0 getGain2(); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\cf3 float\cf0 getGain3(); \cf2 // 0.0 - 1.0 \cf0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\cf2 // NOTE FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 noteOn(uint8_t note, uint8_t vel); \cf2 // 0 - 127\cf0 \
|
||||
\cf3 void\cf0 noteOn(uint8_t note); \cf2 // 0 - 127\cf0 \
|
||||
\
|
||||
\cf3 void\cf0 noteOff(uint8_t note); \cf2 // 0 - 127\cf0 \
|
||||
\cf3 void\cf0 noteOff();\
|
||||
\
|
||||
\cf3 float\cf0 getNoteFrequency(uint8_t note); \cf2 // 0 - 127\cf0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
\cf2 // ENVELOPE FUNCTIONS\cf0 \
|
||||
\cf3 void\cf0 enableEnvelope1();\
|
||||
\cf3 void\cf0 disableEnvelope1(); \
|
||||
\
|
||||
\cf3 void\cf0 setEnv1Attack(uint8_t att); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv1Decay(uint8_t dec); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv1Sustain(uint8_t sus); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv1Release(uint8_t rel); \cf2 // 0 - 127 \cf0 \
|
||||
\
|
||||
\cf3 void\cf0 enableEnvelope2();\
|
||||
\cf3 void\cf0 disableEnvelope2();\
|
||||
\
|
||||
\cf3 void\cf0 setEnv2Attack(uint8_t att); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv2Decay(uint8_t dec); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv2Sustain(uint8_t sus); \cf2 // 0 - 127 \cf0 \
|
||||
\cf3 void\cf0 setEnv2Release(uint8_t rel); \cf2 // 0 - 127 \cf0 \
|
||||
\
|
||||
\
|
||||
\cf3 void\cf0 getPreset(uint8_t p); \cf2 // 0 - 47, 0 to 15 are user presets on EEPROM\
|
||||
// 16 to 47 are \'93factory presets\'94\cf0 \
|
||||
\cf3 void\cf0 savePreset(uint8_t p); \cf2 // 0 - 15, saves current instrument to EEPROM \cf0 \
|
||||
\cf3 void\cf0 sendInstrument(); \cf2 // send current instrument via MIDI as controller messages\cf0 \
|
||||
\cf2 \page //synth parameters as MIDI controller numbers\cf0 \
|
||||
\cf2 //synth functions and parameters as MIDI controller numbers\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 PRESET_SAVE \cf5 0\cf4 \
|
||||
PRESET_RECALL \cf5 1\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 IS_12_BIT \cf5 3\cf4 \
|
||||
CUTOFF \cf5 4\cf4 \
|
||||
ZERO_HZ_FM \cf5 5\cf4 \
|
||||
FM_OCTAVES \cf5 6\cf4 \
|
||||
PORTAMENTO \cf5 8\cf4 \
|
||||
FILTER_TYPE \cf5 9\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 LFO1 \cf5 10\cf4 \
|
||||
SEMITONE1 \cf5 11\cf4 \
|
||||
DETUNE1 \cf5 12\cf4 \
|
||||
GAIN1 \cf5 13\cf4 \
|
||||
WAVEFORM1 \cf5 14\cf4 \
|
||||
FM1 \cf5 15\cf4 \
|
||||
FM1_OCTAVES \cf5 16\cf4 \
|
||||
FM1_SOURCE \cf5 17\cf4 \
|
||||
FM1_SHAPE \cf5 18\cf4 \
|
||||
FREQUENCY1 \cf5 19\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 LFO2 \cf5 20\cf4 \
|
||||
SEMITONE2 \cf5 21\cf4 \
|
||||
DETUNE2 \cf5 22\cf4 \
|
||||
GAIN2 \cf5 23\cf4 \
|
||||
WAVEFORM2 \cf5 24\cf4 \
|
||||
FM2 \cf5 25\cf4 \
|
||||
FM2_OCTAVES \cf5 26\cf4 \
|
||||
FM2_SOURCE \cf5 27\cf4 \
|
||||
FM2_SHAPE \cf5 28\cf4 \
|
||||
FREQUENCY2 \cf5 29\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 LFO3 \cf5 30\cf4 \
|
||||
SEMITONE3 \cf5 31\cf4 \
|
||||
DETUNE3 \cf5 32\cf4 \
|
||||
GAIN3 \cf5 33\cf4 \
|
||||
WAVEFORM3 \cf5 34\cf4 \
|
||||
FM3 \cf5 35\cf4 \
|
||||
FM3_OCTAVES \cf5 36\cf4 \
|
||||
FM3_SOURCE \cf5 37\cf4 \
|
||||
FM3_SHAPE \cf5 38\cf4 \
|
||||
FREQUENCY3 \cf5 39\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 CUTOFF_MOD_AMOUNT \cf5 70\cf4 \
|
||||
CUTOFF_SOURCE \cf5 72\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 ENV1_VELOCITY \cf5 112\cf4 \
|
||||
ENV1_ENABLE \cf5 113\cf4 \
|
||||
ENV1_ATTACK \cf5 114\cf4 \
|
||||
ENV1_DECAY \cf5 115\cf4 \
|
||||
ENV1_SUSTAIN \cf5 116\cf4 \
|
||||
ENV1_RELEASE \cf5 117\cf4 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf0 \
|
||||
\pard\tx560\pardeftab560\pardirnatural
|
||||
\cf4 ENV2_VELOCITY \cf5 122\cf4 \
|
||||
ENV2_ENABLE \cf5 123\cf4 \
|
||||
ENV2_ATTACK \cf5 124\cf4 \
|
||||
ENV2_DECAY \cf5 125\cf4 \
|
||||
ENV2_SUSTAIN \cf5 126\cf4 \
|
||||
ENV2_RELEASE \cf5 127\cf4 \
|
||||
\
|
||||
}
|
||||
73
Haarnet.h
Executable file
73
Haarnet.h
Executable file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
Haarnet.h - Friction Music library
|
||||
Copyright (c) 2013 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: Jakob Bak
|
||||
+ contact: j.bak@ciid.dk
|
||||
*/
|
||||
|
||||
#ifndef Haarnet_h // include guard
|
||||
#define Haarnet_h
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <spi4teensy3.h>
|
||||
#include "Synth.h"
|
||||
#include "Sequencer.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// THE BELOW FUNCTIONS ARE NEEDED FOR THE MUSIC PART TO RESPOND TO MIDI
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
void OnNoteOn(byte channel, byte note, byte velocity) {
|
||||
if(channel == MIDI_CHANNEL) {
|
||||
Midi.noteOn(channel, note, velocity);
|
||||
}
|
||||
channel = channel - 1;
|
||||
MIDI_SERIAL.write(byte(0x90 | (channel & 0x0F)));
|
||||
MIDI_SERIAL.write(0x7F & note);
|
||||
MIDI_SERIAL.write(0x7F & velocity);
|
||||
}
|
||||
|
||||
void OnNoteOff(byte channel, byte note, byte velocity) {
|
||||
if(channel == MIDI_CHANNEL) {
|
||||
Midi.noteOff(channel, note, velocity);
|
||||
}
|
||||
channel = channel - 1;
|
||||
MIDI_SERIAL.write(byte(0x80 | (channel & 0x0F)));
|
||||
MIDI_SERIAL.write(0x7F & note);
|
||||
MIDI_SERIAL.write(0x7F & velocity);
|
||||
}
|
||||
|
||||
void OnControlChange(byte channel, byte control, byte value) {
|
||||
if(channel == MIDI_CHANNEL) {
|
||||
Midi.controller(channel, control, value);
|
||||
}
|
||||
channel = channel - 1;
|
||||
MIDI_SERIAL.write(byte(0xB0 | (channel & 0x0F)));
|
||||
MIDI_SERIAL.write(0x7F & control);
|
||||
MIDI_SERIAL.write(0x7F & value);
|
||||
}
|
||||
|
||||
|
||||
//usbMIDI.setHandleNoteOff(OnNoteOff);
|
||||
//usbMIDI.setHandleNoteOn(OnNoteOn);
|
||||
//usbMIDI.setHandleControlChange(OnControlChange);
|
||||
|
||||
|
||||
|
||||
#endif // close guard Haarnet_h
|
||||
140
HaarnetExtensionFlute.cpp
Executable file
140
HaarnetExtensionFlute.cpp
Executable file
@ -0,0 +1,140 @@
|
||||
/*
|
||||
HaarnetExtensionFlute.h - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#include "HaarnetExtensionFlute.h"
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_TCS34725.h>
|
||||
|
||||
FluteExt FluteEx;
|
||||
|
||||
|
||||
FluteExt::FluteExt() {
|
||||
|
||||
}
|
||||
|
||||
void FluteExt::init(){
|
||||
|
||||
tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
|
||||
|
||||
pinMode(pin_slider, INPUT_PULLUP);
|
||||
pinMode(pin_push_button, INPUT_PULLUP);
|
||||
pinMode(pin_LED_A, OUTPUT);
|
||||
pinMode(pin_LED_B, OUTPUT);
|
||||
pinMode(pin_lux_0, INPUT);
|
||||
pinMode(pin_lux_1, INPUT);
|
||||
pinMode(pin_mic, INPUT);
|
||||
|
||||
// set internal pulldown resistors on bodyswitches
|
||||
*portConfigRegister(pin_bodyswitch_A) = PORT_PCR_MUX(1) | PORT_PCR_PE;
|
||||
*portConfigRegister(pin_bodyswitch_B) = PORT_PCR_MUX(1) | PORT_PCR_PE;
|
||||
*portConfigRegister(pin_bodyswitch_C) = PORT_PCR_MUX(1) | PORT_PCR_PE;
|
||||
|
||||
tcs.begin();
|
||||
|
||||
}
|
||||
|
||||
int FluteExt::sample_mic(int nsamples){
|
||||
|
||||
// we are feeding the mic 5V, but sampling it to 3,3V
|
||||
// audio waves are centered around 2,5V (not 3,3V/2)
|
||||
// this means readings are centered around 1023*2,5/3,3=775, not 512 which would be the normal
|
||||
|
||||
int totalVol = 0;
|
||||
int samplesDone = 0;
|
||||
while (samplesDone < nsamples) {
|
||||
|
||||
int thisReading = analogRead(pin_mic)-775;
|
||||
|
||||
if (thisReading < 0) {
|
||||
totalVol = totalVol + abs(thisReading);
|
||||
samplesDone++;
|
||||
}
|
||||
//delayMicroseconds(5);
|
||||
}
|
||||
|
||||
_mic = totalVol/nsamples;
|
||||
|
||||
return _mic;
|
||||
|
||||
}
|
||||
|
||||
int FluteExt::touchA(){
|
||||
_tA = analogRead(pin_bodyswitch_A);
|
||||
return _tA;
|
||||
}
|
||||
|
||||
int FluteExt::touchB(){
|
||||
_tB = analogRead(pin_bodyswitch_B);
|
||||
return _tB;
|
||||
}
|
||||
|
||||
int FluteExt::touchC(){
|
||||
_tC = analogRead(pin_bodyswitch_C);
|
||||
return _tC;
|
||||
}
|
||||
|
||||
void FluteExt::RGB(int* rgbc) {
|
||||
|
||||
tcs.setInterrupt(false); // turn on LED
|
||||
delay(60); // takes 50ms to read
|
||||
tcs.getRawData(&_r, &_g, &_b, &_c);
|
||||
tcs.setInterrupt(true); // turn off LED
|
||||
|
||||
rgbc[0] = _r;
|
||||
rgbc[1] = _g;
|
||||
rgbc[2] = _b;
|
||||
rgbc[3] = _c;
|
||||
}
|
||||
|
||||
int FluteExt::luxA() {
|
||||
_luxA = analogRead(pin_lux_0);
|
||||
return _luxA;
|
||||
}
|
||||
|
||||
int FluteExt::luxB() {
|
||||
_luxB = analogRead(pin_lux_1);
|
||||
return _luxB;
|
||||
}
|
||||
|
||||
|
||||
bool FluteExt::push_button() {
|
||||
_pb = !digitalRead(pin_push_button);
|
||||
return _pb;
|
||||
}
|
||||
|
||||
bool FluteExt::switch_position() {
|
||||
_slider = digitalRead(pin_slider);
|
||||
return _slider;
|
||||
}
|
||||
|
||||
void FluteExt::ledA(int v) {
|
||||
_ledA = constrain(v, 0, 255);
|
||||
analogWrite(pin_LED_A, _ledA);
|
||||
}
|
||||
|
||||
void FluteExt::ledB(int v) {
|
||||
_ledB = constrain(v, 0, 255);
|
||||
analogWrite(pin_LED_B, _ledB);
|
||||
}
|
||||
79
HaarnetExtensionFlute.h
Executable file
79
HaarnetExtensionFlute.h
Executable file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
HaarnetExtensionFlute.h - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_TCS34725.h>
|
||||
|
||||
// define i/o pin
|
||||
const int pin_slider = 4;
|
||||
const int pin_LED_A = 9;
|
||||
const int pin_LED_B = 5;
|
||||
const int pin_push_button = 6;
|
||||
const int pin_bodyswitch_A = A6;
|
||||
const int pin_bodyswitch_B = A3;
|
||||
const int pin_bodyswitch_C = A7;
|
||||
const int pin_lux_0 = A0;
|
||||
const int pin_lux_1 = A1;
|
||||
const int pin_mic = A8;
|
||||
|
||||
class FluteExt {
|
||||
public:
|
||||
|
||||
FluteExt();
|
||||
|
||||
void init();
|
||||
|
||||
int sample_mic(int nsamples);
|
||||
|
||||
int touchA();
|
||||
int touchB();
|
||||
int touchC();
|
||||
|
||||
void RGB(int* rgbc);
|
||||
|
||||
int luxA();
|
||||
int luxB();
|
||||
|
||||
bool push_button();
|
||||
bool switch_position();
|
||||
|
||||
void ledA(int v);
|
||||
void ledB(int v);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
uint16_t _r, _g, _b, _c;
|
||||
int _mic, _tA, _tB, _tC, _luxA, _luxB, _ledA, _ledB;
|
||||
bool _pb, _slider;
|
||||
Adafruit_TCS34725 tcs;
|
||||
|
||||
|
||||
};
|
||||
|
||||
extern FluteExt FluteEx;
|
||||
|
||||
|
||||
120
HaarnetPresets.h
Executable file
120
HaarnetPresets.h
Executable file
@ -0,0 +1,120 @@
|
||||
// Presets for CFO Hårnet
|
||||
//
|
||||
// Presets are ordered in three Banks of 16 presets in each
|
||||
//
|
||||
// Just copy arrays into below. Each line most be 128 byte.
|
||||
|
||||
|
||||
|
||||
////////////
|
||||
// BANK A //
|
||||
////////////
|
||||
|
||||
// Preset 0
|
||||
16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 84, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 1
|
||||
17, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 95, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 2
|
||||
18, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 110, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 3
|
||||
19, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 4
|
||||
20, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 5
|
||||
21, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 6
|
||||
22, 6, 0, 0, 0, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 7
|
||||
23, 7, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 8
|
||||
24, 8, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 9
|
||||
25, 9, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 10
|
||||
26, 10, 0, 0, 17, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 11
|
||||
27, 11, 0, 0, 27, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 12
|
||||
28, 12, 0, 0, 48, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 48, 0, 64,
|
||||
// Preset 13
|
||||
29, 13, 0, 0, 64, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 14
|
||||
30, 14, 0, 0, 127, 1, 127, 0, 49, 0, 0, 67, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 15
|
||||
31, 15, 0, 0, 127, 1, 127, 0, 49, 0, 0, 79, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
|
||||
|
||||
////////////
|
||||
// BANK B //
|
||||
////////////
|
||||
|
||||
// Preset 0
|
||||
16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 84, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 1
|
||||
17, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 95, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 2
|
||||
18, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 110, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 3
|
||||
19, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 4
|
||||
20, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 5
|
||||
21, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 6
|
||||
22, 6, 0, 0, 0, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 7
|
||||
23, 7, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 8
|
||||
24, 8, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 9
|
||||
25, 9, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 10
|
||||
26, 10, 0, 0, 17, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 11
|
||||
27, 11, 0, 0, 27, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 12
|
||||
28, 12, 0, 0, 48, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 48, 0, 64,
|
||||
// Preset 13
|
||||
29, 13, 0, 0, 64, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 14
|
||||
30, 14, 0, 0, 127, 1, 127, 0, 49, 0, 0, 67, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 15
|
||||
31, 15, 0, 0, 127, 1, 127, 0, 49, 0, 0, 79, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
|
||||
|
||||
////////////
|
||||
// BANK C //
|
||||
////////////
|
||||
|
||||
// Preset 0
|
||||
16, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 84, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 1
|
||||
17, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 95, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 2
|
||||
18, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 110, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 3
|
||||
19, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 0, 0, 0, 0, 0, 0, 0, 64, 64, 127, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 4
|
||||
20, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 64, 64, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 5
|
||||
21, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 64, 64, 127, 1, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 6
|
||||
22, 6, 0, 0, 0, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 7
|
||||
23, 7, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 64, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 127, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 8
|
||||
24, 8, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 8, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 64, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 9
|
||||
25, 9, 0, 0, 9, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 10
|
||||
26, 10, 0, 0, 17, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 11
|
||||
27, 11, 0, 0, 27, 1, 127, 0, 0, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 46, 0, 64,
|
||||
// Preset 12
|
||||
28, 12, 0, 0, 48, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 48, 0, 64,
|
||||
// Preset 13
|
||||
29, 13, 0, 0, 64, 1, 0, 0, 49, 0, 0, 64, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 70, 127, 4, 0, 0, 0, 0, 0, 0, 76, 61, 127, 4, 0, 0, 2, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 14
|
||||
30, 14, 0, 0, 127, 1, 127, 0, 49, 0, 0, 67, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
// Preset 15
|
||||
31, 15, 0, 0, 127, 1, 127, 0, 49, 0, 0, 79, 64, 127, 4, 0, 0, 0, 0, 0, 0, 71, 64, 127, 4, 0, 0, 0, 0, 0, 0, 76, 64, 127, 4, 0, 0, 1, 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, 126, 0, 2, 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, 1, 12, 64, 127, 64, 0, 0, 0, 0, 0, 1, 0, 127, 0, 64,
|
||||
1958
Haarnet_v1.h
Executable file
1958
Haarnet_v1.h
Executable file
File diff suppressed because it is too large
Load Diff
1964
Haarnet_v2.h
Executable file
1964
Haarnet_v2.h
Executable file
File diff suppressed because it is too large
Load Diff
1972
Haarnet_v3.h
Executable file
1972
Haarnet_v3.h
Executable file
File diff suppressed because it is too large
Load Diff
1986
Haarnet_v4.h
Executable file
1986
Haarnet_v4.h
Executable file
File diff suppressed because it is too large
Load Diff
2158
Haarnet_v5.h
Executable file
2158
Haarnet_v5.h
Executable file
File diff suppressed because it is too large
Load Diff
2162
Haarnet_v6.h
Executable file
2162
Haarnet_v6.h
Executable file
File diff suppressed because it is too large
Load Diff
2162
Haarnet_v7.h
Executable file
2162
Haarnet_v7.h
Executable file
File diff suppressed because it is too large
Load Diff
31
Haarnet_v8.h
Executable file
31
Haarnet_v8.h
Executable file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
Haarnet.h - Friction Music library
|
||||
Copyright (c) 2013 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: Jakob Bak
|
||||
+ contact: j.bak@ciid.dk
|
||||
*/
|
||||
|
||||
#ifndef Haarnet_h // include guard
|
||||
#define Haarnet_h
|
||||
|
||||
//#include <Arduino.h>
|
||||
#include "Synth.h"
|
||||
//#include "Midi.h"
|
||||
|
||||
#endif // close guard Haarnet_h
|
||||
218
Mcp4251.cpp
Executable file
218
Mcp4251.cpp
Executable file
@ -0,0 +1,218 @@
|
||||
|
||||
// MCP4251 2-channel Digital Potentiometer
|
||||
// ww1.microchip.com/downloads/en/DeviceDoc/22059b.pdf
|
||||
|
||||
// The default SPI Control Register - SPCR = B01010000;
|
||||
// interrupt disabled,spi enabled,msb 1st,master,clk low when idle,
|
||||
// sample on leading edge of clk,system clock/4 rate (fastest).
|
||||
// Enable the digital pins 11-13 for SPI (the MOSI,MISO,SPICLK)
|
||||
#include <Mcp4251.h>
|
||||
|
||||
//---------- constructor ----------------------------------------------------
|
||||
|
||||
MCP4251::MCP4251(uint8_t slave_select_pin, float rAB_ohms)
|
||||
{
|
||||
setup_ss(slave_select_pin);
|
||||
setup_resistance(rAB_ohms, 0.0); //rW_ohms_typical);
|
||||
}
|
||||
|
||||
MCP4251::MCP4251(uint8_t slave_select_pin, float rAB_ohms, float rW_ohms)
|
||||
{
|
||||
setup_ss(slave_select_pin);
|
||||
setup_resistance(rAB_ohms, rW_ohms);
|
||||
}
|
||||
|
||||
//------------------ protected -----------------------------------------------
|
||||
|
||||
uint16_t MCP4251::byte2uint16(byte high_byte, byte low_byte)
|
||||
{
|
||||
return (uint16_t)high_byte<<8 | (uint16_t)low_byte;
|
||||
}
|
||||
|
||||
byte MCP4251::uint16_high_byte(uint16_t uint16)
|
||||
{
|
||||
return (byte)(uint16>>8);
|
||||
}
|
||||
|
||||
byte MCP4251::uint16_low_byte(uint16_t uint16)
|
||||
{
|
||||
return (byte)(uint16 & 0x00FF);
|
||||
}
|
||||
|
||||
void MCP4251::setup_ss(uint8_t slave_select_pin)
|
||||
{
|
||||
// Set slave select (Chip Select) pin for SPI Bus, and start high (disabled)
|
||||
::pinMode(slave_select_pin,OUTPUT);
|
||||
::digitalWrite(slave_select_pin,HIGH);
|
||||
this->slave_select_pin = slave_select_pin;
|
||||
}
|
||||
|
||||
void MCP4251::setup_resistance(float rAB_ohms, float rW_ohms)
|
||||
{
|
||||
this->rAB_ohms = rAB_ohms;
|
||||
this->rW_ohms = rW_ohms;
|
||||
this->rAW_ohms_max = rAB_ohms - rW_ohms;
|
||||
this->scale = rAW_ohms_max;
|
||||
}
|
||||
|
||||
float MCP4251::step_increment()
|
||||
{
|
||||
return (rAW_ohms_max - rW_ohms) / resolution;
|
||||
}
|
||||
|
||||
unsigned int MCP4251::ohms2wiper_pos(float ohms)
|
||||
{
|
||||
if(ohms <= 0.0)
|
||||
return 0;
|
||||
else if(scale != rAW_ohms_max)
|
||||
ohms = ohms * rAW_ohms_max / scale;
|
||||
|
||||
return (unsigned int)((ohms - rW_ohms) / step_increment() ) + 0.5;
|
||||
}
|
||||
|
||||
float MCP4251::wiper_pos2ohms(unsigned int wiper_pos)
|
||||
{
|
||||
float ohms = rW_ohms + ( (float)wiper_pos * step_increment() );
|
||||
|
||||
if(scale != rAW_ohms_max)
|
||||
ohms = ohms * scale / rAW_ohms_max;
|
||||
|
||||
return ohms;
|
||||
}
|
||||
|
||||
void MCP4251::write(byte cmd_byte, byte data_byte)
|
||||
{
|
||||
cmd_byte |= kCMD_WRITE;
|
||||
::digitalWriteFast(slave_select_pin, LOW);
|
||||
// byte high_byte = spi4teensy3::send(cmd_byte);
|
||||
// byte low_byte = spi4teensy3::send(data_byte);
|
||||
spi4teensy3::send(cmd_byte);
|
||||
spi4teensy3::send(data_byte);
|
||||
::digitalWriteFast(slave_select_pin, HIGH);
|
||||
//bool result = ~low_byte;
|
||||
}
|
||||
|
||||
uint16_t MCP4251::read(byte cmd_byte)
|
||||
{
|
||||
cmd_byte |= kCMD_READ;
|
||||
::digitalWrite(slave_select_pin, LOW);
|
||||
// byte high_byte = spi4teensy3::receive(cmd_byte);
|
||||
// byte low_byte = spi4teensy3::receive(0xFF);
|
||||
spi4teensy3::send(cmd_byte);
|
||||
spi4teensy3::send(0xFF);
|
||||
::digitalWrite(slave_select_pin, HIGH);
|
||||
// return byte2uint16(high_byte, low_byte);
|
||||
}
|
||||
|
||||
void MCP4251::wiper_pos(byte pot, unsigned int wiper_pos)
|
||||
{
|
||||
byte cmd_byte = 0x00;
|
||||
byte data_byte = 0x00;
|
||||
cmd_byte |= pot;
|
||||
|
||||
// Calculate the 9-bit data value to send
|
||||
if(wiper_pos > 255)
|
||||
cmd_byte |= B00000001; // Table 5-1 (page 36)
|
||||
else
|
||||
data_byte = (byte)(wiper_pos & 0x00FF);
|
||||
|
||||
write(cmd_byte|kADR_VOLATILE, data_byte);
|
||||
|
||||
if(non_volatile)
|
||||
{
|
||||
// EEPROM write cycles take 4ms each. So we block with delay(5); after any NV Writes
|
||||
write(cmd_byte|kADR_NON_VOLATILE, data_byte);
|
||||
delay(5);
|
||||
}
|
||||
}
|
||||
|
||||
//---------- public ----------------------------------------------------
|
||||
|
||||
float MCP4251::wiper0()
|
||||
{
|
||||
return wiper_pos2ohms( wiper0_pos() );
|
||||
}
|
||||
|
||||
float MCP4251::wiper1()
|
||||
{
|
||||
return wiper_pos2ohms( wiper1_pos() );
|
||||
}
|
||||
|
||||
unsigned int MCP4251::wiper0_pos()
|
||||
{
|
||||
return (unsigned int)( 0x01FF & this->read(kADR_WIPER0|kADR_VOLATILE) );
|
||||
}
|
||||
|
||||
unsigned int MCP4251::wiper1_pos()
|
||||
{
|
||||
return 0x01FF & this->read(kADR_WIPER1|kADR_VOLATILE);
|
||||
}
|
||||
|
||||
void MCP4251::wiper0(float ohms)
|
||||
{
|
||||
wiper0_pos( ohms2wiper_pos(ohms) );
|
||||
}
|
||||
|
||||
void MCP4251::wiper1(float ohms)
|
||||
{
|
||||
wiper1_pos( ohms2wiper_pos(ohms) );
|
||||
}
|
||||
|
||||
void MCP4251::wiper0_pos(unsigned int wiper_pos)
|
||||
{
|
||||
this->wiper_pos(kADR_WIPER0, wiper_pos);
|
||||
}
|
||||
|
||||
void MCP4251::wiper1_pos(unsigned int wiper_pos)
|
||||
{
|
||||
this->wiper_pos(kADR_WIPER1, wiper_pos);
|
||||
}
|
||||
|
||||
|
||||
// // Not implemented
|
||||
// bool MCP4251::pot0_connected(bool terminal_a, bool wiper, bool terminal_b)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// bool MCP4251::pot1_connected(bool terminal_a, bool wiper, bool terminal_b)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// void MCP4251::pot0_connect(bool terminal_a, bool wiper, bool terminal_b)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// void MCP4251::pot1_connect(bool terminal_a, bool wiper, bool terminal_b)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// bool MCP4251::pot0_shutdown()
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// bool MCP4251::pot1_shutdown()
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// void MCP4251::pot0_shutdown(bool shutdown)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// void MCP4251::pot1_shutdown(bool shutdown)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// bool MCP4251::hw_shutdown()
|
||||
// {
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
99
Mcp4251.h
Executable file
99
Mcp4251.h
Executable file
@ -0,0 +1,99 @@
|
||||
|
||||
// MCP4251 2-channel Digital Potentiometer
|
||||
// ww1.microchip.com/downloads/en/DeviceDoc/22059b.pdf
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <spi4teensy3.h>
|
||||
|
||||
#ifndef Mcp4251_h
|
||||
#define Mcp4251_h
|
||||
|
||||
class MCP4251
|
||||
{
|
||||
public:
|
||||
// You must at least specify the slave select pin and the rated resistance
|
||||
MCP4251(uint8_t slave_select, float rAB_ohms);
|
||||
|
||||
// If you have measured wiper resistance, rW
|
||||
MCP4251(uint8_t slave_select, float rAB_ohms, float rW_ohms);
|
||||
|
||||
// The resistance scaling, defaults to rAB_ohms
|
||||
float scale;
|
||||
|
||||
// Read potentiometer values
|
||||
float wiper0();
|
||||
float wiper1();
|
||||
unsigned int wiper0_pos();
|
||||
unsigned int wiper1_pos();
|
||||
|
||||
// Write potentiometer values
|
||||
void wiper0(float ohms);
|
||||
void wiper1(float ohms);
|
||||
|
||||
void wiper0_pos(unsigned int wiper_pos);
|
||||
void wiper1_pos(unsigned int wiper_pos);
|
||||
|
||||
// // Not implemented
|
||||
// // Connect / disconnect potentiometers
|
||||
// bool pot0_connected(bool terminal_a, bool wiper, bool terminal_b);
|
||||
// bool pot1_connected(bool terminal_a, bool wiper, bool terminal_b);
|
||||
// void pot0_connect(bool terminal_a, bool wiper, bool terminal_b);
|
||||
// void pot1_connect(bool terminal_a, bool wiper, bool terminal_b);
|
||||
//
|
||||
// bool pot0_shutdown();
|
||||
// bool pot1_shutdown();
|
||||
// void pot0_shutdown(bool shutdown);
|
||||
// void pot1_shutdown(bool shutdown);
|
||||
//
|
||||
// bool hw_shutdown();
|
||||
|
||||
protected:
|
||||
// const static float rW_ohms_typical = 117.50f;
|
||||
const static unsigned int resolution_7bit = 128;
|
||||
const static unsigned int resolution_8bit = 256;
|
||||
|
||||
// Other devices can be configured below vv as per the device numbering scheme:
|
||||
// MCP4N-- N=1 single pot, N=2 dual pot
|
||||
// MCP4--N N=1 potentiometer, N=2 rheostat
|
||||
// MCP4-N- N=3 7-bit volatile, N=4 7-bit non-volatile, N=5 8-bit volatile, N=6 8-bit non-volatile
|
||||
const static bool non_volatile = false;
|
||||
const static unsigned int resolution = resolution_8bit;
|
||||
|
||||
float rW_ohms;
|
||||
float rAB_ohms;
|
||||
float rAW_ohms_max;
|
||||
|
||||
uint8_t slave_select_pin;
|
||||
|
||||
const static uint8_t kADR_WIPER0 = B00000000;
|
||||
const static uint8_t kADR_WIPER1 = B00010000;
|
||||
|
||||
const static uint8_t kCMD_READ = B00001100;
|
||||
const static uint8_t kCMD_WRITE = B00000000;
|
||||
|
||||
const static uint8_t kADR_VOLATILE = B00000000;
|
||||
const static uint8_t kADR_NON_VOLATILE = B00100000;
|
||||
|
||||
const static uint8_t kTCON_REGISTER = B01000000;
|
||||
const static uint8_t kSTATUS_REGISTER = B01010000;
|
||||
|
||||
uint16_t byte2uint16(byte high_byte, byte low_byte);
|
||||
byte uint16_high_byte(uint16_t uint16);
|
||||
byte uint16_low_byte(uint16_t uint16);
|
||||
|
||||
void setup_ss(uint8_t slave_select_pin);
|
||||
void setup_resistance(float rAB_ohms, float rW_ohms);
|
||||
|
||||
float step_increment();
|
||||
unsigned int ohms2wiper_pos(float ohms);
|
||||
float wiper_pos2ohms(unsigned int wiper_pos);
|
||||
|
||||
uint16_t read(byte cmd_byte);
|
||||
void write(byte cmd_byte, byte data_byte);
|
||||
void wiper_pos(byte pot, unsigned int wiper_pos);
|
||||
};
|
||||
|
||||
#endif // Mcp4251_h
|
||||
|
||||
|
||||
|
||||
46
Sampler.cpp
Executable file
46
Sampler.cpp
Executable file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
Sampler.cpp - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#include "Sampler.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
|
||||
Sampler::Sampler(int len) {
|
||||
_samples = (int*)malloc(len * 2);
|
||||
_len = len;
|
||||
memset(_samples, 0, len * 2);
|
||||
}
|
||||
|
||||
void Sampler::record(int in) {
|
||||
_samples[_indx++] = in;
|
||||
if(_indx > _len) _indx = 0;
|
||||
}
|
||||
|
||||
int Sampler::next() {
|
||||
if(_indx > _len) _indx = 0;
|
||||
return _samples[_indx++];
|
||||
}
|
||||
|
||||
void Sampler::reset() {
|
||||
_indx = 0;
|
||||
}
|
||||
39
Sampler.h
Executable file
39
Sampler.h
Executable file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
Sampler.h - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
class Sampler {
|
||||
|
||||
public:
|
||||
Sampler(int len);
|
||||
|
||||
void record(int in);
|
||||
int next();
|
||||
void reset();
|
||||
|
||||
int* _samples;
|
||||
int _indx;
|
||||
int _len;
|
||||
};
|
||||
184
Sequencer.cpp
Executable file
184
Sequencer.cpp
Executable file
@ -0,0 +1,184 @@
|
||||
/*
|
||||
Haarnet.h - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#include "Sequencer.h"
|
||||
#include <spi4teensy3.h>
|
||||
#include <Arduino.h>
|
||||
|
||||
MSequencer Sequencer;
|
||||
|
||||
IntervalTimer sequencerTimer;
|
||||
|
||||
boolean sequencerTimerRunning = false;
|
||||
|
||||
#ifndef SAMPLE_RATE
|
||||
unsigned int sampleRate = 48000;
|
||||
#endif
|
||||
|
||||
void sequencer_isr(void)
|
||||
{
|
||||
Sequencer.clockStep++;
|
||||
}
|
||||
|
||||
|
||||
void MSequencer::init(int bpm)
|
||||
{
|
||||
setbpm(bpm);
|
||||
for(int i = 0; i < MAX_SEQ; i++) {
|
||||
_sequences[i] = NULL;
|
||||
}
|
||||
if(!sequencerTimerRunning) {
|
||||
sequencerTimerRunning = true;
|
||||
clockStep = 0;
|
||||
sequencerTimer.begin(sequencer_isr, 2500000.0f / _bpm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void MSequencer::update()
|
||||
{
|
||||
for(int i = 0; i < MAX_SEQ; i++) {
|
||||
seq* s = _sequences[i];
|
||||
if(s == NULL || s->_stopped) continue;
|
||||
if(clockStep >= s -> step) {
|
||||
//boom!
|
||||
s->_callback(); // add to queue???
|
||||
s->step += s -> _subdiv;
|
||||
Serial.println(s -> step);
|
||||
}
|
||||
}
|
||||
// queue goes here
|
||||
}
|
||||
|
||||
int MSequencer::newSequence(func_cb cb, SUBDIV subdiv)
|
||||
{
|
||||
int j = -1;
|
||||
for(int i = 0; i < MAX_SEQ; i++) {
|
||||
if(_sequences[i] == NULL) j = i;
|
||||
}
|
||||
|
||||
if(j >= 0) {
|
||||
seq* s = new seq(j, cb, subdiv);
|
||||
_sequences[j] = s;
|
||||
Serial.print("Created sequence ");
|
||||
Serial.println(j);
|
||||
}
|
||||
|
||||
return j;
|
||||
}
|
||||
|
||||
bool MSequencer::stopSequence(int index)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ) {
|
||||
_sequences[index]->_stopped = true;
|
||||
// _sequences[index]-> step = 0;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MSequencer::startSequence(int index)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ && _sequences[index] != NULL) {
|
||||
_sequences[index]->_stopped = false;
|
||||
_sequences[index]-> step = 0;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void MSequencer::setbpm(int bpm)
|
||||
{
|
||||
_bpm = bpm;
|
||||
_bpmInClockSteps = _bpm * 24;
|
||||
}
|
||||
|
||||
int MSequencer::getbpm()
|
||||
{
|
||||
return _bpm;
|
||||
}
|
||||
|
||||
bool MSequencer::setSequenceSubdiv(int index, SUBDIV subdiv)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ && _sequences[index] != NULL) {
|
||||
_sequences[index]->setsubdiv(subdiv);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int MSequencer::getSequenceSubdiv(int index)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ && _sequences[index] != NULL) {
|
||||
return _sequences[index]->getsubdiv();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool MSequencer::setCallback(int index, func_cb cb)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ && _sequences[index] != NULL) {
|
||||
_sequences[index]->callback(cb);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
func_cb MSequencer::getCallback(int index)
|
||||
{
|
||||
if(index >= 0 && index < MAX_SEQ && _sequences[index] != NULL) {
|
||||
return _sequences[index]->_callback;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
// seq
|
||||
|
||||
seq::seq(int id, func_cb cb, SUBDIV subdiv) : _id(id), _stopped(true)
|
||||
{
|
||||
setsubdiv(subdiv);
|
||||
callback(cb);
|
||||
}
|
||||
|
||||
void seq::setsubdiv(SUBDIV v)
|
||||
{
|
||||
_subdiv = v;
|
||||
|
||||
}
|
||||
|
||||
SUBDIV seq::getsubdiv()
|
||||
{
|
||||
return _subdiv;
|
||||
}
|
||||
|
||||
void seq::callback(func_cb cb)
|
||||
{
|
||||
_callback = cb;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
107
Sequencer.h
Executable file
107
Sequencer.h
Executable file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
Sequencer.h - Friction Music library
|
||||
Copyright (c) 2014 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: gauthiier
|
||||
+ contact: d@gauthiier.info
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MAX_SEQ 3
|
||||
|
||||
enum SUBDIV {
|
||||
NOTE_1 = 96,
|
||||
NOTE_2 = 48,
|
||||
NOTE_3 = 32,
|
||||
NOTE_4 = 24,
|
||||
NOTE_6 = 16,
|
||||
NOTE_8 = 12,
|
||||
NOTE_12 = 8,
|
||||
NOTE_16 = 6,
|
||||
NOTE_24 = 4,
|
||||
NOTE_32 = 3,
|
||||
NOTE_48 = 2,
|
||||
NOTE_96 = 1
|
||||
};
|
||||
|
||||
typedef void (*func_cb)(void);
|
||||
|
||||
class seq;
|
||||
|
||||
class MSequencer {
|
||||
public:
|
||||
void init(int bpm);
|
||||
void update();
|
||||
|
||||
int newSequence(func_cb cb, SUBDIV subdiv);
|
||||
|
||||
bool stopSequence(int index);
|
||||
bool startSequence(int index);
|
||||
|
||||
bool setSequenceSubdiv(int index, SUBDIV subdiv);
|
||||
|
||||
int getSequenceSubdiv(int index);
|
||||
|
||||
bool setCallback(int index, func_cb cb);
|
||||
func_cb getCallback(int index);
|
||||
|
||||
unsigned long clockStep;
|
||||
|
||||
void setbpm(int v);
|
||||
int getbpm();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
seq* _sequences[MAX_SEQ];
|
||||
int _bpm;
|
||||
int _bpmInClockSteps;
|
||||
|
||||
|
||||
};
|
||||
|
||||
class seq {
|
||||
|
||||
friend class MSequencer;
|
||||
|
||||
private:
|
||||
|
||||
seq(int id, func_cb cb, SUBDIV subdiv);
|
||||
|
||||
int _stepsize;
|
||||
SUBDIV _subdiv;
|
||||
int _tempo;
|
||||
int _id;
|
||||
|
||||
unsigned long lastStep;
|
||||
unsigned long stepNum;
|
||||
unsigned long step;
|
||||
|
||||
void setsubdiv(SUBDIV v);
|
||||
SUBDIV getsubdiv();
|
||||
|
||||
bool _stopped;
|
||||
|
||||
void callback(func_cb cb);
|
||||
|
||||
func_cb _callback;
|
||||
};
|
||||
|
||||
|
||||
extern MSequencer Sequencer;
|
||||
500
Synth.h
Executable file
500
Synth.h
Executable file
@ -0,0 +1,500 @@
|
||||
/*
|
||||
Synth.h - Friction Music library
|
||||
Copyright (c) 2013 Science Friction.
|
||||
All right reserved.
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your optionosc1modShape_ptr) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
+ author: Jakob Bak
|
||||
+ contact: j.bak@ciid.dk
|
||||
*/
|
||||
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <spi4teensy3.h>
|
||||
#include "MCP4251.h"
|
||||
#include <EEPROM.h>
|
||||
|
||||
#ifndef Synth_h // include guard
|
||||
#define Synth_h
|
||||
|
||||
// Useful bit constants
|
||||
#define BIT_8 256
|
||||
#define BIT_12 4096
|
||||
#define BIT_16 65536
|
||||
#define BIT_20 1048576
|
||||
#define BIT_24 16777216
|
||||
#define BIT_28 268435456
|
||||
#define BIT_32 4294967296
|
||||
|
||||
// Constants for bitvalues within the TCTRL1 register
|
||||
#define TIE 2
|
||||
#define TEN 1
|
||||
#define TIF 1
|
||||
|
||||
// Constants for bitvalues for DAC output A and B
|
||||
#define DAC_A 0
|
||||
#define DAC_B 1
|
||||
// Constants for positions for control bits in dacSettings
|
||||
#define DAC_AB 7
|
||||
#define DAC_BUF 6
|
||||
#define DAC_GA 5
|
||||
#define DAC_SHDN 4
|
||||
|
||||
// Output pin for cutoff filter on Monotron
|
||||
#define CUTOFF_PIN 3
|
||||
|
||||
// Multiplexer Pins (CD4052)
|
||||
#define MUX_A 8
|
||||
#define MUX_B 7
|
||||
#define LOWPASS 0
|
||||
#define HIGHPASS 1
|
||||
#define BANDPASS 2
|
||||
#define NOTCH 3
|
||||
|
||||
// SPI pins
|
||||
#define MCP4251_CS 9 // Digital 9
|
||||
#define DAC_CS 10 // Digital 10
|
||||
|
||||
#define SAMPLE_RATE 48000
|
||||
#define CPU_FREQ 96 // in MHz
|
||||
#define PERIOD_MAX BIT_32
|
||||
|
||||
// Specify highest and lowest pitch in Hz
|
||||
#define LOW_PITCH 55
|
||||
#define HIGH_PITCH 1000
|
||||
|
||||
// Shortnames for waveforms
|
||||
#define SINE 0
|
||||
#define SQUARE 1
|
||||
#define PULSE 2
|
||||
#define TRIANGLE 3
|
||||
#define SAW 4
|
||||
#define FUZZ 5
|
||||
#define DIGI1 6
|
||||
#define DIGI2 7
|
||||
#define DIGI3 8
|
||||
#define DIGI4 9
|
||||
#define NOISE 10
|
||||
#define DIGI6 11
|
||||
#define TAN1 12
|
||||
#define TAN2 13
|
||||
#define TAN3 14
|
||||
#define TAN4 15
|
||||
|
||||
// Maximum possible value for amplification envelope in audio code
|
||||
#define MAX_ENV_GAIN 65535
|
||||
#define MIN_ENV_GAIN -65535
|
||||
|
||||
// MIDI specific constants
|
||||
|
||||
#define MIDI_SERIAL Serial1
|
||||
#define MIDI_THROUGH true
|
||||
|
||||
//#ifndef MIDI_CHANNEL
|
||||
// #define MIDI_CHANNEL 2
|
||||
//#elif (MIDI_CHANNEL > 0)&&(MIDI_CHANNEL < 17)
|
||||
//#else
|
||||
// #error MIDI_CHANNEL should be between 1 - 16
|
||||
//#endif
|
||||
|
||||
// parameters for modulation
|
||||
#define MOD_FULL 0
|
||||
#define MOD_ENV1 1
|
||||
#define MOD_ENV2 2
|
||||
//#define MOD_ENV0 9
|
||||
#define MOD_OSC1 3
|
||||
#define MOD_OSC2 4
|
||||
#define MOD_OSC3 5
|
||||
|
||||
// parameters for presets || the two parameters below should multiply to 2048.
|
||||
#define MAX_PRESETS 16
|
||||
#define PRESET_SIZE 128
|
||||
|
||||
//synth functions and parameters as MIDI controller numbers
|
||||
#define PRESET_SAVE 0
|
||||
#define PRESET_RECALL 1
|
||||
|
||||
#define IS_12_BIT 3
|
||||
#define CUTOFF 4
|
||||
#define ZERO_HZ_FM 5
|
||||
#define FM_OCTAVES 6
|
||||
#define RESONANCE 7
|
||||
#define PORTAMENTO 8
|
||||
#define FILTER_TYPE 9
|
||||
|
||||
#define LFO1 10
|
||||
#define SEMITONE1 11
|
||||
#define DETUNE1 12
|
||||
#define GAIN1 13
|
||||
#define WAVEFORM1 14
|
||||
#define FM1 15
|
||||
#define FM1_OCTAVES 16
|
||||
#define FM1_SOURCE 17
|
||||
#define FM1_SHAPE 18
|
||||
#define FREQUENCY1 19
|
||||
|
||||
#define LFO2 20
|
||||
#define SEMITONE2 21
|
||||
#define DETUNE2 22
|
||||
#define GAIN2 23
|
||||
#define WAVEFORM2 24
|
||||
#define FM2 25
|
||||
#define FM2_OCTAVES 26
|
||||
#define FM2_SOURCE 27
|
||||
#define FM2_SHAPE 28
|
||||
#define FREQUENCY2 29
|
||||
|
||||
#define LFO3 30
|
||||
#define SEMITONE3 31
|
||||
#define DETUNE3 32
|
||||
#define GAIN3 33
|
||||
#define WAVEFORM3 34
|
||||
#define FM3 35
|
||||
#define FM3_OCTAVES 36
|
||||
#define FM3_SOURCE 37
|
||||
#define FM3_SHAPE 38
|
||||
#define FREQUENCY3 39
|
||||
|
||||
#define CUTOFF_MOD_AMOUNT 70
|
||||
#define CUTOFF_MOD_DIRECTION 71
|
||||
#define CUTOFF_SOURCE 72
|
||||
#define CUTOFF_SHAPE 73
|
||||
#define RESONANCE_MOD_AMOUNT 74
|
||||
#define RESONANCE_MOD_DIRECTION 75
|
||||
#define RESONANCE_SOURCE 76
|
||||
#define RESONANCE_SHAPE 77
|
||||
|
||||
#define SEQ_WRITE_POSITION 80
|
||||
#define SEQ_WRITE_VALUE 81
|
||||
#define SEQ_START 82
|
||||
#define SEQ_STOP 83
|
||||
#define SEQ_PAUSE 84
|
||||
#define SEQ_JUMP_POSITION 85
|
||||
#define SEQ_BPM 86
|
||||
#define SEQ_SYNC 87
|
||||
#define SEQ_ON 88
|
||||
|
||||
#define ENV0_VELOCITY 102
|
||||
#define ENV0_ENABLE 103
|
||||
#define ENV0_ATTACK 104
|
||||
#define ENV0_DECAY 105
|
||||
#define ENV0_SUSTAIN 106
|
||||
#define ENV0_RELEASE 107
|
||||
|
||||
#define ENV1_VELOCITY 112
|
||||
#define ENV1_ENABLE 113
|
||||
#define ENV1_ATTACK 114
|
||||
#define ENV1_DECAY 115
|
||||
#define ENV1_SUSTAIN 116
|
||||
#define ENV1_RELEASE 117
|
||||
|
||||
#define ENV2_VELOCITY 122
|
||||
#define ENV2_ENABLE 123
|
||||
#define ENV2_ATTACK 124
|
||||
#define ENV2_DECAY 125
|
||||
#define ENV2_SUSTAIN 126
|
||||
#define ENV2_RELEASE 127
|
||||
|
||||
|
||||
// MMusic class for handling sound engine
|
||||
|
||||
class MMusic {
|
||||
public:
|
||||
|
||||
// INITIALIZER
|
||||
void init();
|
||||
void spi_setup();
|
||||
void set12bit(bool b);
|
||||
bool is12bit;
|
||||
|
||||
// PRESETS
|
||||
void getPreset(uint8_t p);
|
||||
void dumpAllPresets();
|
||||
void getRandomizedPreset(uint8_t p, uint8_t r);
|
||||
void savePreset(uint8_t p);
|
||||
void sendInstrument();
|
||||
void loadAllPresets();
|
||||
|
||||
// AUDIO INTERRUPT SERVICE ROUTINE
|
||||
void synthInterrupt8bit();
|
||||
void synthInterrupt8bitFM();
|
||||
void synthInterrupt12bitSine();
|
||||
void synthInterrupt12bitSineFM();
|
||||
void envelope1();
|
||||
void envelope2();
|
||||
void amplifier();
|
||||
void sendToDAC(); // sending both sound and cutoff
|
||||
void sendSampleToDAC(); // sending only sound
|
||||
void output2T3DAC(); // sending sample to Teensy3.1 DAC on pin 14
|
||||
|
||||
// FILTER FUNCTIONS
|
||||
void filter();
|
||||
void setCutoff(int32_t c);
|
||||
void setResonance(uint8_t res);
|
||||
// void setResonance(int32_t res);
|
||||
void setFilterType(uint8_t type);
|
||||
void setCutoffModAmount(int32_t amount);
|
||||
void setCutoffModDirection(int32_t direction);
|
||||
void setCutoffModSource(uint8_t source);
|
||||
void setResonanceModSource(uint8_t source);
|
||||
void setCutoffModShape(uint8_t shape);
|
||||
void setResonanceModShape(uint8_t shape);
|
||||
|
||||
|
||||
// FREQUENCY AND DETUNE FUNCTIONS
|
||||
void setFrequency(float frequency);
|
||||
void setFrequency1(float frequency1);
|
||||
void setFrequency2(float frequency2);
|
||||
void setFrequency3(float frequency3);
|
||||
void setSemitone1(int8_t semi);
|
||||
void setSemitone2(int8_t semi);
|
||||
void setSemitone3(int8_t semi);
|
||||
void setDetune(float detune);
|
||||
void setDetune1(float detune);
|
||||
void setDetune2(float detune);
|
||||
void setDetune3(float detune);
|
||||
void setOsc1LFO(bool lfo);
|
||||
void setOsc2LFO(bool lfo);
|
||||
void setOsc3LFO(bool lfo);
|
||||
void setFM1(uint8_t fm);
|
||||
void setFM2(uint8_t fm);
|
||||
void setFM3(uint8_t fm);
|
||||
void setFMoctaves(uint8_t octs); // THIS SHOULD PROBABLY BE CALLED SOMETHING ELSE
|
||||
void setFM1octaves(uint8_t octs);
|
||||
void setFM2octaves(uint8_t octs);
|
||||
void setFM3octaves(uint8_t octs);
|
||||
void setFM1Source(uint8_t source);
|
||||
void setFM2Source(uint8_t source);
|
||||
void setFM3Source(uint8_t source);
|
||||
void setFM1Shape(uint8_t shape);
|
||||
void setFM2Shape(uint8_t shape);
|
||||
void setFM3Shape(uint8_t shape);
|
||||
void fmToZeroHertz(bool); // THIS SHOULD PROBABLY BE CALLED SOMETHING ELSE
|
||||
void pitchBend(float b); // NOT IMPLEMENTED
|
||||
void setPortamento(int32_t port);
|
||||
|
||||
// WAVEFORM FUNCTIONS
|
||||
void setWaveform(uint16_t waveForm); // JUST FOR 8bit WAVEFORMS
|
||||
void setWaveform1(uint16_t waveForm); //
|
||||
void setWaveform2(uint16_t waveForm); //
|
||||
void setWaveform3(uint16_t waveForm); //
|
||||
|
||||
// GAIN FUNCTIONS
|
||||
void setGain(float value); // 0.0 - 1.0
|
||||
void setGain1(float value); // 0.0 - 1.0
|
||||
void setGain2(float value); // 0.0 - 1.0
|
||||
void setGain3(float value); // 0.0 - 1.0
|
||||
float getGain(); // 0.0 - 1.0
|
||||
float getGain1(); // 0.0 - 1.0
|
||||
float getGain2(); // 0.0 - 1.0
|
||||
float getGain3(); // 0.0 - 1.0
|
||||
|
||||
// NOTE FUNCTIONS
|
||||
void noteOn(uint8_t note, uint8_t vel); // 0 - 127
|
||||
void noteOn(uint8_t note); // 0 - 127
|
||||
void noteOff(uint8_t note); // 0 - 127
|
||||
void noteOff();
|
||||
float getNoteFrequency(uint8_t note); // 0 - 127
|
||||
|
||||
// ENVELOPE FUNCTIONS
|
||||
void enableEnvelope1();
|
||||
void disableEnvelope1();
|
||||
void setEnv1Stage(uint8_t stage1); // 0 - 4
|
||||
void setEnv1Attack(uint8_t att); // 0 - 127
|
||||
void setEnv1Decay(uint8_t dec); // 0 - 127
|
||||
void setEnv1Sustain(uint8_t sus); // 0 - 127
|
||||
void setEnv1Release(uint8_t rel); // 0 - 127
|
||||
void setEnv1VelSustain(uint8_t vel); // 0 - 127
|
||||
void setEnv1VelPeak(uint8_t vel); // 0 - 127
|
||||
|
||||
void enableEnvelope2();
|
||||
void disableEnvelope2();
|
||||
void setEnv2Stage(uint8_t stage); // 0 - 4
|
||||
void setEnv2Attack(uint8_t att); // 0 - 127
|
||||
void setEnv2Decay(uint8_t dec); // 0 - 127
|
||||
void setEnv2Sustain(uint8_t sus); // 0 - 127
|
||||
void setEnv2Release(uint8_t rel); // 0 - 127
|
||||
void setEnv2VelSustain(uint8_t vel); // 0 - 127
|
||||
void setEnv2VelPeak(uint8_t vel); // 0 - 127
|
||||
|
||||
bool osc1LFO;
|
||||
bool osc2LFO;
|
||||
bool osc3LFO;
|
||||
|
||||
private:
|
||||
// TIMER VARIABLES
|
||||
uint32_t sampleRate;
|
||||
|
||||
// WAVEFORM VARIABLES
|
||||
uint16_t waveForm1;
|
||||
uint16_t waveForm2;
|
||||
uint16_t waveForm3;
|
||||
uint16_t waveForm;
|
||||
bool sine;
|
||||
bool saw;
|
||||
bool square;
|
||||
|
||||
// FREQUENCY VARIABLES
|
||||
uint16_t frequency16bit;
|
||||
float frequency;
|
||||
float frequency1;
|
||||
float frequency2;
|
||||
float frequency3;
|
||||
float semi1;
|
||||
float semi2;
|
||||
float semi3;
|
||||
float detune1;
|
||||
float detune2;
|
||||
float detune3;
|
||||
float bend;
|
||||
|
||||
// OSCILLATOR VARIABLES
|
||||
int32_t period1;
|
||||
int32_t period2;
|
||||
int32_t period3;
|
||||
int32_t portamento;
|
||||
volatile int32_t dPhase1;
|
||||
volatile int32_t dPhase2;
|
||||
volatile int32_t dPhase3;
|
||||
uint32_t accumulator1;
|
||||
uint32_t accumulator2;
|
||||
uint32_t accumulator3;
|
||||
int32_t index1;
|
||||
int32_t index2;
|
||||
int32_t index3;
|
||||
int32_t fraction1;
|
||||
int32_t fraction2;
|
||||
int32_t fraction3;
|
||||
int32_t oscil1;
|
||||
int32_t oscil2;
|
||||
int32_t oscil3;
|
||||
int64_t modulator1;
|
||||
int64_t modulator2;
|
||||
int64_t modulator3;
|
||||
int32_t fullSignal;
|
||||
int32_t invertSignal;
|
||||
int32_t noSignal;
|
||||
int32_t *osc1modSource_ptr;
|
||||
int32_t *osc2modSource_ptr;
|
||||
int32_t *osc3modSource_ptr;
|
||||
int32_t *amp_modSource_ptr;
|
||||
int32_t *osc1modShape_ptr;
|
||||
int32_t *osc2modShape_ptr;
|
||||
int32_t *osc3modShape_ptr;
|
||||
int32_t *amp_modShape_ptr;
|
||||
int32_t zeroFM;
|
||||
int32_t fmAmount1;
|
||||
int32_t fmAmount2;
|
||||
int32_t fmAmount3;
|
||||
int32_t fmOctaves1;
|
||||
int32_t fmOctaves2;
|
||||
int32_t fmOctaves3;
|
||||
|
||||
int32_t gain;
|
||||
int32_t gain1;
|
||||
int32_t gain2;
|
||||
int32_t gain3;
|
||||
|
||||
// FILTER VARIABLES
|
||||
int32_t cutoff;
|
||||
int32_t resonance;
|
||||
int32_t cutoffModAmount;
|
||||
int32_t cutoffModDirection;
|
||||
int32_t *cutoffModSource_ptr;
|
||||
int32_t *resonanceModSource_ptr;
|
||||
int32_t *cutoffModShape_ptr;
|
||||
int32_t *resonanceModShape_ptr;
|
||||
|
||||
// ENVELOPE VARIABLES
|
||||
bool envelopeOn1;
|
||||
int32_t env1;
|
||||
int32_t env1Stage;
|
||||
int32_t attack1;
|
||||
int32_t decay1;
|
||||
int32_t sustain1;
|
||||
int32_t release1;
|
||||
int32_t velSustain1;
|
||||
int32_t velPeak1;
|
||||
|
||||
bool envelopeOn2;
|
||||
int32_t env2;
|
||||
int32_t env2Stage;
|
||||
int32_t attack2;
|
||||
int32_t decay2;
|
||||
int32_t sustain2;
|
||||
int32_t release2;
|
||||
int32_t velSustain2;
|
||||
int32_t velPeak2;
|
||||
|
||||
|
||||
// NOTE VARIABLE
|
||||
uint8_t notePlayed;
|
||||
|
||||
// final sample that goes to the DAC
|
||||
int64_t sample;
|
||||
|
||||
// the two bytes that go to the DAC over SPI for VCF and VCA
|
||||
volatile uint8_t dacSPIA0;
|
||||
volatile uint8_t dacSPIA1;
|
||||
volatile uint8_t dacSPIB0;
|
||||
volatile uint8_t dacSPIB1;
|
||||
volatile uint8_t dacSetA;
|
||||
volatile uint8_t dacSetB;
|
||||
|
||||
};
|
||||
|
||||
|
||||
extern MMusic Music;
|
||||
|
||||
|
||||
// MMidi class for handling MIDI implementation
|
||||
|
||||
class MMidi {
|
||||
public:
|
||||
void init();
|
||||
void checkSerialMidi();
|
||||
void setChannel(uint8_t channel);
|
||||
|
||||
void midiHandler();
|
||||
void noteOff(uint8_t channel, uint8_t note, uint8_t vel);
|
||||
void noteOn(uint8_t channel, uint8_t note, uint8_t vel);
|
||||
void aftertouch(uint8_t channel, uint8_t note, uint8_t pressure);
|
||||
void controller(uint8_t channel, uint8_t number, uint8_t value);
|
||||
void programChange(uint8_t channel, uint8_t number);
|
||||
void channelPressure(uint8_t channel, uint8_t pressure);
|
||||
void pitchWheel(uint8_t channel, uint8_t highBits, uint8_t lowBits);
|
||||
void pitchChange(uint8_t channel, int pitch); // extra pitchWheel function for USB MIDI interfacing
|
||||
|
||||
uint8_t midiChannel;
|
||||
|
||||
private:
|
||||
|
||||
// MIDI
|
||||
uint8_t data;
|
||||
uint8_t midiBuffer[3];
|
||||
|
||||
int midiBufferIndex;
|
||||
uint16_t frequency;
|
||||
uint8_t notePlayed;
|
||||
};
|
||||
|
||||
|
||||
extern MMidi Midi;
|
||||
|
||||
|
||||
#endif // Close guard Synth_h
|
||||
|
||||
|
||||
129
keywords.txt
Executable file
129
keywords.txt
Executable file
@ -0,0 +1,129 @@
|
||||
#######################################
|
||||
# Syntax Coloring Map For CFO Haarnet Synth Library
|
||||
#######################################
|
||||
|
||||
#######################################
|
||||
# Datatypes (KEYWORD1)
|
||||
#######################################
|
||||
|
||||
Music KEYWORD1
|
||||
Midi KEYWORD1
|
||||
Synth KEYWORD1
|
||||
|
||||
#######################################
|
||||
# Methods and Functions (KEYWORD2)
|
||||
#######################################
|
||||
|
||||
init KEYWORD2
|
||||
set12bit KEYWORD2
|
||||
|
||||
setCutoff KEYWORD2
|
||||
setResonance KEYWORD2
|
||||
setFilterType KEYWORD2
|
||||
setCutoffModAmount KEYWORD2
|
||||
setCutoffModDirection KEYWORD2
|
||||
setCutoffModSource KEYWORD2
|
||||
setCutoffModShape KEYWORD2
|
||||
setResonanceModSource KEYWORD2
|
||||
setResonanceModShape KEYWORD2
|
||||
|
||||
setFrequency KEYWORD2
|
||||
setFrequency1 KEYWORD2
|
||||
setFrequency2 KEYWORD2
|
||||
setFrequency3 KEYWORD2
|
||||
setSemitone1 KEYWORD2
|
||||
setSemitone2 KEYWORD2
|
||||
setSemitone3 KEYWORD2
|
||||
setDetune KEYWORD2
|
||||
setDetune1 KEYWORD2
|
||||
setDetune2 KEYWORD2
|
||||
setDetune3 KEYWORD2
|
||||
setOsc1LFO KEYWORD2
|
||||
setOsc2LFO KEYWORD2
|
||||
setOsc3LFO KEYWORD2
|
||||
setFM1 KEYWORD2
|
||||
setFM2 KEYWORD2
|
||||
setFM3 KEYWORD2
|
||||
setFMoctaves KEYWORD2
|
||||
setFM1octaves KEYWORD2
|
||||
setFM2octaves KEYWORD2
|
||||
setFM3octaves KEYWORD2
|
||||
setFM1Source KEYWORD2
|
||||
setFM2Source KEYWORD2
|
||||
setFM3Source KEYWORD2
|
||||
setFM1Shape KEYWORD2
|
||||
setFM2Shape KEYWORD2
|
||||
setFM3Shape KEYWORD2
|
||||
fmToZeroHertz KEYWORD2
|
||||
setPortamento KEYWORD2
|
||||
|
||||
setWaveform KEYWORD2
|
||||
setWaveform1 KEYWORD2
|
||||
setWaveform2 KEYWORD2
|
||||
setWaveform3 KEYWORD2
|
||||
|
||||
setGain KEYWORD2
|
||||
setGain1 KEYWORD2
|
||||
setGain2 KEYWORD2
|
||||
setGain3 KEYWORD2
|
||||
getGain KEYWORD2
|
||||
getGain1 KEYWORD2
|
||||
getGain2 KEYWORD2
|
||||
getGain3 KEYWORD2
|
||||
|
||||
noteOn KEYWORD2
|
||||
noteOff KEYWORD2
|
||||
getNoteFrequency KEYWORD2
|
||||
|
||||
enableEnvelope1 KEYWORD2
|
||||
disableEnvelope1 KEYWORD2
|
||||
setEnv1Stage KEYWORD2
|
||||
setEnv1Attack KEYWORD2
|
||||
setEnv1Decay KEYWORD2
|
||||
setEnv1Sustain KEYWORD2
|
||||
setEnv1Release KEYWORD2
|
||||
enableEnvelope2 KEYWORD2
|
||||
disableEnvelope2 KEYWORD2
|
||||
setEnv2Stage KEYWORD2
|
||||
setEnv2Attack KEYWORD2
|
||||
setEnv2Decay KEYWORD2
|
||||
setEnv2Sustain KEYWORD2
|
||||
setEnv2Release KEYWORD2
|
||||
|
||||
init KEYWORD2
|
||||
checkMidi KEYWORD2
|
||||
noteOn KEYWORD2
|
||||
noteOff KEYWORD2
|
||||
controller KEYWORD2
|
||||
|
||||
|
||||
|
||||
|
||||
#######################################
|
||||
# Constants (LITERAL1)
|
||||
#######################################
|
||||
|
||||
MIDI_CHANNEL LITERAL1
|
||||
|
||||
LOWPASS LITERAL1
|
||||
HIGHPASS LITERAL1
|
||||
BANDPASS LITERAL1
|
||||
NOTCH LITERAL1
|
||||
|
||||
SINE LITERAL1
|
||||
SQUARE LITERAL1
|
||||
PULSE LITERAL1
|
||||
TRIANGLE LITERAL1
|
||||
SAW LITERAL1
|
||||
FUZZ LITERAL1
|
||||
DIGI1 LITERAL1
|
||||
DIGI2 LITERAL1
|
||||
DIGI3 LITERAL1
|
||||
DIGI4 LITERAL1
|
||||
NOISE LITERAL1
|
||||
DIGI6 LITERAL1
|
||||
TAN1 LITERAL1
|
||||
TAN2 LITERAL1
|
||||
TAN3 LITERAL1
|
||||
TAN4 LITERAL1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user