Sporow
35 просмотров0 комментариев+1

Гитарный процессор на Repka Pi4 на основе MODEP

Как то давно увидел youtoobe ролик про гитарный процессор на малине, а тут как раз проект Repka стартовал вот решил попробовать. Был приобретена Pi4 так как Pi3 по производительности точно не хватит. Так в программирование не силен, о линуксе был только наслышан. Глаза боятся руки делают. Два года назад установить не получалось, но в эпоху развития ИИ решил попробовать еще разок.

Нам понадобится сама репка , дисплей и внешняя USB звуковая карта.

Пишем в ИИ запрос установка MODEP на репка пи4 из исходников

Незабываем на SD карту накатить систему REPKA OS вставляем в слот и грузимся.

вводим по порядку команды в консоль

sudo apt update && sudo apt upgrade -y sudo apt install -y git build-essential cmake m4 libasound2-dev libjack-jackd2-dev \ python3-dev python3-pip python3-setuptools python3-wheel virtualenv \ liblilv-dev libsratom-dev libsord-dev libserd-dev libpcre3-dev \ libfftw3-dev libbxml-dev libreadline-dev htop git-core

sudo apt update sudo apt install -y git build-essential libjack-jackd2-dev liblilv-dev lilv-utils \ libreadline-dev libfftw3-dev libasound2-dev libjpeg-dev zlib1g-dev \ python3-pip python3-dev python3-venv virtualenv qjackctl alsa-utils

ждем пока все установится и обновится.

Качаем исходники:

git clone --depth 1 https://github.com/moddevices/mod-host.git cd mod-host make sudo make install cd ..

Ждем установку

Теперь следующий:

git clone --depth 1 https://github.com/moddevices/mod-ui.git cd mod-ui # Создаём виртуальное окружение Python virtualenv modui-env source modui-env/bin/activate # Устанавливаем Python-зависимости pip3 install -r requirements.txt # Компилируем вспомогательные утилиты make -C utils cd ..

Ждем когда установится

Теперь немного установим плагинов lv2:

sudo apt install -y lv2-dev \ lsp-plugins-lv2 calf-plugins guitarix-lv2 \ mda-lv2 swh-lv2 tap-plugins invada-studio-plugins-lv2 \ fomp mda-lv2

Потом мы узнаем что нам надо другой Tornado:)

Этими командами мы пытаемся побороть наши небольшие трудности:

source modui-env/bin/activate pip install --upgrade tornado

source modui-env/bin/activate pip install tornado==5.1.1 python3 ./server.py

pip install 'tornado<6'

Теперь можно попробовать это все запустить, для этого нам понадобится три консоли и браузер. Подключаем внешнюю USB звуковую карту, у меня под рукой оказалась BEHRINGER U-PHORIA UM2

вводим в консоль команду:

aplay -l

смотрим под каким номер наша (ваша) звуковая карта видится в системе. у меня это было под номером 1 (при перезагрузке у меня почему-то этот номер менялся)

в первой консоли запускаем сервис Jack:

jackd -t 2000 -d alsa -d hw:1 -r 48000 -p 1024 -n 3 -X seq -s -S

смотрим чтоб сервис не упал.

-p 1024 это у нас буфер с ним можно поиграться, уменьшить к примеру, но сильно уменьшать нельзя будут фризы, приоритет сервису jack не установлен, лучше его не переводить в рилтайм, может зависнуть репка ( у меня она так и сделала).

во второй консоли запускаем mod-host:

mod-host -n -p 5555 -f 5556

если написало host ready то это хорошо, если нет, то или мне или ИИ задавать вопросы (второй вариант быстрее поможет)

и в третьем окне запускаем mod-ui:

cd /root/mod-ui source modui-env/bin/activate pip install tornado==5.1.1 export MOD_DEV_HOST=0 export MOD_DEV_ENVIRONMENT=1 export MOD_APP=1 export MOD_LIVE_ISO=1 python3 ./server.py

если выскочит ошибка в водим эту команду:

sed -i 's/collections.MutableMapping/collections.abc.MutableMapping/g' /root/mod-ui/modui-env/lib/python3.10/site-packages/tornado/httputil.py

запускаем еще раз:

python3 ./server.py

открываем браузер и в адресной строке вводим http://localhost:8888

если все работает то мы уже на полпути)))

если в авто режиме не надо то остальные пункты пропускаем и запускаем ручками.

Создадим службы для авто запуска

sudo nano /etc/systemd/system/jack.service

вводим туда:

[Unit] Description=JACK Audio Server for UM2 After=sound.target [Service] Type=simple User=root ExecStart=/usr/bin/jackd -t 2000 -d alsa -d hw:1 -r 48000 -p 1024 -n 3 -X seq -s -S Restart=always RestartSec=3 [Install] WantedBy=multi-user.target

CTRL+O сохранить CTRL+X выйти

sudo nano /etc/systemd/system/mod-host.service

[Unit] Description=MOD Host After=jack.service Requires=jack.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mod-host -n -p 5555 -f 5556 Restart=always RestartSec=2 [Install] WantedBy=multi-user.target

CTRL+O сохранить CTRL+X выйти

sudo nano /etc/syохранить CTRL+X выйтиstemd/system/mod-ui.service

[Unit] Description=MOD UI Web Server After=mod-host.service Requires=mod-host.service [Service] Type=simple User=root WorkingDirectory=/root/mod-ui Environment="MOD_DEV_HOST=0" Environment="MOD_DEV_ENVIRONMENT=1" Environment="MOD_APP=1" Environment="MOD_LIVE_ISO=1" ExecStart=/root/mod-ui/modui-env/bin/python3 /root/mod-ui/server.py Restart=always RestartSec=2 [Install] WantedBy=multi-user.target

CTRL+O сохранить CTRL+X выйти

sudo nano /etc/systemd/system/mod-browser.service

[Unit] Description=MOD Browser After=mod-ui.service Requires=mod-ui.service [Service] Type=simple User=root Environment="DISPLAY=:0" ExecStart=exec /usr/lib/firefox-esr/firefox-esr http://localhost:8888/ --kiosk --disable-gpu Restart=always RestartSec=5 [Install] WantedBy=graphical.target

CTRL+O сохранить CTRL+X выйти

И на последок:

sudo systemctl daemon-reload sudo systemctl enable jack.service mod-host.service mod-ui.service mod-browser.service

Вроде должно работать. Нам надо подправить с ссылки что отображались скины педалей в браузере:

# Ищем все thumbnail.png в плагинах и копируем в папку pedals с правильными именами find /root/.lv2 -path "*/modgui/*thumbnail*.png" -exec bash -c 'name=$(basename $(dirname $(dirname {}))); cp "{}" /root/mod-ui/html/resources/pedals/"${name}.png"' \; 2>/dev/null

#!/bin/bash for plugin in /root/.lv2/*.lv2; do name=$(basename "$plugin" .lv2) thumb=$(find "$plugin" -name "*thumb*.png" | head -1) if [ -n "$thumb" ]; then cp "$thumb" "/root/mod-ui/html/resources/pedals/${name}.png" echo "Copied: $name" fi done

for p in /root/.lv2/*.lv2; do name=$(basename "$p" .lv2) thumb=$(find "$p" -path "*/modgui/*thumb*.png" | head -1) [ -n "$thumb" ] && cp "$thumb" "/root/mod-ui/html/resources/pedals/${name}.png" && echo "OK: $name" done

Тут добавим авто скрипт что это не делать ручками:

cat > /usr/local/bin/update-modep-icons.sh << 'EOF' #!/bin/bash mkdir -p /root/mod-ui/html/resources/pedals for p in /root/.lv2/*.lv2; do [ -d "$p" ] || continue name=$(basename "$p" .lv2) thumb=$(find "$p" -path "*/modgui/*thumb*.png" | head -1) [ -n "$thumb" ] && cp -f "$thumb" "/root/mod-ui/html/resources/pedals/${name}.png" done EOF chmod +x /usr/local/bin/update-modep-icons.sh

cat > /etc/systemd/system/modep-icons.service << 'EOF' [Unit] Description=Update MODEP plugin icons Before=mod-ui.service [Service] Type=oneshot ExecStart=/usr/local/bin/update-modep-icons.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target EOF

systemctl daemon-reload systemctl enable modep-icons.service

Плагины качаем от сюда https://patchstorage.com/platform/lv2-plugins/ и распаковываем в папку юзер/либ/lv2'.

На этом так сказать все. Статью первый раз пишу сильно не пинайте.

P.S. Если кого заинтересует написать похоже под репку, чтоб ее превратить в полноценный музыкальный процессор пишити.


+1

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем

Наиболее интересные по мнению читателей



Темы

Навигация

ВойтиРегистрация