Wave Morphing With Teensy 4.1 and Audio Adapter. Nice!

Expensive Notes

Well-known member
Wave Morphing With Teensy 4.1 and Audio Adapter


I have been having fun making sounds that can change. All these are done using the Teensy Audio System Design Tool, together with the WAVEFORM_ARBITRARY type, which means I can literally design my own wave form on the fly and it is powerful enough to allow morphing between different wave shapes as seen here. Very cool! Thanks for this Paul and any other contributors.

Any ideas on some different wave shapes that might sound good? Otherwise I might have to try FM with non sine waves... mmmm


Short Video:

 
Cool. Takes me back to my stepped waveform generator in late '70s home brew analog synth. Mentioning as possible food for thought.

Used square wave VCO output followed by divide by N counter driving 4051 which looked at 8 slider pots. Divide by N had a switch on it. Interestingly, N = odd numbers was preferred by all who played with it.

From the looks, one screen looks at a positive half-cycle and the other looks at the negative half so regardless as to how many steps are in a half-cycle, you finish up with an even number of steps in a full cycle. Sort of an even harmonic content.
Suggest playing with even / odd number of steps and see what the ears have to say.
 
Thanks MatrixRat. The screens are a visualisation of the waveform stored in an array which is used by the Teensy audio system to generate a base wave that can be "played" at any frequency. From my physics background this is the carrier which can be altered by AM or FM. Of course any wave can be seen in the end as a composition of sine waves. There are mathematical series of sine waves that can make other shapes of course but here I am just using arrays and combining the values by adding them which is AM.

If you are interested here are the arrays:
Code:
int16_t currentWaveForm[256] = {
  0,  1895,  3748,  5545,  7278,  8934, 10506, 11984, 13362, 14634,
  15794, 16840, 17769, 18580, 19274, 19853, 20319, 20678, 20933, 21093,
  21163, 21153, 21072, 20927, 20731, 20492, 20221, 19929, 19625, 19320,
  19022, 18741, 18486, 18263, 18080, 17942, 17853, 17819, 17841, 17920,
  18058, 18254, 18507, 18813, 19170, 19573, 20017, 20497, 21006, 21538,
  22085, 22642, 23200, 23753, 24294, 24816, 25314, 25781, 26212, 26604,
  26953, 27256, 27511, 27718, 27876, 27986, 28049, 28068, 28047, 27989,
  27899, 27782, 27644, 27490, 27326, 27159, 26996, 26841, 26701, 26582,
  26487, 26423, 26392, 26397, 26441, 26525, 26649, 26812, 27012, 27248,
  27514, 27808, 28122, 28451, 28787, 29124, 29451, 29762, 30045, 30293,
  30495, 30643, 30727, 30738, 30667, 30509, 30254, 29897, 29433, 28858,
  28169, 27363, 26441, 25403, 24251, 22988, 21620, 20150, 18587, 16939,
  15214, 13423, 11577,  9686,  7763,  5820,  3870,  1926,     0, -1895,
  -3748, -5545, -7278, -8934, -10506, -11984, -13362, -14634, -15794, -16840,
  -17769, -18580, -19274, -19853, -20319, -20678, -20933, -21093, -21163, -21153,
  -21072, -20927, -20731, -20492, -20221, -19929, -19625, -19320, -19022, -18741,
  -18486, -18263, -18080, -17942, -17853, -17819, -17841, -17920, -18058, -18254,
  -18507, -18813, -19170, -19573, -20017, -20497, -21006, -21538, -22085, -22642,
  -23200, -23753, -24294, -24816, -25314, -25781, -26212, -26604, -26953, -27256,
  -27511, -27718, -27876, -27986, -28049, -28068, -28047, -27989, -27899, -27782,
  -27644, -27490, -27326, -27159, -26996, -26841, -26701, -26582, -26487, -26423,
  -26392, -26397, -26441, -26525, -26649, -26812, -27012, -27248, -27514, -27808,
  -28122, -28451, -28787, -29124, -29451, -29762, -30045, -30293, -30495, -30643,
  -30727, -30738, -30667, -30509, -30254, -29897, -29433, -28858, -28169, -27363,
  -26441, -25403, -24251, -22988, -21620, -20150, -18587, -16939, -15214, -13423,
  -11577, -9686, -7763, -5820, -3870, -1926
};


int16_t modulatorWaveform[256] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0
};


int16_t carrierWaveform[256] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0
};


int16_t wobbleSineWaveform[256] = {
  0,  1895,  3748,  5545,  7278,  8934, 10506, 11984, 13362, 14634,
  15794, 16840, 17769, 18580, 19274, 19853, 20319, 20678, 20933, 21093,
  21163, 21153, 21072, 20927, 20731, 20492, 20221, 19929, 19625, 19320,
  19022, 18741, 18486, 18263, 18080, 17942, 17853, 17819, 17841, 17920,
  18058, 18254, 18507, 18813, 19170, 19573, 20017, 20497, 21006, 21538,
  22085, 22642, 23200, 23753, 24294, 24816, 25314, 25781, 26212, 26604,
  26953, 27256, 27511, 27718, 27876, 27986, 28049, 28068, 28047, 27989,
  27899, 27782, 27644, 27490, 27326, 27159, 26996, 26841, 26701, 26582,
  26487, 26423, 26392, 26397, 26441, 26525, 26649, 26812, 27012, 27248,
  27514, 27808, 28122, 28451, 28787, 29124, 29451, 29762, 30045, 30293,
  30495, 30643, 30727, 30738, 30667, 30509, 30254, 29897, 29433, 28858,
  28169, 27363, 26441, 25403, 24251, 22988, 21620, 20150, 18587, 16939,
  15214, 13423, 11577,  9686,  7763,  5820,  3870,  1926,     0, -1895,
  -3748, -5545, -7278, -8934, -10506, -11984, -13362, -14634, -15794, -16840,
  -17769, -18580, -19274, -19853, -20319, -20678, -20933, -21093, -21163, -21153,
  -21072, -20927, -20731, -20492, -20221, -19929, -19625, -19320, -19022, -18741,
  -18486, -18263, -18080, -17942, -17853, -17819, -17841, -17920, -18058, -18254,
  -18507, -18813, -19170, -19573, -20017, -20497, -21006, -21538, -22085, -22642,
  -23200, -23753, -24294, -24816, -25314, -25781, -26212, -26604, -26953, -27256,
  -27511, -27718, -27876, -27986, -28049, -28068, -28047, -27989, -27899, -27782,
  -27644, -27490, -27326, -27159, -26996, -26841, -26701, -26582, -26487, -26423,
  -26392, -26397, -26441, -26525, -26649, -26812, -27012, -27248, -27514, -27808,
  -28122, -28451, -28787, -29124, -29451, -29762, -30045, -30293, -30495, -30643,
  -30727, -30738, -30667, -30509, -30254, -29897, -29433, -28858, -28169, -27363,
  -26441, -25403, -24251, -22988, -21620, -20150, -18587, -16939, -15214, -13423,
  -11577, -9686, -7763, -5820, -3870, -1926
};


int16_t triangleWaveform[256] = {
  -30000, -29532, -29064, -28596, -28128, -27660, -27192, -26724, -26256, -25788,
  -25320, -24852, -24384, -23916, -23448, -22980, -22512, -22044, -21576, -21108,
  -20640, -20172, -19704, -19236, -18768, -18300, -17832, -17364, -16896, -16428,
  -15960, -15492, -15024, -14556, -14088, -13620, -13152, -12684, -12216, -11748,
  -11280, -10812, -10344, -9876, -9408, -8940, -8472, -8004, -7536, -7068,
  -6600, -6132, -5664, -5196, -4728, -4260, -3792, -3324, -2856, -2388,
  -1920, -1452, -984, -516, -48, 420, 888, 1356, 1824, 2292,
  2760, 3228, 3696, 4164, 4632, 5100, 5568, 6036, 6504, 6972,
  7440, 7908, 8376, 8844, 9312, 9780, 10248, 10716, 11184, 11652,
  12120, 12588, 13056, 13524, 13992, 14460, 14928, 15396, 15864, 16332,
  16800, 17268, 17736, 18204, 18672, 19140, 19608, 20076, 20544, 21012,
  21480, 21948, 22416, 22884, 23352, 23820, 24288, 24756, 25224, 25692,
  26160, 26628, 27096, 27564, 28032, 28500, 28968, 29436, 30000, 29532, 29064, 28596, 28128, 27660, 27192, 26724, 26256, 25788,
  25320, 24852, 24384, 23916, 23448, 22980, 22512, 22044, 21576, 21108,
  20640, 20172, 19704, 19236, 18768, 18300, 17832, 17364, 16896, 16428,
  15960, 15492, 15024, 14556, 14088, 13620, 13152, 12684, 12216, 11748,
  11280, 10812, 10344, 9876, 9408, 8940, 8472, 8004, 7536, 7068,
  6600, 6132, 5664, 5196, 4728, 4260, 3792, 3324, 2856, 2388,
  1920, 1452, 984, 516, 48, -420, -888, -1356, -1824, -2292,
  -2760, -3228, -3696, -4164, -4632, -5100, -5568, -6036, -6504, -6972,
  -7440, -7908, -8376, -8844, -9312, -9780, -10248, -10716, -11184, -11652,
  -12120, -12588, -13056, -13524, -13992, -14460, -14928, -15396, -15864, -16332,
  -16800, -17268, -17736, -18204, -18672, -19140, -19608, -20076, -20544, -21012,
  -21480, -21948, -22416, -22884, -23352, -23820, -24288, -24756, -25224, -25692,
  -26160, -26628, -27096, -27564, -28032, -28500, -28968, -29436
};


int16_t sineWaveform[256] = {
  0, 736, 1472, 2206, 2940, 3672, 4401, 5128, 5852, 6573,
  7289, 8001, 8708, 9410, 10106, 10796, 11480, 12157, 12826, 13488,
  14141, 14786, 15423, 16049, 16667, 17274, 17870, 18456, 19031, 19595,
  20146, 20686, 21213, 21727, 22228, 22716, 23190, 23650, 24096, 24527,
  24944, 25345, 25731, 26102, 26457, 26796, 27119, 27426, 27716, 27989,
  28246, 28485, 28708, 28913, 29100, 29271, 29423, 29558, 29675, 29774,
  29855, 29918, 29963, 29990, 30000, 29990, 29963, 29918, 29855, 29774,
  29675, 29558, 29423, 29271, 29100, 28913, 28708, 28485, 28246, 27989,
  27716, 27426, 27119, 26796, 26457, 26102, 25731, 25345, 24944, 24527,
  24096, 23650, 23190, 22716, 22228, 21727, 21213, 20686, 20146, 19595,
  19031, 18456, 17870, 17274, 16667, 16049, 15423, 14786, 14141, 13488,
  12826, 12157, 11480, 10796, 10106, 9410, 8708, 8001, 7289, 6573,
  5852, 5128, 4401, 3672, 2940, 2206, 1472, 736, 0, -736,
  -1472, -2206, -2940, -3672, -4401, -5128, -5852, -6573, -7289, -8001,
  -8708, -9410, -10106, -10796, -11480, -12157, -12826, -13488, -14141, -14786,
  -15423, -16049, -16667, -17274, -17870, -18456, -19031, -19595, -20146, -20686,
  -21213, -21727, -22228, -22716, -23190, -23650, -24096, -24527, -24944, -25345,
  -25731, -26102, -26457, -26796, -27119, -27426, -27716, -27989, -28246, -28485,
  -28708, -28913, -29100, -29271, -29423, -29558, -29675, -29774, -29855, -29918,
  -29963, -29990, -30000, -29990, -29963, -29918, -29855, -29774, -29675, -29558,
  -29423, -29271, -29100, -28913, -28708, -28485, -28246, -27989, -27716, -27426,
  -27119, -26796, -26457, -26102, -25731, -25345, -24944, -24527, -24096, -23650,
  -23190, -22716, -22228, -21727, -21213, -20686, -20146, -19595, -19031, -18456,
  -17870, -17274, -16667, -16049, -15423, -14786, -14141, -13488, -12826, -12157,
  -11480, -10796, -10106, -9410, -8708, -8001, -7289, -6573, -5852, -5128,
  -4401, -3672, -2940, -2206, -1472, -736
};


int16_t inverseTriangleWaveform[256] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, -937, -1874, -2811, -3748, -4685, -5622, -6559, -7496, -8433,
  -9370, -10307, -11244, -12181, -13118, -14055, -14992, -15929, -16866, -17803,
  -18740, -19677, -20614, -21551, -22488, -23425, -24362, -25299, -26236, -27173,
  -28110, -29047, -30000, -29063, -28126, -27189, -26252, -25315, -24378, -23441, -22504, -21567,
  -20630, -19693, -18756, -17819, -16882, -15945, -15008, -14071, -13134, -12197,
  -11260, -10323, -9386, -8449, -7512, -6575, -5638, -4701, -3764, -2827,
  -1890, -953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 937, 1874, 2811, 3748, 4685, 5622, 6559, 7496, 8433,
  9370, 10307, 11244, 12181, 13118, 14055, 14992, 15929, 16866, 17803,
  18740, 19677, 20614, 21551, 22488, 23425, 24362, 25299, 26236, 27173,
  28110, 29047, 30000, 29063, 28126, 27189, 26252, 25315, 24378, 23441, 22504, 21567,
  20630, 19693, 18756, 17819, 16882, 15945, 15008, 14071, 13134, 12197,
  11260, 10323, 9386, 8449, 7512, 6575, 5638, 4701, 3764, 2827,
  1890, 953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0
};


int16_t inverseSineWaveform[256] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, -5852, -11480, -16667, -21213, -24944, -27716, -29423, -30000, -29423,
  -27716, -24944, -21213, -16667, -11480, -5852, 0, 5852, 11480, 16667,
  21213, 24944, 27716, 29423, 30000, 29423, 27716, 24944, 21213, 16667,
  11480, 5852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 5852, 11480, 16667, 21213, 24944, 27716, 29423, 30000, 29423,
  27716, 24944, 21213, 16667, 11480, 5852, 0, -5852, -11480, -16667,
  -21213, -24944, -27716, -29423, -30000, -29423, -27716, -24944, -21213, -16667,
  -11480, -5852, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0
};


int16_t inverseDoubleSineWaveform[256] = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, -11480, -21213, -27716, -30000, -27716, -21213, -11480, 0, 11480,
  21213, 27716, 30000, 27716, 21213, 11480, 0, -11480, -21213, -27716,
  -30000, -27716, -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716,
  21213, 11480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 11480, 21213, 27716, 30000, 27716, 21213, 11480, 0, -11480,
  -21213, -27716, -30000, -27716, -21213, -11480, 0, 11480, 21213, 27716,
  30000, 27716, 21213, 11480, 0, -11480, -21213, -27716, -29999, -27716,
  -21213, -11480, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0
};


//int16_t rampWaveform[256] = {
//  -30000, -29766, -29532, -29298, -29064, -28830, -28596, -28362, -28128, -27894,
//  -27660, -27426, -27192, -26958, -26724, -26490, -26256, -26022, -25788, -25554,
//  -25320, -25086, -24852, -24618, -24384, -24150, -23916, -23682, -23448, -23214,
//  -22980, -22746, -22512, -22278, -22044, -21810, -21576, -21342, -21108, -20874,
//  -20640, -20406, -20172, -19938, -19704, -19470, -19236, -19002, -18768, -18534,
//  -18300, -18066, -17832, -17598, -17364, -17130, -16896, -16662, -16428, -16194,
//  -15960, -15726, -15492, -15258, -15024, -14790, -14556, -14322, -14088, -13854,
//  -13620, -13386, -13152, -12918, -12684, -12450, -12216, -11982, -11748, -11514,
//  -11280, -11046, -10812, -10578, -10344, -10110, -9876, -9642, -9408, -9174,
//  -8940, -8706, -8472, -8238, -8004, -7770, -7536, -7302, -7068, -6834,
//  -6600, -6366, -6132, -5898, -5664, -5430, -5196, -4962, -4728, -4494,
//  -4260, -4026, -3792, -3558, -3324, -3090, -2856, -2622, -2388, -2154,
//  -1920, -1686, -1452, -1218, -984, -750, -516, -282, -48, 186,
//  420, 654, 888, 1122, 1356, 1590, 1824, 2058, 2292, 2526,
//  2760, 2994, 3228, 3462, 3696, 3930, 4164, 4398, 4632, 4866,
//  5100, 5334, 5568, 5802, 6036, 6270, 6504, 6738, 6972, 7206,
//  7440, 7674, 7908, 8142, 8376, 8610, 8844, 9078, 9312, 9546,
//  9780, 10014, 10248, 10482, 10716, 10950, 11184, 11418, 11652, 11886,
//  12120, 12354, 12588, 12822, 13056, 13290, 13524, 13758, 13992, 14226,
//  14460, 14694, 14928, 15162, 15396, 15630, 15864, 16098, 16332, 16566,
//  16800, 17034, 17268, 17502, 17736, 17970, 18204, 18438, 18672, 18906,
//  19140, 19374, 19608, 19842, 20076, 20310, 20544, 20778, 21012, 21246,
//  21480, 21714, 21948, 22182, 22416, 22650, 22884, 23118, 23352, 23586,
//  23820, 24054, 24288, 24522, 24756, 24990, 25224, 25458, 25692, 25926,
//  26160, 26394, 26628, 26862, 27096, 27330, 27564, 27798, 28032, 28266,
//  28500, 28734, 28968, 29202, 29436, 29670
//};


int16_t folderWaveform[256] = {
  0, 11480, 21213, 27716, 30000, 27716, 21213, 11480, 0, -11480,
  -21213, -27716, -30000, -27716, -21213, -11480, 0, 11480, 21213, 27716,
  30000, 27716, 21213, 11480, 0, -11480, -21213, -27716, -29999, -27716,
  -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716, 21213, 11480,
  0, -11480, -21213, -27716, -29999, -27716, -21213, -11480, 0, 11480,
  21213, 27716, 29999, 27716, 21213, 11480, 0, -11480, -21213, -27716,
  -29999, -27716, -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716,
  21213, 11480, 0, -11480, -21213, -27716, -29999, -27716, -21213, -11480,
  0, 11480, 21213, 27716, 29999, 27716, 21213, 11480, 0, -11480,
  -21213, -27716, -29999, -27716, -21213, -11480, 0, 11480, 21213, 27716,
  29999, 27716, 21213, 11480, 0, -11480, -21213, -27716, -29999, -27716,
  -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716, 21213, 11480,
  0, -11480, -21213, -27716, -29999, -27716, -21213, -11480, 0, 11480,
  21213, 27716, 29999, 27716, 21213, 11480, 0, -11480, -21213, -27716,
  -29999, -27716, -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716,
  21213, 11480, 0, -11480, -21213, -27716, -29999, -27716, -21213, -11480,
  0, 11480, 21213, 27716, 29999, 27716, 21213, 11480, 0, -11480,
  -21213, -27716, -29999, -27716, -21213, -11480, 0, 11480, 21213, 27716,
  29999, 27716, 21213, 11480, 0, -11480, -21213, -27716, -29999, -27716,
  -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716, 21213, 11480,
  0, -11480, -21213, -27716, -29999, -27716, -21213, -11480, 0, 11480,
  21213, 27716, 29999, 27716, 21213, 11480, 0, -11480, -21213, -27716,
  -29999, -27716, -21213, -11480, 0, 11480, 21213, 27716, 29999, 27716,
  21213, 11480, 0, -11480, -21213, -27716, -29999, -27716, -21213, -11480,
  0, 11480, 21213, 27716, 29999, 27716, 21213, 11480, 0, -11480,
  -21213, -27716, -29999, -27716, -21213, -11480
};


//int16_t squareWaveform[256] = {
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000,
//  30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000, -30000,
//  -30000, -30000, -30000, -30000, -30000, -30000
//};


int16_t oddSquareWaveform[256] = {
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000,
  20000, 20000, 30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000,
  30000, 30000, 20000, 20000, 30000, 30000, 20000, 20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000,
  -30000, -30000, -20000, -20000, -30000, -30000, -20000, -20000, -30000, -30000,
  -20000, -20000, -30000, -30000, -20000, -20000
};


int16_t squareWaveform[256] = {
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000,
  20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000, -20000,
  -20000, -20000, -20000, -20000, -20000, -20000
};


int16_t rampWaveform[256] = {
  -20000, -19883, -19766, -19649, -19532, -19415, -19298, -19181, -19064, -18947,
  -18830, -18713, -18596, -18479, -18362, -18245, -18128, -18011, -17894, -17777,
  -17660, -17543, -17426, -17309, -17192, -17075, -16958, -16841, -16724, -16607,
  -16490, -16373, -16256, -16139, -16022, -15905, -15788, -15671, -15554, -15437,
  -15320, -15203, -15086, -14969, -14852, -14735, -14618, -14501, -14384, -14267,
  -14150, -14033, -13916, -13799, -13682, -13565, -13448, -13331, -13214, -13097,
  -12980, -12863, -12746, -12629, -12512, -12395, -12278, -12161, -12044, -11927,
  -11810, -11693, -11576, -11459, -11342, -11225, -11108, -10991, -10874, -10757,
  -10640, -10523, -10406, -10289, -10172, -10055, -9938, -9821, -9704, -9587,
  -9470, -9353, -9236, -9119, -9002, -8885, -8768, -8651, -8534, -8417,
  -8300, -8183, -8066, -7949, -7832, -7715, -7598, -7481, -7364, -7247,
  -7130, -7013, -6896, -6779, -6662, -6545, -6428, -6311, -6194, -6077,
  -5960, -5843, -5726, -5609, -5492, -5375, -5258, -5141, -5024, -4907,
  -4790, -4673, -4556, -4439, -4322, -4205, -4088, -3971, -3854, -3737,
  -3620, -3503, -3386, -3269, -3152, -3035, -2918, -2801, -2684, -2567,
  -2450, -2333, -2216, -2099, -1982, -1865, -1748, -1631, -1514, -1397,
  -1280, -1163, -1046, -929, -812, -695, -578, -461, -344, -227,
  -110, 7, 124, 241, 358, 475, 592, 709, 826, 943,
  1060, 1177, 1294, 1411, 1528, 1645, 1762, 1879, 1996, 2113,
  2230, 2347, 2464, 2581, 2698, 2815, 2932, 3049, 3166, 3283,
  3400, 3517, 3634, 3751, 3868, 3985, 4102, 4219, 4336, 4453,
  4570, 4687, 4804, 4921, 5038, 5155, 5272, 5389, 5506, 5623,
  5740, 5857, 5974, 6091, 6208, 6325, 6442, 6559, 6676, 6793,
  6910, 7027, 7144, 7261, 7378, 7495, 7612, 7729, 7846, 7963,
  8080, 8197, 8314, 8431, 8548, 8665, 8782, 8899, 9016, 9133,
  9250, 9367, 9484, 9601, 9718, 9835
};
 
Back
Top