Воспроизведение звука в 3 потока

Тема в разделе "Arduino & Shields", создана пользователем MegaNoob, 22 окт 2020.

  1. MegaNoob

    MegaNoob Нуб

    Приветствую.
    Необходимо воспроизведение 3 звуковых дорожек параллельно (3 потока) на каждый по динамику. (<Arduino nano>)

    Попытался сделать это на библиотеке TMRpcm, потратив н-ое колво времени, даже и 2 потока не получилось запустить (как и у других людей на гитхабе в ветке обсуждений библиотеки).

    Поняв что ардуино не тянет такое (а еще нужно что б работал основной скетч), я начал искать доп модули, ничего подходящего не нашел, самое путное это DFPlayer Mini, но тут мне придется брать 3 штуки, так же 3 микросдишки, что не очень по размерам и бюджету.

    Поэтому вопрос, может кто предложит решение получше (модуль похитрее какой нибудь) ?
     
  2. Airbus

    Airbus Радиохулиган Модератор

  3. b707

    b707 Гуру

    а главное, что от трех DFPlayer вы никогда не получите синхронного звучания. все время одна дорожка будет обгонять другую

    Думаю. что дешевого трехканального модуля для проигрывания звуковых файлов вам в принципе не найти - таких не существует

    Как решение могу предложить заранее сводить три дорожки вместе в любом звуковом редакторе и писать в один файл.
     
    Последнее редактирование модератором: 22 окт 2020
  4. issaom

    issaom Гуру

    В каждом динамике должно свое играть ?
    Дорожки большие ? (плейлист или один медиа файл?) Какого размера ?
     
  5. parovoZZ

    parovoZZ Гуру

    бери одноплатник. Там хоть чёрта лысаго сделаешь))
     
  6. Airbus

    Airbus Радиохулиган Модератор

    Ты не понял!Надож на Ардуино!
     
  7. MegaNoob

    MegaNoob Нуб

    Синхронность не нужна идеальная.


    Такой вариант не пойдет, т.к. нужно что б на каждый динамик воспроизводилась своя дорожка (то есть в опр. момент времени может одна дорожка воспроизводиться (на 1 динамик), 2 дорожки на 2 динамика (каждая дорожка на свой динамик) и 3 подобно...)


    Да, в каждом динамике свое должно играть (выше подробней ответил)
    Дорожки на каждый динамик разные, и по нескольку штук, по размеру допустим (примерно): на каждый канал (динамик) по 3 дорожки, размером по ~10Мб


    Как понял одноплатный компьютер, с ними еще не сталкивался. Можно пример на каком можно сделать, размер соответственно не больше ардуино нано.
     
  8. parovoZZ

    parovoZZ Гуру

    Omega
    https://amperka.ru/product/onion-omega2
    У неё выход I2S. Цепляешь любой декодер и всё.

    тю, барин. Сперва сделай, потом хотелки свои удовлетворишь.
     
  9. MegaNoob

    MegaNoob Нуб

    Глянул, по размерам не подходит =)
     
  10. b707

    b707 Гуру

    если вам рассинхрон не страшен, то самое простое. доступное и дешевое будет таки три штуки DFPlayer-а.
    а чтоб они много места не занимали - предлагаю встроить их в колонки, динамики у вас по любому будут крупнее платы плеера
     
    Последнее редактирование: 23 окт 2020
    MegaNoob нравится это.
  11. sslobodyan

    sslobodyan Гик

    Без указания требуемого качества звука обсуждение реализации малопродуктивно. Могу навскидку предложить заменить атмегу на стм32 (поддерживается ардуино-сообществом). Там есть ДМА. Останется только считать из флешки 3 блока каждой композиции, усреднить побайтно, положить в буфер и натравить на него ДМА для вывода в I2S. Еще и время обслужить основной код останется (для разумного качества воспроизведения).