Приветствую. Необходимо воспроизведение 3 звуковых дорожек параллельно (3 потока) на каждый по динамику. (<Arduino nano>) Попытался сделать это на библиотеке TMRpcm, потратив н-ое колво времени, даже и 2 потока не получилось запустить (как и у других людей на гитхабе в ветке обсуждений библиотеки). Поняв что ардуино не тянет такое (а еще нужно что б работал основной скетч), я начал искать доп модули, ничего подходящего не нашел, самое путное это DFPlayer Mini, но тут мне придется брать 3 штуки, так же 3 микросдишки, что не очень по размерам и бюджету. Поэтому вопрос, может кто предложит решение получше (модуль похитрее какой нибудь) ?
а главное, что от трех DFPlayer вы никогда не получите синхронного звучания. все время одна дорожка будет обгонять другую Думаю. что дешевого трехканального модуля для проигрывания звуковых файлов вам в принципе не найти - таких не существует Как решение могу предложить заранее сводить три дорожки вместе в любом звуковом редакторе и писать в один файл.
В каждом динамике должно свое играть ? Дорожки большие ? (плейлист или один медиа файл?) Какого размера ?
Синхронность не нужна идеальная. Такой вариант не пойдет, т.к. нужно что б на каждый динамик воспроизводилась своя дорожка (то есть в опр. момент времени может одна дорожка воспроизводиться (на 1 динамик), 2 дорожки на 2 динамика (каждая дорожка на свой динамик) и 3 подобно...) Да, в каждом динамике свое должно играть (выше подробней ответил) Дорожки на каждый динамик разные, и по нескольку штук, по размеру допустим (примерно): на каждый канал (динамик) по 3 дорожки, размером по ~10Мб Как понял одноплатный компьютер, с ними еще не сталкивался. Можно пример на каком можно сделать, размер соответственно не больше ардуино нано.
Omega https://amperka.ru/product/onion-omega2 У неё выход I2S. Цепляешь любой декодер и всё. тю, барин. Сперва сделай, потом хотелки свои удовлетворишь.
если вам рассинхрон не страшен, то самое простое. доступное и дешевое будет таки три штуки DFPlayer-а. а чтоб они много места не занимали - предлагаю встроить их в колонки, динамики у вас по любому будут крупнее платы плеера
Без указания требуемого качества звука обсуждение реализации малопродуктивно. Могу навскидку предложить заменить атмегу на стм32 (поддерживается ардуино-сообществом). Там есть ДМА. Останется только считать из флешки 3 блока каждой композиции, усреднить побайтно, положить в буфер и натравить на него ДМА для вывода в I2S. Еще и время обслужить основной код останется (для разумного качества воспроизведения).