Делаем барабанную установку на Arduino
- Войдите на сайт для отправки комментариев
Есть необходимость в сборе барабанной установки на арудино. В ютубе нашел ролики на эту тему, но там в итоге получался барабанный МИДИ модуль, сигнал которого уходил в FL Studio. Этот вариант меня не устроил и я начал думать, как реализовать барабанную установку. В голову пришли две идеи.
Первая идея:
Использовать пьезодатчики, для "регистрации" удара. Далее, при срабатывании датчика/датчиков ардуино обращается к micro sd, либо sd карточке и берет оттуда один из аудио файлов. Либо несколько файлов, если сработали несколько датчиков. Далее эти аудио файлы подаются на выход mini jack 3.5. К выходу уже по желанию подключаются наушники/колонки.
В данной идее не ясно, будет ли ардуино одновременно воспроизводить аудио файлы. Да, я понимаю, что одновременно два датчика не сработают, будет разница в миллисекундах, но аудио файлы должны наложиться друг на друга и звучать одновременно. Опасаюсь того, что ардуино не будет так воспроизводить аудио, а начнет воспроизводить их последовательно, либо еще каким-то образом, но абсолютно не так, как нужно.
Вторая идея:
Сделать по сути МИДИ модуль, данные из ардуино передаются на смартфон. Смарфон либо из своей памяти подтягивает необходимые аудиофайлы и воспроизводит их. Либо отправляет их в FL Studio mobile, а там уже открывается необходимый плагин и звук воспроизводится с него.
В данной идее не ясно, как сделать так, чтобы сигналы с ардуино ставали миди.
Хотелось бы услышать какой вариант лучше по реализации, и как можно решить вопрос с "неясностями"
Более перспективным, на мой взгляд, является вариант с MIDI, т.к. в нем:
1. Четко разделяются две достаточно сложные независимые друг от друга задачи - обработка сигнала с датчика и формирование звука.
2. Известно (в том числе и из многолетней практики), что способ описания музыкального звука, реализованный в MIDI, адекватно описывает способы игры на ударных инструментах.
Это, так сказать, ответ на вопрос в конце темы.
Но в этой связи у меня также появились вопросы:
1. Чем не устраивают существующие способы имитации ударной установки?
2. Чем предполагаемый проект будет отличаться от множества существующих и реально работающих аналогов?
3. Что именно Вы подразумеваете под словами "Ардуино воспроизводит файлы"? Как технически Вы это себе представляете?
Про вариант с MIDI я вас услышал, приму к дальнейшим размышлениям по этой теме.
По вопросам:
1)В интернете нашел только способ имитации с MIDI. Этот вариант я не хочу использовать, так как постоянно будет необходим ПК для игры на барабанах (для меня это минус, хотелось бы сделать более мобильный проект. Можно, конечно, использовать ноутбук, но его тоже нужно переносить и тд.)
2) Про аналоги, данный проект как минимум обойдется дешевле любого готового аналога. Во-вторых можно использовать разные звуки барабанов (к примеру вытащить необходимые "звуки" из EZDrummer 2). То есть не будет никаких ограничений по настройке.
3) Технически представляю, что при срабатывании датчика ардуино обращается к microsd карточке, и "вытаскивает" оттуда определенный аудио файл, который подается на выход - jack 3.5. Если же вы говорили про вариант со смартфоном, то написать приложение, которое по сути будет выполнять тоже самое.
Вы видели у Arduino jack 3.5"?
К примеру "https://www.chipdip.ru/product/troyka-line-out-mini-jack"
1)В интернете нашел только способ имитации с MIDI. Этот вариант я не хочу использовать, так как постоянно будет необходим ПК для игры на барабанах (для меня это минус, хотелось бы сделать более мобильный проект. Можно, конечно, использовать ноутбук, но его тоже нужно переносить и тд.)
А как вообще связаны MIDI и ПК?
MIDI - это, вообще-то цифровой интерфейс музыкальных инструментов. Т.е. служить для связи музыкальных инструментов между собой. Откуда взялся ПК?
2) Про аналоги, данный проект как минимум обойдется дешевле любого готового аналога.
Вы заблуждаетесь: handmade в принципе не может стоить дешевле изделия с конвейера.
А для высокотехнологичных устройств разница может достигать нескольких порядков (т.е. тысяч и миллионов раз) за счет того, что дорогая разработка "размазывается" на тысячи и миллионы изделий.
Во-вторых можно использовать разные звуки барабанов (к примеру вытащить необходимые "звуки" из EZDrummer 2). То есть не будет никаких ограничений по настройке.
У MIDI не хватает возможностей настройки - единственная серьезная причина. Тогда, думаю, именно этот аспект в первую очередь и подлежит обсуждению.
3) Технически представляю, что при срабатывании датчика ардуино обращается к microsd карточке, и "вытаскивает" оттуда определенный аудио файл, который подается на выход - jack 3.5. Если же вы говорили про вариант со смартфоном, то написать приложение, которое по сути будет выполнять тоже самое.
Что Вы подразумеваете под "вытаскивает"?
И еще любопытно, какие форматы аудио файлов Вы видите в своем проекте?
Ну и заодно - какая именно модель Ардуино будет использоваться?
К примеру "https://www.chipdip.ru/product/troyka-line-out-mini-jack"
Это не "у Arduino", а "у Iskra JS".
Судя по размаху - может быть даже FLAC.
Да, я понимаю, что это для Iskra JS, но судя по технической документации(3 страница в документе, можете найти по ссылке, которую отправлял ранее), должно работать и с ардуино
каждому барабану надо дать по отдельной ардуине
Да, я понимаю, что это для Iskra JS, но судя по технической документации(3 страница в документе, можете найти по ссылке, которую отправлял ранее), должно работать и с ардуино
Да нет, мне всё равно конечно. Просто имейте в виду, что "пищать" (стр. 3 в документе) и "воспроизводить аудиофайл" - это две большие разницы.
Про связь ПК и MIDI
Данные передаются с ардуино в пк, далее используется программа hairless MIDI, чтобы перенаправить данные с serial port на MIDI. MIDI направляется в FL Studio.
Про дешевизну
Хорошо, но к примеру, если рассматривать самый бюджетные варианты "https://www.muztorg.ru/product/A095043", https://pop-music.ru/products/elektronnaya-udarnaya-ustanovka-soundking-skd120-888880021442/ . Цена более 20 тысяч. Если же я соберу свой handmade, его цена будет как минимум в 2 раза меньше. Я понимаю, что качество и возможности готового продукта будут выше, но и качества handmade мне должно хватить.
Полагаю, вы не совсем верно меня поняли про "настройку". Имел ввиду, что имеется множество записанных звуков ударных. В итоге я смогу использовать любой из готовых звуков, смогу "привязать" к любому датчику любой звук. Появится возможность сделать сборку необходимых звуков для нужного звучания
По модели, у меня без дела лежит UNO, думаю использовать ее, но если понадобится, готов купить Mega
Под вытаскивает понимаю так, что при срабатывании одного из датчиков ардуино обращается к определенному файлу на sd карточке и воспроизводит его.
С форматом еще не определился, так как первый раз взялся за подобный проект. До этого был опыт с ардуино, но не колоссальный. Прошу подсказать, что и как лучше сделать, для реализации данного проекта. Если можете также подсказать необходимый формат, то буду весьма благодарен.
Да, сразу не заметил. Полагаете аудио файл воспроизвести не удастся?
каждому барабану надо дать по отдельной ардуине
Это, конечно, будет работать. Но я бы хотел собрать на 1 микроконтроллере, максимум на 2
Да, сразу не заметил. Полагаете аудио файл воспроизвести не удастся?
У andriano, возможно и выйдет, но делаете-то лично Вы для себя. Поэтому я не могу не обратить внимание на крайнюю неоднозначность места выбранных комплектующих в данной конструкции.
Про связь ПК и MIDI
Данные передаются с ардуино в пк, далее используется программа hairless MIDI, чтобы перенаправить данные с serial port на MIDI. MIDI направляется в FL Studio.
Нет, ну это Вы пишете, как у Вас организовано сейчас. Но это же не единственный возможный вариант. У меня, например, работает связка: MIDI-keyboard - MIDI-box - MIDI-synthesyzer. Как видите, никакого ПК.
Про дешевизну
Хорошо, но к примеру, если рассматривать самый бюджетные варианты "https://www.muztorg.ru/product/A095043", https://pop-music.ru/products/elektronnaya-udarnaya-ustanovka-soundking-skd120-888880021442/ . Цена более 20 тысяч. Если же я соберу свой handmade, его цена будет как минимум в 2 раза меньше. Я понимаю, что качество и возможности готового продукта будут выше, но и качества handmade мне должно хватить.
Видите ли, дело может обстоять следующим образом:
- приходите Вы в магазин и видите устройство за $500. Что-то слишком дорого - думаете Вы, - я соберу такой за $100.
- покупаете деталей на $100 и действительно собираете полный аналог. Но вот беда - ему нужна прошивка, которой у Вас нет.
- и тут выясняется, что разработка прошивки стоит $2000000, а те "лишние" $400, которые Вы думали сэкономить - просто цена прошивки, разделенная на тираж в 5000 экземпляров. Если у Вас только 1 экземпляр вместо 5000, то сэкономить, мягко говоря, не получится.
Полагаю, вы не совсем верно меня поняли про "настройку". Имел ввиду, что имеется множество записанных звуков ударных. В итоге я смогу использовать любой из готовых звуков, смогу "привязать" к любому датчику любой звук. Появится возможность сделать сборку необходимых звуков для нужного звучания
Записанный звук - это еще далеко не сэмпл пригодный для воспроизведения. Это - лишь заготовка для него.
По модели, у меня без дела лежит UNO, думаю использовать ее, но если понадобится, готов купить Mega
Под вытаскивает понимаю так, что при срабатывании одного из датчиков ардуино обращается к определенному файлу на sd карточке и воспроизводит его.
Ни Уно, ни Мега не способны воспроизводить звук. Можно, конечно, к ним добавить аппаратное устройство звуковоспроизведения типа dfplayer или vS1053b, но есть большая вероятность, что между ударом по датчику и началом звука будет непозволительно большая задержка.
Есть и другой аспект.
Я ведь с самого начала рекомендовал разделить задачи взаимодействия с датчиком и воспроизведения звука. Теперь оказывается, что со второй задачей без дополнительного "железа" контроллеры типа Уно/Нано/Мини/Мега справиться принципиально не могут.
Но и с первой задачей не все гладко. Я тут попытался оценить, что нужно для того, чтобы качественно снять сигнал с датчика, и у меня получилось, что Уно/Нано/Мини/Мега могут на пределе обработать только 4 датчика. Если же мы хотим иметь от 8 датчиков и больше (на один инструмент желательно иметь не менее 2 датчиков) то самый подходящий контроллер из широко применяемых в Ардуино - Blue Pill (stm32f103).
Ну и вдогонку уж упомяну: единственный контроллер способный работать со звуком - это Ардуино Дуе.
С форматом еще не определился, так как первый раз взялся за подобный проект. До этого был опыт с ардуино, но не колоссальный. Прошу подсказать, что и как лучше сделать, для реализации данного проекта. Если можете также подсказать необходимый формат, то буду весьма благодарен.
Думаю, практически единственный приемлемый формат - WAV. По крайней мере, для начала. Потом, вероятнее всего, нужно будет придумывать собственный формат для хранения сэмплов.
каждому барабану надо дать по отдельной ардуине
Это, конечно, будет работать. Но я бы хотел собрать на 1 микроконтроллере, максимум на 2
тогда только миди
Нет, ну это Вы пишете, как у Вас организовано сейчас. Но это же не единственный возможный вариант. У меня, например, работает связка: MIDI-keyboard - MIDI-box - MIDI-synthesyzer. Как видите, никакого ПК.
Хм, о таком варианте я и не думал. Могли бы вы подробнее рассказать о данной связке?
Частично проект описан здесь:
Друзья, поправьте меня, если не прав. На мой взгляд, ТС предложил слишком уж простой подход к решению задачи. В лучшем случае проектируемая установка будет работать с чисто фиксированными сэмплами (пусть даже выдранными и Эзетдраммера). В худшем - придется как-то использовать алгоритм синтеза (это ардуино не осилит). Вижу несколько капканов:
1. ТС утверждает, что ему влом таскать с собой ноутбук. Но остальное-то, как то блины с пьезодатчиками, педали чапа и бочки, сиденье (это по-минимуму) таскать придется. Так что, хороший ноут (да с теми же сэмлерами) без всяких ардуин решит задачу на порядки качественнее, а груз особо и не увеличит..
2. Латенция при воспроизведении звуков по сигналам МИДИ - проблема, над которой народ бьется очень давно и не всегда успешно: задержка даже с лучшими драйверами (зачастую - специально заточенныеми под определенное железо) становится все меньше, но полностью не исчезает.
3. Игра на ударных - это не просто долбежка по мембране барабана или по тарелкам. Тембр, атака, громкость и прочее зависят от силы удара, его вектора, инструмента (палочки, помпоны, щетки...), от места удара на мембране или меди. Да куча тонкостей. Кстати, МИДИ-протокол многое из этого не умеет передавать, поэтому и используются банки сэмплов гигантских (от слова гигабайты :)) размеров. Без учета всего этого предлагаемый ТС аппарат будет абсолютно бездушным, а, значит, не применимым.
Вообще, хорошая установка - весьма непростое устройство, которое, к тому же, в карман не положить.