небольшая “технодемка“ FM-синтезатора на базе китайского клона arduino nano, с тактовой частотой 32 мгц (против оригинальных 16) и цапом на борту (который оказался тем ещё говном, родной ардуиновский шим был бы на порядок лучше). в коде надристал операциями с плавающей запятой, поэтому, чтобы не было пердежа (underruns), пришлось нёрфить частоту дискретизации. исправлять не было желания и времени. получалось около 18 кГц, точно выставить не мог, возможно из-за аппаратных ограничений прерываний в сём камушке, ну или я рукожоп просто. дифференциалы нот подсчитывались заранее вручную в excel’е, соответственно это нужно было делать для каждой частоты дискретизации. но мне было опять же лень. на видосе массив коэффициентов для частоты 24 кгц. и из-за всего этого такая вот звукогенерирующая приблуда больше является орудием пытки абсолютников (да и просто орудием пытки), чем претензией на музыкальный инструмент. для реализации аудио-буфера юзал библиотеку прерываний пресвятого AlexGyver’а (GyverTimers), которая к великому чуду не отказалась работать на неоригинальной nano. забил на управление по midi, так как midi использует uart (на скорости 31250 бод), а uart не дружит с аппаратными прерываниями. хотя челики в ютубе делали даже на оригинальной nano и управление по midi, и кучу ацп-крутилок, то, сё, пятое десятое... моя же цель была проверить, понимаю ли я что-нибудь вообще в цифровом звуке. когда реализовывал это, руководствовался в основном своими домыслами и рассуждениями (а ещё опытом работы в fl studio🤡). ну и всё-таки что-то получилось, что не может не радовать.
Hide player controls
Hide resume playing