TCNetプロトコルのNode.js実装。Pioneer DJ / ShowKontrol / Event Imagineering GroupのTCNet仕様に準拠。
npm install @9c5s/node-tcnetimport { TCNetClient, TCNetConfiguration, TCNetDataPacketType, TCNetDataPacketMetadata } from "@9c5s/node-tcnet";
async function main() {
const config = new TCNetConfiguration();
config.broadcastInterface = "10GbE"; // ネットワークインターフェース名
const client = new TCNetClient(config);
client.on("broadcast", (packet) => console.log(packet));
client.on("data", (packet) => console.log(packet));
await client.connect();
// メタデータ取得 (layer: 0-based)
const meta = await client.requestData(TCNetDataPacketType.MetaData, 0);
if (meta instanceof TCNetDataPacketMetadata && meta.info) {
console.log(meta.info.trackArtist, meta.info.trackTitle);
}
await client.disconnect();
}
main().catch(console.error);以下のいずれかが必要:
- PRO DJ LINK Bridge (Windows / Mac)
- ShowKontrol / Beatkontrol (Mac)
- TCNetネットワーク接続
- ステータスイベント受信
- メタデータリクエスト (アーティスト名、曲名)
- メトリクスリクエスト
- タイムスタンプ受信
- Time Sync (NTP/PTP相当)
- Beat Grid / Wave Formリクエスト
- Control機能 (レイヤー制御)
詳細はWikiを参照:
- Getting Started -- 導入ガイド
- API Reference -- APIリファレンス
- PRO DJ LINK Bridge -- Bridge固有の制限
- TCNet Protocol -- プロトコル仕様
- Contributing -- 開発への参加
- prolink-connect (JS) -- Pro DJ Linkプロトコル直接実装
- dysentery (Java) -- 同上
Pioneer DJおよびEvent Imagineering Groupの支援・承認を受けていない。製品名・企業名は各所有者の商標または登録商標。