OscPocketO — компактный синтезатор и барабольная машина на Arduino
Компоненты и материалы
| Arduino UNO | × | 1 |
| Аудио джек (female, 3.5 мм) | × | 1 |
| Перемычки Female/Female | × | 2 |
| Перемычки Male/Male | × | 2 |
Необходимые инструменты
- Паяльник
О проекте
Скачайте последний код и инструкции по сборке: https://oscillator.se/arduino/
Вдохновлённый портативными музыкальными станциями, я изучил отличную библиотеку Mozzi. Не было бы полезно создавать несколько синтезаторов и барабольных машин, которые можно синхронизировать по темпу? Так родился OscPocketO — портативная музыкальная студия, использующая только Arduino и LCD-кит.
Управление
Переключение режимов осуществляется кнопкой SELECT. Кнопки UP/DOWN увеличивают/уменьшают значения, LEFT/RIGHT перемещают курсор.
Встроенный светодиод Arduino мигает при воспроизведении каждой ноты.
Внимание: прямое подключение OscPocketO к домашней аудиосистеме может перегрузить её! Используйте наушники или микшер.
Если дисплей LCD «глючит», многократно нажимайте кнопки, пока не пройдёте меню Tools — дисплей сбросится.
OscPocketO Synth (Синтезатор)
Режимы:
- START — запуск/остановка секвенсора.
- SYNC — режим синхронизации: NONE (нет синхросигналов), INT (внутренний такт, отправка синхросигналов — режим дирижёра), EXT (внешний такт, отправка синхросигналов — режим исполнителя).
- PATTERN — выбор текущего паттерна.
- EDIT — редактирование паттерна. Ноты хранятся как MIDI-значения в 1 такте (16 шагов по 1/16).
- STATE — состояние нот: X = вкл, O = выкл.
- TEMPO — темп секвенсора.
- GATE — длительность ноты в % от 1/16.
- SHIFT — транспозиция (UP/DOWN) и сдвиг последовательности (LEFT/RIGHT).
- WAVEFORM — форма волны 1-го осциллятора: SIN, TRI, SAW, SQUARE.
- ATTACK — время атаки (мс).
- RELEASE — время затухания (мс).
- FILTERMODE — режим НЧ-фильтра:
- FIXED — без модуляции, используются Cutoff и Resonance.
- RANDOM — случайная модуляция от 0 до Cutoff.
- SLOW — модуляция за ~4 такта от 0 до 255.
- FAST — модуляция за ~1 такт от 0 до 255.
- CUTOFF — частота среза фильтра (0–255).
- RESONANCE — резонанс фильтра (0–255).
- WAVEFORM2 — включение и форма волны 2-го осциллятора: NONE, SIN, TRI, SAW, SQUARE.
- DETUNE2 — детюн 2-го осциллятора относительно 1-го (в Гц).
- PLAY — клавиатурный режим. Секвенсор останавливается, 4 первые ноты паттерна назначаются на LEFT, UP, DOWN, RIGHT.
- TOOLS — утилиты (активация UP):
- S — сохранение настроек и паттернов в EEPROM.
- L — загрузка из EEPROM.
- R — случайный паттерн.
- B — басовый паттерн на основе текущей ноты.
- C — копирование текущего паттерна в следующий слот.
OscPocketO Drums (Барабаны)
Воспроизводит 5 звуков одновременно: Kick, Snare, Hihat, Clap, Crash — все виртуальные аналоговые синтезаторы на базе Mozzi.
Режимы:
- START, SYNC, PATTERN, TEMPO, GATE — аналогично синтезатору.
- EDIT — редактирование паттерна. Значения нот формируются суммой кодов звуков:
- Kick = 1
- Snare = 2
- Hihat = 4
- Clap = 8
- Crash = 16
- Tom = 32
Пример: значение 17 = Kick (1) + Crash (16).
- EDITKICK, EDITSNARE, EDITHIHAT, EDITCLAP, EDITCRASH, EDITTOM — настройка параметров каждого звука (частота, время затухания, наклон).
- PLAY — сольный режим: LEFT=Kick, UP=Snare, DOWN=Tom, RIGHT=Crash.
- TOOLS — S (сохранение), L (загрузка), R (случайный), B (повторяющийся), C (копирование).
Синхронизация нескольких OscPocketO
Один прибор — Кондуктор (Conductor), остальные — Исполнители (Players).
1. Настройка
- Соедините GND всех устройств.
- Кондуктор: Start=Stop, Sync=Internal.
- Исполнители: Start=Stop, Sync=External, затем Start=Play (порядок важен!).
- SYNC OUT Кондуктора → SYNC IN 1-го Исполнителя.
- При нескольких Исполнителях: SYNC OUT предыдущего → SYNC IN следующего.
2. Игра
- Кондуктор: Start=Play.
- На всех приборах можно менять звуки и паттерны. Темп меняется только на Кондукторе.
Сборка железа
1. LCD Keypad Shield
Перед установкой щита нужно изогнуть его контакт D10 на 90° — он используется для подсветки, но нам нужен D10 для аудио.
После установки щит подключает:
- LCD: D4, D5, D6, D7, D8, D9
- Кнопки: A1
Кнопка RST перезагружает Arduino, в программе не используется.
2. Аудио джек
Подключается к D10 (сигнал) и GND. По умолчанию Mozzi использует D9, но он занят щитом — нужно изменить библиотеку (см. раздел ПО).
Припойте цветной провод к «кончику» джека (сигнал), чёрный — к оболочке (GND). Цветной к D10 на обратной стороне Arduino, чёрный к GND на щите.
3. Sync IN и OUT
Разрежьте female-female перемычки пополам. Припойте к D11 (SYNC IN), D12 (SYNC OUT) и GND.
4. Монтаж в корпус
Для надёжности поместите OscPocketO в корпус, зафиксируйте кабели и аудиоджек.
5. Кабель синхронизации (общий GND)
Возьмите длинную male-male перемычку, снимите изоляцию посередине и припойте отрезанный кусок. Теперь все 3+ контакта соединены.
Установка ПО
Установка и настройка библиотеки Mozzi
- Скачайте и установите Mozzi: https://sensorium.github.io/Mozzi/download/
- В папке библиотек Mozzi откройте
AudioConfigStandardPlus.hв текстовом редакторе. - Замените A на B и B на A в следующих 4 строках:
#define AUDIO_CHANNEL_1_OUTPUT_REGISTER OCR1B #define AUDIO_CHANNEL_2_OUTPUT_REGISTER OCR1A #define AUDIO_CHANNEL_1_PIN TIMER1_B_PIN #define AUDIO_CHANNEL_2_PIN TIMER1_A_PIN
Загрузка скетча OscPocketO
Выберите версию: Synth (code_synth/code_synth.ino) или Drums (code_drums/code_drums.ino), откройте в Arduino IDE и загрузите.
Код
Код для синтезатора и барабольной машины доступен для скачивания.
Схемы
Схема подключения прилагается.
Производственный процесс
- Экспертное руководство по сверлильно-нарезным станкам: кастомизация и универсальность
- Ленточно-пильные станки: революция в промышленном резании металла
- Повысьте качество резки металла и дерева с высокопроизводительной ленточной пилорамой
- Продвинутая 5-осевая обработка и мультизадачность: точность и эффективность
- Понимание фрезерных станков: типы, функции и применения
- Продвинутые токарные центры и технологии станков с ЧПУ
- Сверлильно-фрезерные станки: принцип работы, виды и применение
- ЧПУ токарно-фрезерные станки: функции, преимущества и применение
- Осваиваем токарные станки: типы, классификация и практическое применение
- Сверлильные станки с механической и ручной подачей: подробное сравнение