MIDI: Превращаем сообщения в нажатия кнопок клавиатуры

2020-12-20 00:00:00 +0300

Как конвертировать сообщения от midi-клавиатуры в нажатия кнопок на клавиатуре?

Где это может потребоваться - это в приложениях, которые не умеют в миди, но умеют в хоткеи. Например musescore - это приложение очень плохо умеет в миди.

Создадим простейший скрипт midi-to-keyboard. Все что он делает - это слушает события на шине и транслирует их в нажатия кнопок клавиатуры.

#!/usr/bin/env bash
THROTTLE=150
old_time=0
last_change=0
#aseqdump -p "Arturia MiniLab mkII" | \
aseqdump -p "System" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
    current_time=$(($(date +%s%N)/1000000))
    diff=$(($current_time-$old_time))
    if [[ $diff -gt $THROTTLE && "$ch" = 15 ]]; then
        # тротлинг событий обязателен
        change=0
        case $data1 in
            48 ) # effects 1
                if [[ $data2 -gt 64 ]]; then
                    xdotool key Right
                    change=1
                elif [[ $data2 -lt 64 ]]; then
                    xdotool key Left
                    change=1
                fi
            ;;
            49 ) # effects 2
                if [[ $data2 -gt 64 ]]; then
                    xdotool key Up
                    change=1
                elif [[ $data2 -lt 64 ]]; then
                    xdotool key Down
                    change=1
                fi
            ;;
        esac
        if [[ change -eq 1 ]]; then
            echo "Change after $(($current_time-$old_time))"
            old_time=$current_time
        fi
    fi
done

Литература:

PulseAudio: Перенаправление потоков аля jackd

2020-10-11 00:48:48 +0300

На простом примере рассмотрим как можно микшировать несколько источников звука в pulseaudio. Статья будет полезна так же и тем, кто любит стримить что-либо, но не имеет звуковой карты с модной loopback-функциональностью.

Jackd: Измеряем задержку аудио сигнала в цепочке обработки

2020-09-06 16:10:43 +0300

Посмотрим как правильно мериться задержками аудиоинтерфейса в Linux.

Linux: Настраиваем МФУ pantum

2020-08-29 18:58:34 +0300

Рассматриваем работу с принтерами фирмы pantum. А так же настройку sane для удаленного сканирования.

Ошибка юнита systemd-modules-load.service

2020-04-28 23:02:42 +0300

Узнаем почему не загружается vboxdrv и починим.