Надо создавать массивы для мелодий в проделках на Ардуино. То есть массив частот и их длительностей. Проще всего - просто насвистеть в микрофон, прогнать через БПФ , разложить на частоты и кратности, то ечть длительности. Наверняка идея весьма древняя. И в Ардуино-среде гуляла наверняка. Буду признателен за ссылки и наводки. С уважением.
Звучит морзянка за стеной веселым дисконтом... Была такая бодрая песенка. Полезная штука порой этот свист...
Там Дядько по вилимости иностранец насвистывал в Дэмш морзянку. Которая сразу же передавалась в эфир. Рядом был морзе декодер и можно было увидеть что он все распознает и передает правильно. А Вам если не секрет для чего это?
Если вы про Морзянку - я не говорил что мне это надо. Что мне надо - написано в заглавии темы. Тем более, что "морзянские программы" у меня есть.
Перечитал свой текст в первом сообщении, и нашёл - собственную неконкретность в ТЗ. Из-за очень малого размера ОЗУ мк - никакого "насвистеть, а после - обрабатывать" не получится. Требуется работа в "реалтайме". Впрочем летом лучше свистеть - в небо на пляже, а не в микрофон )))
в 32-х битках тоже мало? Я вот проникся разными вариациями ESP32. На озон уже приехала H2 - очень бюджетная по энергопотреблению. Про С3 рассказывал. В родном ESP-IDF модифицированный FreeRTOS - распараллеливание задач происходит просто на ура. Если не нужно радио, то у Эспрессиф скоро и такая появится.
Если "насвистеть в микрофон" - нормально, то, почему бы и "свист" посредством стандартных команд не поиспользовать? Комбинировать tone() и delay()? Что-то типа: Сделать массив, нот ~ И играть ими музычку ~
Было дело натыкался на глюк delay(t) после tone(freq, dur). Мы ожидаем начало паузы после окончания тона. А код запустив тон - тут же переходит к отработке паузы. То есть начало тона и паузы практически совпадают. Поэтому реальная пауза будет разностью (t-dur)