Оглавление:
- Шаг 1: настройка Arduino
- Шаг 2: добавление элементов управления
- Шаг 3: Добавление выходов
- Шаг 4. Загрузка кода
- Шаг 5: возиться
- Шаг 6: настройка
Видео: Синтезатор арпеджио (Mosquito I): 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
Mosquito I - это небольшой синтезатор арпеджио, который использует Arduino Nano и библиотеку синтеза звука Mozzi. Он может воспроизводить более двадцати 8-шаговых последовательностей, но вы можете добавить столько пользовательских последовательностей, сколько захотите. Он относительно прост в установке и не требует большого количества деталей.
Запасы:
- Arduino Nano (или любой другой Arduino действительно должен работать)
- 5 потенциометров (линейный 10K)
- 2 шт. Кнопки
- 1 шт. Светодиод
- Резистор 1 шт. (330 Ом)
- Резистор 2 шт. (1 кОм)
- Резистор 1 шт. (2 кОм)
- 1 электролитический конденсатор (100 мкФ)
- Керамический конденсатор (33 нФ) - 1 шт.
- 1 стереоразъем
- Монтажный провод
- Макетная плата
Шаг 1: настройка Arduino
Во-первых, давайте поместим Nano на макетную плату и настроим нашу мощность:
- Поместите Nano на макетную плату. Поместите, как показано на изображении выше. Он должен перекрывать центральный канал макета. Вам нужно, чтобы он располагался ближе к одному концу макета, а порт USB был обращен к этой стороне. Таким образом, кабель не будет мешать, когда мы подключим его. Если вы используете Arduino большего размера, например Uno или Mega, вы, конечно, не будете монтировать его на макетной плате.
- Подключите шины питания к Arduino. Подключите одну из положительных (красных) шин макета к контакту 5V Arduino с помощью провода или перемычек. Затем подключите одну из отрицательных (синих) шин к одному из контактов GND Nano.
- Соедините шины питания друг с другом. Чтобы получить питание по направляющим с обеих сторон макета, соедините направляющие с обеих сторон макета друг с другом, пропустив провод от положительной шины с одной стороны к положительной с другой стороны. Повторите то же самое с отрицательными рельсами.
Шаг 2: добавление элементов управления
Mosquito I использует пять потенциометров и две кнопки для управления.
Потенциометры:
- Поставьте горшки на макетную доску. Разместите горшки так, чтобы каждая булавка находилась в своем ряду.
- Подключите кастрюли к шинам питания. Подключите левый штифт каждого горшка (если вы смотрите на ручку) к одной из отрицательных направляющих на макетной плате. Подсоедините правый контакт каждого горшка к одной из положительных шин макета.
- Подключите горшки к Arduino. Подключите центральный контакт каждого горшка к одному из аналоговых контактов на Arduino. Центральный штифт первого банка соединяется с A0, второй горшок - с A1 и так далее, причем последний горшок соединяется с A4.
Нажмите на кнопки:
- Поместите кнопки на макетную плату. Поместите две кнопки на макетную плату так, чтобы они охватывали центральный канал.
- Подключите положительные стороны. На одной стороне макета подключите один из контактов кнопки к положительной шине.
- Подключите отрицательные стороны. Поместите один из резисторов 1K на макетную плату так, чтобы один конец был подключен к неиспользуемому контакту кнопки, а другая сторона резистора подключилась к отрицательной шине.
- Подключите кнопку к Arduino. Проложите провод в ряду, который соединяет кнопку с отрицательной шиной и контактом D2. Сделайте то же самое с другой кнопкой, но подключите ее к D3.
Шаг 3: Добавление выходов
Мы выводим звук с контакта 9, а также мигаем светодиодом на первом этапе каждой последовательности. Вот как настроить для этого оборудование.
ВЕЛ
- Поместите светодиод в пустое место на макетной плате.
- Подключите отрицательную (короткую) ногу светодиода к отрицательной шине.
- Поместите токоограничивающий резистор. Подключите одну сторону резистора 330 Ом к положительной (длинной) ножке светодиода. Подключите другую сторону резистора к выводу D4 Arduino.
Аудио выход
- Разместите RC сеть. Выходной сигнал от Arduino поступает с вывода 9, но сигнал может быть немного более горячим, чем могут обрабатывать некоторые динамики. Чтобы приблизить его к линейному уровню, я добавил сеть RC (на основе дизайна Notes & Volts). Поместите конденсаторы 33 нФ и 100 мкФ вместе с резистором 2 кОм, как показано на изображении / схеме. Убедитесь, что электролитический конденсатор емкостью 100 мкФ подключен с соблюдением полярности (положительная / длинная ножка идет к контакту 9 на Arduino, а отрицательная / короткая ножка подключена к разъему).
- Подключите отрицательную сторону аудиоразъема к земле. Подключения аудиоразъема могут немного отличаться в зависимости от типа, который вы используете, но обычно все они работают одинаково. Нам нужно подключить гильзу домкрата к массе. Иногда это обозначается знаком минуса или обозначается как «гильза», «кольцо» или «земля». Если на вашем аудиоразъеме нет этикеток, вам может потребоваться свериться с таблицей данных или просто внимательно осмотреть разъем и посмотреть, сможете ли вы определить, какой контакт подключен к муфте или внешнему кольцу разъема.
- Подключите положительный полюс аудиоразъема к отрицательному полюсу конденсатора емкостью 100 мкФ. Теперь наш аудиосигнал проходит с вывода 9 Arduino по RC-цепи и выходит с отрицательной стороны конденсатора 100 мкФ. Мы подключим это к положительной стороне нашего аудиоразъема. Обычно это обозначается знаком плюса или может быть помечено как «наконечник». Опять же, если на нем нет надписи, вам может потребоваться осмотреть его, чтобы выяснить, какой контакт будет подключаться к концу разъема. Кроме того, если вы используете стереоразъем, может быть соединение L-наконечника и R-наконечника. Поскольку мы выводим монофонический сигнал, вы можете просто подключиться к любому из разъемов наконечника.
Важно: если вы обнаружите, что звук слишком тихий, вы можете удалить сеть RC на шаге 1 и подключиться напрямую к звуку с вывода 9 Arduino. Это должно быть нормально, если вы подключаете звук к чему-то с предусилителем, например к внешним компьютерным динамикам, где у вас есть ручка громкости, но я бы не рекомендовал это для таких вещей, как наушники, вкладыши или прямая проводка к динамику. Если вы все же решите отказаться от RC-сети, я предлагаю полностью уменьшить громкость ваших динамиков перед включением Arduino, а затем постепенно увеличивать громкость, чтобы динамики не перегорели.
После того, как вы все настроили, еще раз проверьте, что все соединения выглядят правильно и соответствуют изображению и схеме выше.
Шаг 4. Загрузка кода
Теперь, когда все оборудование настроено, мы готовы заняться программной частью:
- Запустите IDE Arduino. На вашем компьютере запустите Arduino IDE (если у вас ее нет, вы можете скачать ее с
- Загрузите библиотеку Mozzi. Библиотека Mozzi - это то, что позволяет нам использовать нашу Arduino в качестве синтезатора. Чтобы получить эту библиотеку в своей среде IDE, перейдите на страницу Mozzi на github https://sensorium.github.io/Mozzi/download/. Нажмите зеленую кнопку «Код» и выберите «Загрузить ZIP».
- Установите библиотеку Mozzi из zip-файла. В среде Arduino IDE выберите Sketch-> Include Library-> Add. ZIP Library… Перейдите к загруженному zip-файлу, чтобы добавить его. Теперь вы должны увидеть Mozzi в списке в разделе Sketch-> Include Library.
- Загрузите код Mosquito I Arduino. Вы можете получить это на моем сайте github https://github.com/analogsketchbook/mosquito_one. (Обратите внимание, что схемы также доступны там, если они вам нужны для справки по подключению.
- Подключите Arduino к компьютеру и загрузите код.
Шаг 5: возиться
Вот и все. Вы должны иметь возможность подключить свои колонки к аудиоразъему и услышать сладкий звук арпеджированного синтеза от этого ittybitty Nano! Если сначала вы ничего не слышите, попробуйте центрировать ручки на всех горшках, чтобы убедиться, что вы получаете приличные начальные значения.
Вот что делают элементы управления:
Горшки:
Rate: определяет скорость воспроизведения секвенсора. При его понижении последовательно воспроизводятся отдельные ноты. При ее повороте ноты размываются, создавая совершенно новые формы волны.
Легато: второй горшок контролирует длину легато или ноты. При повороте влево получаются короткие, стилизованные ноты, а при повороте вправо - более длинные ноты.
Высота: устанавливает базовую высоту звука для последовательности. Регулятор высоты тона устанавливает значения MIDI, поэтому он увеличивает / уменьшает высоту звука в полутонах, а не непрерывно.
Фаза: поворот этого регулятора вправо вводит тонкий эффект фазировки. Технически говоря, это вызывает небольшую расстройку двух осцилляторов в Mosquito I, что и вызывает фазировку. Однако это не отслеживание высоты тона, поэтому эффект фазировки, вероятно, более заметен на нотах с низким тоном.
Фильтр: эта ручка регулирует частоту среза фильтра низких частот. Поворот влево отключает высокие частоты, создавая более приглушенный звук, а поворот вправо дает более яркий звук.
Кнопки:
Mosquito имеет более двадцати различных последовательностей, которые он может воспроизводить по умолчанию. Кнопки позволяют выбрать воспроизводимую последовательность. Одна кнопка перемещает вас вверх по списку последовательностей, а другая - вниз по списку.
Шаг 6: настройка
Я добавил несколько последовательностей по умолчанию, в основном с разными гаммами, но вы можете довольно легко настроить код, чтобы изменить последовательность проигрываемых нот, добавить новые или изменить количество нот в последовательности. Ниже приведены подробные сведения о том, как это делается, на случай, если вы захотите его настроить.
Изменение нот в существующей последовательности
Последовательности хранятся в массиве массивов, который называется ЗАМЕЧАНИЯ. Каждая нота сохраняется как значение ноты MIDI, поэтому, если вы хотите изменить ноты в определенной последовательности, просто измените номера нот MIDI для этой последовательности. По умолчанию в каждой последовательности воспроизводится 8 шагов, поэтому вы можете иметь только 8 значений MIDI в последовательности (см. Ниже, если вы хотите иметь разную длину последовательности).
Следует отметить, что ручка высоты звука добавляет смещение ноты к значениям MIDI, указанным в массиве NOTES. Когда ручка находится в центре, она воспроизводит ноты MIDI, указанные в массиве, но когда вы поворачиваете ручку высоты тона, она добавляет или вычитает полутон к проигрываемым нотам.
Добавление новых последовательностей
Вы можете добавлять новые последовательности в массив NOTES, просто добавляя новый массив из 8 нот в конце списка. Если вы это сделаете, вам также нужно будет изменить значение переменной numSequences, чтобы оно соответствовало новому количеству последовательностей. Например, в массиве NOTES по умолчанию 21 последовательность, поэтому для переменной numSequences установлено значение 21. Если вы добавляете одну новую последовательность, вам нужно изменить значение переменной numSequences на 22.
Вы можете добавить столько новых последовательностей, сколько захотите.
Изменение длины последовательности
Если вы хотите изменить длину своих последовательностей (если вы хотите, например, 4-шаговую или 16-шаговую последовательность), вы можете это сделать, но с единственной оговоркой, что все последовательности должны быть одинаковой длины. Вам также необходимо установить переменную numNotes, чтобы она соответствовала длине ваших последовательностей.
Прочие изменения
Возможен ряд других настроек, таких как переключение типов сигналов, настроек / значений фильтров, которые выходят за рамки данного руководства. Поначалу разобраться в коде Mozzi может быть немного сложно, но я постарался как можно больше задокументировать код, чтобы показать, что делают различные части кода.
Есть несколько основных частей кода Mozzi, которые имеют довольно специфическое применение, и я перечислил их ниже, чтобы дать вам представление о том, для чего они используются:
- setup () - Если вы программировали для Arduinos до того, как познакомились с этой функцией, и она почти так же используется в Mozzi. Мы используем его в основном для установки настроек по умолчанию для осцилляторов, фильтров и т. Д.
- updateControl () - здесь львиная доля кода Mozzi выполняет свою работу. Здесь мы считываем значения потенциометра и кнопки, сопоставляем и преобразуем эти значения для подачи в синтезатор и где выполняется секвенирование.
- updateAudio () - это окончательный результат библиотеки Mozzi. Обычно код здесь очень маленький и скудный, потому что эта функция используется Mozzi для максимизации всех возможных тактовых циклов. Как вы можете видеть в коде mosquito, он может быть немного загадочным, но все, что мы в основном делаем, комбинируя / умножая наши различные формы сигналов, а затем сдвигая их по битам, чтобы соответствовать определенному диапазону чисел. Лучше всего сделать эту функцию очень легкой (а не последовательными вызовами или выводами для чтения) и вместо этого поместить большую часть материала в функцию controlUpdate (). В документации Mozzi это подробно описано.
Рекомендуемые:
Синтезатор воды с MakeyMakey и Scratch: 6 шагов (с изображениями)
Водный синтезатор с MakeyMakey и Scratch: использование MakeyMakey для преобразования различных материалов в переключатели или кнопки и, таким образом, запуска движений или звуков на компьютере - увлекательное занятие. Человек узнает, какой материал проводит слабый импульс тока, и может изобретать и экспериментировать с i
Великолепный аналоговый синтезатор / орган, использующий только дискретные компоненты: 10 шагов (с изображениями)
Великолепный аналоговый синтезатор / орган, использующий только дискретные компоненты: аналоговые синтезаторы очень круты, но их довольно сложно сделать, поэтому я хотел сделать один настолько простым, насколько это возможно, чтобы его работа была легко понятной. нужно несколько базовых подсхем: Простой генератор с сопротивлением
Синтезатор с параллельным секвенсором: 17 шагов (с изображениями)
Синтезатор параллельного секвенсора: это руководство по созданию простого секвенсора. Секвенсор - это устройство, которое циклически производит серию шагов, которые затем приводят в действие генератор. Каждому шагу можно назначить отдельный тон и, таким образом, создать интересные последовательности или звуковые эффекты
Мой первый синтезатор: 29 шагов (с изображениями)
Мой первый синтезатор: Детский синтезатор появился, когда я сидел, сгорбившись, над путаницей синтезаторных проводов. Мой друг Оливер подошел, оценил ситуацию и сказал: «Вы знаете, что вам удалось сделать самую сложную детскую игрушку в мире». В то время как мой начальный г
Создадим синтезатор MIDI SN76489 USB с Arduino Nano: 7 шагов
Давайте создадим USB-MIDI-синтезатор SN76489 с помощью Arduino Nano: Вы когда-нибудь хотели создать свой собственный синтезатор на основе старых чип-мелодий 80-х? Слушайте простые полифонические мелодии, которые звучат так же, как звучали эти старые видеоигры Sega Master System и Megadrive? У меня есть, поэтому я заказал несколько чипов SN76489 у eb