Beat Link Trigger
Beat Link Trigger とは
Beat Link Trigger は、AlphaTheta(Pioneer DJ)のDJ機器と連携し、曲情報を取得するためのツールです。
コンピュータで仮想的なCDJを作成し、PRO DJ LINKを用いて情報を取得します。
TechnoTUT Networkでは、Linux Containerを利用したDebian GUI環境を提供しており、その環境でBeat Link Triggerを利用することができます。
機能
Beat Link Trigger は以下の機能を提供します。
- 曲情報・波形情報の取得・表示
- Ableton Linkによる対応外 部機器とのBPM情報の共有
- OSCによる対応外部機器との取得情報の共有
- httpによる取得情報の共有
使用方法
- TechnoTUT Networkに接続します。
- Debian GUI環境に接続します。
blt.intra.technotut.net
または192.168.99.11
へリモートデスクトップ接続するか、
ブラウザで https://blt.intra.technotut.net/ または https://192.168.99.11/ にアクセスします。 - デスクトップの
start.sh
を実行してBeat Link Triggerを起動します。
起動すると、自動で曲情報・波形情報が表示されます。
何らかの不具合が発生した場合は、一度ウィンドウを閉じて再度start.sh
を実行してください。
開発者向け情報
各種機能の起動自動化
Triggers Global Expressions :: Beat Link Trigger User Guide
Global Setup Expression
(set-overlay-background-color (Color. 0 0 0 0))
(swap! globals assoc :player-status-always-on-top true)
(swap! globals assoc :player-status-columns 2)
(when (.isRunning (VirtualCdj/getInstance))
(beat-link-trigger.triggers/show-player-status))
Came Online Expression
(triggers/show-player-status)
(overlay/run-server)
(beat-link-trigger.carabiner/show-window nil)
(beat-link-trigger.carabiner/connect)
(beat-link-trigger.carabiner/sync-mode :passive)
(beat-link-trigger.carabiner/sync-link true)
(beat-link-trigger.carabiner/align-bars true)
OSCによるBPM情報の取得
Example: Send OSC message on each beat
Master PlayerのExpressionを設定します.
Setup Expression
(swap! locals assoc :restap (osc/osc-client "<IP>" <PORT>))
Beat Expression
(when trigger-active?
(osc/osc-send (:restap @locals) "/osc/path" 1.0))
Shutdown Expression
(osc/osc-close (:restap @locals))
OSCによる曲名情報の取得
Master PlayerのExpressionを設定します.
Setup Expression
(swap! locals assoc :oscblt (osc/osc-client "<IP>" <PORT>))
Tracked Update Expression
(let [metadata track-metadata]
(swap! locals update-in [:oscmetadata]
(fn [old-metadata]
(when (not= metadata old-metadata)
(osc/osc-send (:oscblt @locals) "/osc/path" track-artist track-title))
metadata)))
Shutdown Expression
(osc/osc-close (:oscblt @locals))
環境構築
新たにDebian GUI環境を構築し、Beat Link Triggerを利用する場合は、以下の手順に従います。
事前にDebianのテンプレートでLXCを作成します。
# rootに入る
su -
cd ~
# パッケージの更新・インストール
apt update -y && apt upgrade -y
apt install -y task-xfce-desktop dbus-x11 tigervnc-standalone-server xrdp novnc python3-websockify
# xrdpの設定
vi /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=root
password=<your-password>
ip=127.0.0.1
port=5901
# xrdpの自動起動設定
systemctl enable xrdp
# VNCのパスワード設定
vncpasswd
# Javaのインストール
apt-get install -y openjdk-21-jdk
# noVNC用の証明書作成
mkdir .blt && cd ~/.blt && openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout novnc.pem -out novnc.pem -days 3650 -subj "/C=JP/ST=Aichi/L=Toyohashi/O=TechnoTUT/OU=Network/CN=blt.intra.technotut.net"
# Beat Link Triggerのインストール
cd ~ && wget https://github.com/Deep-Symmetry/beat-link-trigger/releases/download/v7.3.0/beat-link-trigger-7.3.0.jar
cd ~/.blt && wget https://gist.githubusercontent.com/brunchboy/223f99e39d832e0ca94c09eab3b04134/raw/3f0cec096e09a0dbe7b5f3010cb061fdcbcd774f/overlay.html && wget https://raw.githubusercontent.com/TechnoTUT/Infrastructure/main/server/beat-link-trigger/config.blt
# 自動起動設定
crontab -e
@reboot sleep 45 && tigervncserver -xstartup /usr/bin/xfce4-session -localhost no :1 && websockify -D --web /usr/share/novnc/ --cert /root/.blt/novnc.pem 443 localhost:5901
設定が完了したら、Proxmox VEのWebUIからLXCを再起動します。
# 開始スクリプトの作成
cat << 'EOF' > /root/Desktop/start.sh
#!/bin/bash
java -jar /root/beat-link-trigger-7.3.0.jar --config /root/.blt/config.blt
EOF
# 実行権限の付与
chmod +x /root/Desktop/start.sh