// Define the pin connected to the buzzer
const int buzzerPin = 9;
// Sample rate in Hz (number of samples per second)
const int sampleRate = 1000;
// Audio data array (shortened for the example; replace with actual data)
const int16_t audio_data[] = {0, 0, 0, 0, 1, -2, 2, -2, 1, 0, 1, -3, 3, -2, 1, 0, -1, 1, 0, 0, 0, 0, -1, 2, -2, 3, -3, 2, -2, 2, -2, 2, -1, -1, 3, -4, 3, -1, 0, 0, 1, -2, 2, -2, 2, -1, 0, 0, -1, 2, -2, 2, -2, 1, 1, -2, 2, -2, 2, -2, 3, -4, 4, -3, 1, 1, -2, 2, -1, 0, 0, 1, -2, 3, -3, 2, -1, 1, -1, 0, 1, -1, 1, -1, 0, 1, -1, 1, -1, 1, -2, 2, 0, -2, 3, -4, 4, -3, 2, -1, 0, 1, -2, 3, -3, 2, -1, 1, -1, 0, 1, -1, 1, -1, 0, 1, -1, 1, -1, 1, -1, 1, -2, 3, -3, 2, 0, -2, 3, -3, 3, -3, 3, -3, 2, 0, -1, 0, 0, 1, -1, 1, -2, 1, 1, 0, -1, 1, -3, 5, -4, 3, -2, 0, 1, 0, -1, 1, 0, -1, 2, -3, 3, -2, 2, -2, 1, 0, 0, 0, 0, 0, -1, 2, -2, 2, -1, -2, 4, -5, 6, -6, 5, -3, 1, 1, -3, 3, -1, -1, 2, -2, 0, 2, -3, 4, -4, 3, -2, 1, 1, -3, 4, -4, 4, -4, 3, -3, 4, -4, 4, -4, 3, -3, 4, -4, 3, -1, -1, 2, -2, 1, 0, -1, 2, -2, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 1, -2, 2, -2, 2, -1, 1, -2, 2, -1, 0, 1, -2, 3, -4, 4, -4, 5, -5, 4, -3, 2, -1, 1, -1, 1, -1, 0, 1, -2, 3, -4, 4, -3, 2, -1, 0, 1, -1, 1, -1, 1, -1, 1, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, -1, 2, -3, 3, -2, 0, 1, -1, 0, 1, -2, 3, -3, 2, -1, 1, -1, 1, -1, 1, -1, 1, -2, 2, -1, 1, -2, 3, -4, 4, -2, 0, 1, -2, 2, 0, -1, 1, -1, 0, 2, -3, 3, -2, 0, 1, -1, 1, 0, -1, 1, 0, -1, 3, -4, 4, -3, 2, -1, 1, -2, 3, -3, 3, -3, 2, -1, 0, 1, -1, 0, 1, -2, 2, -1, -1, 2, -2, 2, -2, 1, 0, -1, 1, -1, 2, -3, 4, -4, 3, -1, 0, 1, -1, 0, 1, -1, 1, -1, 0, 1, -2, 2, -1, 0, 1, -2, 2, -1, 0, 1, -1, 0, 1, -2, 2, 0, -2, 3, -3, 2, -1, 0, 1, -1, 1, -1, 0, 1, -1, 1, 0, -1, 1, -1, 1, 0, -1, 1, -1, 0, 2, -4, 5, -5, 4, -3, 2, -1, 1, -2, 2, -1, 1, -1, 1, -1, 0, 2, -4, 6, -7, 6, -5, 4, -3, 3, -3, 2, -1, 1, -2, 3, -3, 3, -3, 2, -2, 3, -3, 2, -1, 0, 0, 1, -2, 3, -3, 2, -1, 0, 1, -1, 1, 0, -1, 1, -1, 1, 0, -1, 1, -1, 1, 0, -1, 1, -2, 3, -3, 3, -3, 2, -2, 2, -1, 1, -2, 2, -2, 3, -2, 0, 2, -3, 2, -1, 1, -1, 2, -3, 2, -1, 1, -1, 1, -1, 1, -1, 2, -4, 5, -4, 3, -2, 1, -1, 1, -1, 1, 0, -1, 1, -1, 1, 0, -1, 1, -1, 2, -2, 1, 0, -1, 1, 0, 0, 0, -1, 2, -2, 2, -1, -1, 2, -2, 2, -2, 1, 0, 0, 0, 0, -1, 2, -2, 2, -2, 2, -1, -1, 2, -3, 4, -3, 1, 0, -1, 2, -2, 1, 0, -1, 2, -3, 3, -2, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1, 0, 0, 2, -3, 5, -3, 3, 0, -1, 2, -3, 3, -4, 3, -3, 0, 0, -1, -2, 1, -5, 3, -3, 0, -1, 2, -3, 3, -4, 4, -2, 2, -3, 1, -1, 0, 1, -2, 0, -3, 2, -3, 4, -3, 2, 0, 0, 0, -1, 2, -3, 2, -2, 0, 0, -2, 3, -3, 4, -4, 2, 0, 1, 0, 2, -4, -6, -13, -29, -41, -61, -78, -80, -81, -75, -81, -70, -66, -54, -35, -30, -10, 6, 13, 28, 48, 64, 69, 73, 72, 77, 67, 62, 51, 39, 27, 11, -12, -9, -27, -38, -54, -67, -76, -90, -113, -116, -128, -130, -141, -145, -139, -134, -117, -112, -102, -74, -61, -33, -12, 16, 34, 42, 54, 70, 89, 101, 98, 106, 110, 114, 99, 93, 77, 74, 53, 31, 1, -18, -48, -80, -108, -149, -179, -204, -236, -257, -270, -281, -287, -281, -283, -266, -240, -202, -171, -121, -68, -9, 46, 113, 173, 240, 302, 357, 400, 435, 457, 471, 456, 440, 394, 358, 299, 243, 169, 91, 21, -47, -128, -211, -290, -369, -458, -544, -628, -698, -758, -795, -820, -818, -787, -740, -668, -572, -445, -311, -161, -9, 152, 313, 464, 609, 744, 872, 975, 1068, 1138, 1179, 1195, 1184, 1134, 1055, 947, 810, 659, 486, 273, 32, -213, -457, -737, -1020, -1293, -1541, -1773, -2002, -2192, -2296, -2335, -2309, -2198, -2009, -1734, -1387, -990, -563, -113, 346, 807, 1236, 1625, 1972, 2273, 2532, 2732, 2881, 2951, 2970, 2904, 2774, 2531, 2249, 1912, 1527, 1066, 566, 36, -509, -1080, -1626, -2152, -2606, -3007, -3330, -3561, -3705, -3712, -3628, -3434, -3134, -2725, -2256, -1730, -1161, -578, -3, 581, 1117, 1596, 2014, 2372, 2669, 2899, 3080, 3210, 3297, 3357, 3366, 3318, 3191, 3020, 2787, 2458, 2082, 1657, 1190, 701, 190, -353, -903, -1440, -2001, -2553, -3034, -3451, -3840, -4163, -4363, -4449, -4396, -4182, -3831, -3353, -2777, -2099, -1413, -702, 13, 676, 1312, 1872, 2377, 2778, 3110, 3367, 3559, 3686, 3723, 3694, 3625, 3528, 3368, 3149, 2857, 2523, 2155, 1740, 1271, 778, 265, -258, -784, -1328, -1862, -2399, -2907, -3378, -3758, -4131, -4482, -4665, -4680, -4582, -4290, -3832, -3262, -2549, -1758, -1012, -273, 451, 1089, 1670, 2178, 2573, 2923, 3220, 3397, 3531, 3627, 3641, 3622, 3544, 3445, 3288, 3109, 2844, 2523, 2151, 1722, 1250, 749, 229, -315, -845, -1394, -1930, -2442, -2946, -3395, -3770, -4159, -4504, -4710, -4753, -4658, -4414, -3974, -3404, -2708, -1934, -1195, -456, 258, 889, 1441, 1927, 2340, 2695, 3019, 3231, 3406, 3534, 3607, 3631, 3621, 3538, 3443, 3306, 3085, 2802, 2460, 2050, 1595, 1099, 552, 23, -492, -1012, -1518, -1999, -2441, -2873, -3276, -3674, -4058, -4419, -4625, -4697, -4653, -4428, -4006, -3439, -2771, -2019, -1299, -582, 112, 715, 1235, 1712, 2136, 2518, 2845, 3101, 3335, 3515, 3646, 3698, 3730, 3669, 3583, 3431, 3205, 2928, 2596, 2190, 1735, 1251, 720, 218, -278, -773, -1235, -1659, -2094, -2490, -2912, -3306, -3696, -4101, -4462, -4677, -4744, -4677, -4409, -3971, -3378, -2668, -1928, -1209, -487, 194, 794, 1348, 1836, 2280, 2689, 3029, 3303, 3551, 3733, 3838, 3894, 3876, 3790, 3666, 3479, 3212, 2895, 2521, 2085, 1607, 1089, 563, 68, -431, -892, -1313, -1692, -2085, -2454, -2848, -3190, -3520, -3920, -4282, -4489, -4571, -4514, -4261, -3882, -3325, -2627, -1909, -1219, -515, 147, 744, 1287, 1732, 2171, 2559, 2888, 3159, 3376, 3544, 3666, 3733, 3709, 3643, 3541, 3356, 3121, 2829, 2461, 2057, 1625, 1138, 637, 161, -289, -714, -1110, -1497, -1838, -2171, -2525, -2876, -3179, -3518, -3901, -4176, -4329, -4337, -4183, -3870, -3420, -2817, -2141, -1483, -840, -213, 360, 882, 1333, 1724, 2097, 2431, 2713, 2932, 3110, 3256, 3365, 3422, 3396, 3330, 3220, 3044, 2809, 2501, 2163, 1779, 1367, 921, 498, 101, -274, -637, -979, -1289, -1592, -1901, -2241, -2561, -2869, -3215, -3562, -3815, -3928, -3918, -3757, -3456, -3007, -2442, -1836, -1243, -658, -103, 398, 855, 1252, 1598, 1927, 2230, 2481, 2677, 2844, 2987, 3099, 3145, 3119, 3046, 2925, 2749, 2496, 2196, 1858, 1505, 1129, 726, 344, 15, -295, -610, -914, -1191, -1450, -1718, -2032, -2339, -2615, -2899, -3196, -3437, -3567, -3543, -3392, -3120, -2725, -2229, -1642, -1090, -561, -80, 376, 776, 1123, 1402, 1654, 1885, 2102, 2265, 2387, 2490, 2550, 2572, 2531, 2424, 2266, 2073, 1865, 1584, 1288, 982, 659, 347, 51, -204, -447, -661, -934, -1101, -1281, -1493, -1692, -1882, -2057, -2252, -2509, -2723, -2832, -2821, -2685, -2502, -2212, -1832, -1370, -930, -495, -115, 296, 616, 869, 1072, 1236, 1437, 1641, 1743, 1903, 1955, 1932, 2033, 1815, 1707, 1629, 1570, 1369, 1124, 891, 681, 464, 147, -39, -299, -456, -601, -783, -1014, -1089, -1250, -1469, -1620, -1695, -1835, -2036, -2156, -2288, -2272, -2207, -2089, -1784, -1455, -1043, -642, -368, -5, 298, 505, 644, 922, 987, 1225, 1298, 1502, 1504, 1650, 1612, 1772, 1554, 1707, 2315, 1011, 1145, 1009, 636, 517, 308, 166, 28, -145, -473, -383, -600, -648, -830, -911, -1129, -1178, -1380, -1565, -1631, -1837, -1828, -1779, -1619, -1379, -977, -544, -281, 107, 372, 560, 795, 932, 1104, 1778, 1996, 1902, 1883, 1903, 2814, 2816, 2436, 2442, 2261, 1630, 1213, 1177, 1165, 822, 410, 352, 311, 196, -61, -33, -183, -515, -1056, -1519, -2106, -2453, -2647, -3105, -3278, -3446, -3352, -2870, -2322, -1720, -750, 138, 804, 1499, 1893, 2215, 2349, 2411, 2537, 2194, 2069, 2027, 2181, 2085, 1891, 2141, 2237, 2868, 2852, 2406, 2447, 2075, 1183, 959, 516, -486, -1471, -2810, -4320, -5487, -6046, -6453, -6367, -6543, -6662, -5681, -4238, -3215, -1777, 227, 1951, 3142, 3719, 4397, 4760, 4100, 3209, 2866, 2259, 1238, 621, 170, 330, 492, 878, 1629, 2706, 3714, 4113, 4374, 4506, 4424, 3454, 2679, 1599, -4, -2645, -5006, -6954, -9863, -11058, -10628, -10807, -10473, -8313, -6253, -3457, -447, 1787, 5017, 7445, 7919, 8164, 8161, 6707, 4908, 2692, 838, -105, -1500, -2701, -2146, -472, -32, 1211, 3773, 5660, 6264, 6382, 6124, 5626, 3873, 929, -1996, -5215, -8701, -12491, -14137, -14023, -13622, -12969, -10600, -6442, -2687, 763, 4811, 8475, 11094, 12057, 11405, 10718, 8802, 5239, 2182, 73, -2610, -4334, -5022, -5081, -3543, -1592, 521, 3845, 6905, 8035, 9122, 9185, 7781, 5852, 2953, -798, -5043, -9249, -13726, -15880, -15923, -16219, -14765, -11147, -7753, -3481, 1386, 5397, 9591, 12542, 13143, 13034, 11962, 8937, 5602, 2421, -602, -3353, -5255, -6004, -5657, -4766, -2259, 606, 3393, 7060, 8852, 9770, 10089, 8314, 5906, 3269, -1424, -5686, -10442, -14522, -15463, -16226, -15952, -13670, -10125, -6284, -1839, 2865, 7344, 10840, 12749, 13250, 12775, 10758, 7506, 4282, 1015, -1966, -4511, -5865, -5924, -5542, -3804, -932, 1793, 5069, 7869, 9200, 9939, 8998, 6853, 4142, -52, -4510, -9231, -13014, -14670, -15794, -15819, -13508, -10447, -6987, -2274, 2526, 6693, 10369, 12327, 13175, 12869, 10570, 7655, 4806, 1421, -1689, -3946, -5590, -5889, -5496, -4029, -1259, 1507, 4301, 7109, 8578, 8934, 8100, 5998, 2637, -1276, -5880, -9656, -11699, -14632, -15638, -13804, -11764, -9345, -5015, -296, 4112, 7910, 10503, 12552, 12927, 11296, 9254, 6902, 3534, 448, -2155, -3998, -5004, -5430, -4338, -1653, 173, 2600, 6109, 7497, 7300, 7102, 5562, 2081, -1371, -5599, -8487, -10793, -13951, -14376, -12458, -11244, -8908, -4021, 155, 3999, 7683, 10266, 11946, 12066, 10438, 9030, 6398, 2721, 336, -2096, -4154, -4929, -4824, -3528, -1367, 673, 3921, 6379, 6686, 7150, 6465, 3620, 464, -3204, -6426, -9260, -12369, -13626, -13219, -12428, -10307, -6470, -2545, 1442, 5412, 8647, 10807, 11533, 11127, 10040, 7786, 4745, 2282, -129, -2749, -4053, -3933, -3387, -2366, -25, 2953, 4836, 5492, 6203, 5855, 2762, 7, -2298, -5337, -8763, -11506, -12283, -12383, -11981, -9928, -6147, -2503, 773, 4709, 8202, 10049, 10633, 10704, 9829, 7299, 4628, 2712, 261, -2211, -3065, -2783, -2631, -1348, 1025, 3151, 4762, 4889, 4906, 3906, 957, -1822, -3808, -6352, -9716, -11384, -11656, -11418, -10492, -8008, -4193, -671, 2673, 6044, 8806, 10017, 10206, 9630, 8111, 5916, 3489, 1049, -850, -2297, -2822, -2152, -1210, 417, 2442, 4001, 4141, 4013, 2918, 615, -1838, -4175, -6340, -8963, -10748, -11066, -10430, -9731, -7275, -3646, -468, 2926, 6172, 8447, 9759, 10044, 9179, 7830, 5668, 3187, 1104, -463, -1765, -2307, -1866, -533, 942, 2444, 3196, 3281, 3088, 870, -986, -2632, -4931, -6783, -9131, -10395, -9656, -9390, -8639, -5351, -2195, 636, 4013, 6712, 8732, 9896, 9554, 8853, 7515, 5001, 2717, 1048, -502, -1657, -1698, -821, 250, 1363, 2101, 2394, 2411, 856, -685, -2171, -4354, -5727, -7566, -9567, -9269, -8654, -8465, -6153, -3130, -372, 2671, 5315, 7508, 9109, 9235, 8556, 7665, 5999, 3646, 1961, 645, -528, -843, -428, 365, 1273, 1554, 1600, 1561, 87, -1306, -2765, -4623, -5617, -7251, -9081, -8574, -8028, -7895, -5744, -3024, -374, 2490, 4739, 6985, 8596, 8569, 8069, 7368, 5599, 3696, 2255, 937};
// Number of samples in the audio data array
const int numSamples = sizeof(audio_data) / sizeof(audio_data[0]);
// Calculate the delay between samples based on the sample rate
const int delayTime = 1000 / sampleRate; // Time between samples in milliseconds
void setup() {
// Set the buzzer pin as an output
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Iterate through each sample in the audio data array
for (int i = 0; i < numSamples; i++) {
// Read the sample value
int sampleValue = audio_data[i];
// Map the sample value to PWM range (0-255)
int pwmValue = map(sampleValue, -128, 127, 0, 255);
// Write the PWM value to the buzzer pin
analogWrite(buzzerPin, pwmValue);
// Delay to control playback speed
delay(delayTime);
}
// Optional: Repeat the playback or stop
// Uncomment the following line to repeat the playback
// delay(1000); // Delay before starting the playback again
}