Оглавление:
- Шаг 1. Зависимости
- Шаг 2. Настройте входные значения Midi
- Шаг 3. Добавьте дополнительные папки с образцами
- Шаг 4. Добавьте и настройте дополнительные образцы в новых папках
- Шаг 5: Ссылка на цифровую клавиатуру
Видео: Драм-машина Raspberry Pi: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Пример секвенсора через Raspberry Pi + Python.
Секвенсор имеет 4 полифонии и позволяет пользователю сохранять и настраивать 6 различных последовательностей, которые они могут переключать в реальном времени, а также поддерживает возможность переключения между разными семплами.
Я написал сценарий таким образом, что он полностью совместим с любым MIDI-контроллером и звуками. Я использую 18 различных звуковых банков, по 16 сэмплов в каждом, однако добавлять или вычитать банки и сэмплы легко и не требуется много изменений. Если у вас возникнут проблемы, напишите мне по электронной почте: [email protected]
Найдите код на GitHub по адресу:
Пожалуйста, дайте мне знать, если вы его используете, и особенно, если вы снимаете с ним видео!
Шаг 1. Зависимости
Для этой программы требуются следующие (не встроенные) модули Python:
мидо
Pygame
тупой
Однако Mido создает некоторые сложности, поскольку сама Mido требует некоторых зависимостей. Чтобы убедиться, что все они установлены, просто введите следующие команды в терминал вашего Raspberry Pi (опуская «$»), и все будет хорошо. Остальные модули можно установить в обычном режиме.
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install libasound-dev или libasound2-dev
$ sudo apt-get install libjack0
$ sudo apt-get install libjack-dev
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev
$ sudo pip установить python-rtmidi
$ sudo pip install mido
Шаг 2. Настройте входные значения Midi
В основном скрипте Python существует массив под названием noteList, состоящий из 16 целых чисел (строка 165). Это значения MIDI-нот, которые наш контроллер отправляет на Pi для запуска звуков. Однако каждый MIDI-контроллер отличается, поэтому, если у вас также нет Akai LPD8, вам, скорее всего, придется изменить эти значения, чтобы они соответствовали вашему устройству.
Репозиторий Github также включает еще один скрипт под названием midihelp.py, созданный специально для этой цели! Все, что он делает, это выводит на консоль входные значения с первого MIDI-контроллера, который распознает компьютер. Все, что вам нужно сделать, это заменить эти значения в массиве, если они отличаются от значений, включенных в noteList.
Порядок нот также зависит от того, какой звуковой эффект для каждой папки воспроизводится, так что имейте это в виду.
Шаг 3. Добавьте дополнительные папки с образцами
Образцы наборов в сценарии хранятся в папках в том же каталоге, точно так же, как набор 808 находится в файле GitHub. Таким образом, я могу хранить в папках всевозможные наборы образцов, которые легко упорядочить и заменить.
Единственное, что нужно изменить в самом скрипте, - это переменная foldNum, которая просто сообщает скрипту, сколько папок с образцами существует. В настоящее время для скрипта значение foldNum установлено равным единице, потому что в том же каталоге есть только одна подпапка (комплект 808). Максимальное количество папок, которые скрипт может обрабатывать на данный момент, составляет 18, именно столько я использую, однако довольно тривиально для измените это, дайте мне знать, если вам понадобится помощь.
Имена папок на самом деле не имеют значения (если они все разные), поскольку сценарий просто считывает количество папок в одном каталоге и таким образом захватывает пути. Однако сами имена файлов важны, подробнее об этом на следующем шаге.
Шаг 4. Добавьте и настройте дополнительные образцы в новых папках
Звуки загружаются в сэмплер через папки в том же каталоге, содержащие файлы.wav с именами от 0 до 15. См. Прилагаемую папку 808 для примера. ВСЕ подпапки с образцами должны выглядеть одинаково.
Индекс MIDI-входов в массиве noteList точно соответствует имени файла.wav.
Например:
- когда вы запускаете MIDI-ноту, хранящуюся в noteList [0], будет воспроизводиться wav-файл 0.wav.
- когда вы запускаете MIDI-ноту, хранящуюся в noteList [8], будет воспроизводиться wav-файл 8.wav.
Я сделал это отчасти для того, чтобы каждый MIDI-контроллер можно было легко настроить для работы со скриптом, а также чтобы я мог легко расширить или ограничить количество сэмплов и входных данных, а также организовать файлы и скрипт таким образом, чтобы бас-барабан звуки, например, всегда будут сохраняться как 0.wav и запускаться по первой MIDI-ноте.
Я выбрал 16 значений несколько произвольно, чтобы соответствовать 16 входам на моем контроллере, поэтому, если вы предпочитаете сделать секвенсор только с 1 семплом или с большим количеством, все, что вам нужно будет сделать, это соответствующим образом пронумеровать аудиофайлы и вычесть или сложить числа, хранящиеся в массиве noteList, чтобы соответствовать.
Если прилагаемый комплект 808 работает правильно, но у вас проблемы с вашими собственными образцами, решение, скорее всего, будет заключаться в изменении частоты дискретизации файлов в соответствии с частотой дискретизации PyGame 22, 050 кГц и битовой глубиной 16. Вы можете сделать это в Audacity или любое другое программное обеспечение для редактирования аудио. Они должны отлично работать оттуда!
Шаг 5: Ссылка на цифровую клавиатуру
Хорошо, в секвенсоре происходит много вещей, больше, чем я изначально предполагал, поэтому я втиснул немало в цифровую клавиатуру, чтобы соответствовать возросшей функциональности. Это в виду, Звездочка * и точка. оба работают как функциональные клавиши.
ССЫЛКА
ОСНОВНЫЕ ФУНКЦИИ
[8] - Включение и выключение метронома
[9] - Включение и выключение режима записи.
[Enter] - последовательность воспроизведения / паузы
[0] - Удалить текущую ноту по порядку
[Num Lock и *] - Завершение работы
[MIDI Note и.] - Не преобразовывать в четные числа
ТЕМП-ФУНКЦИИ
[+] - Ускорение курса BPM
[-] - Курс замедления BPM
[+ и *] - быстрое ускорение BPM
[- и *] - быстрое замедление BPM
[+ и.] - точное ускорение BPM
[- и.] - Fine Slow Down BPM
ФУНКЦИИ ПОСЛЕДОВАТЕЛЬНОСТИ
[1-6] Вызов последовательности 1-6
[1-6 и.] Сохранить последовательность 1-6
[0 и.] Очистить текущую последовательность
ИЗМЕНЕНИЕ ПАПКИ ОБРАЗЦА
[1–9 и *] - заменить на пакет образцов в папках 1–9
[1-9 и * и.] - Перейти к образцу в папках 10-18
ПОСЛЕДОВАТЕЛЬНОСТЬ СОВЕТОВ:
-Очистите текущую последовательность [0 и.] И сохраните ее в любых последовательностях, которые вы хотите очистить из памяти.
-Позвоните последовательность и сохраните ее под другим номером, чтобы скопировать ее.
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов
Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Играйте в Doom на своем IPod за 5 простых шагов !: 5 шагов
Играйте в Doom на своем IPod за 5 простых шагов!: Пошаговое руководство по двойной загрузке Rockbox на iPod, чтобы играть в Doom и десятки других игр. Это действительно легко сделать, но многие люди до сих пор удивляются, когда видят, как я играю дум на своем iPod, и путаются с инструкциями
Кормушка для рыбы Arduino Uno за 6 простых и простых шагов !: 6 шагов
Arduino Uno Fish Feeder за 6 простых и дешевых шагов !: Итак, для этого проекта может потребоваться немного предыстории. Людям с домашними рыбками, вероятно, приходилось сталкиваться с той же проблемой, что и мне: отпуск и забывчивость. Я постоянно забывала покормить рыбу и всегда старалась это сделать, пока она не упала
Установка Raspbian на Raspberry Pi 3 B без HDMI - Начало работы с Raspberry Pi 3B - Настройка Raspberry Pi 3: 6 шагов
Установка Raspbian на Raspberry Pi 3 B без HDMI | Начало работы с Raspberry Pi 3B | Настройка Raspberry Pi 3: как некоторые из вас знают, компьютеры Raspberry Pi довольно крутые, и вы можете получить весь компьютер всего на одной крошечной плате. Raspberry Pi 3 Model B оснащен четырехъядерным 64-битным ARM Cortex A53 работает на частоте 1,2 ГГц. Это ставит Pi 3 примерно на 50