Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

詳解PRO DJ LINK

1,657 views

Published on

2018/02/25に開催されたハードコア・ブレイクコア勉強会 #hbkai の発表資料です。
一部公開用に最適化してあります。

<追記>
公開用注記ページの日付間違ってますね...
2018/02/25が正しいです。

Published in: Devices & Hardware
  • Be the first to comment

  • Be the first to like this

詳解PRO DJ LINK

  1. 1. 詳解 PRO DJ LINK2018/2/25 #hbkai
  2. 2. 誰? • DJです • VJです • 金融系システム エンジニアです 2018/2/25 #hbkai
  3. 3. はじめに • PRO DJ LINKの技術仕様は公開されておらず、 本資料に掲載する情報は有志による 解析に基づくものです • 不正確な情報が含まれるかもしれません • 正直なところPRO DJ LINKの仕様なんて 知らなくてもマニュアル読めばDJできる • ただ知ってるとちょっと楽しい😀 2018/2/25 #hbkai
  4. 4. 皆さん “PRO DJ LINK” 使ってますか? 2018/2/25 #hbkai
  5. 5. “PRO DJ LINK”とは 2018/2/25 #hbkai
  6. 6. 2018/2/25 #hbkai Pioneer DJのDJ機器同士が DJパフォーマンスを目的とした 通信をおこなうための 通信プロトコル※ ※プロトコルとは通信の決まり事のこと
  7. 7. 2018/2/25 #hbkai
  8. 8. 2018/2/25 #hbkai LANケーブル
  9. 9. 2018/2/25 #hbkai “PRO DJ LINK”というのは ごくごく普通のTCP/IP通信 でしかない
  10. 10. 2018/2/25 #hbkai DJ機器が行う通信は 四種類
  11. 11. 2018/2/25 #hbkai UDP port 50000 UDP port 50001 UDP port 50002 TCP port 12523
  12. 12. 2018/2/25 #hbkai UDP port 50000 UDP port 50001 UDP port 50002 TCP port 12523 今回は主にこれ を解説します
  13. 13. 2018/2/25 #hbkai UDP port 50000
  14. 14. 2018/2/25 #hbkai DJ機器同士が機器名やIPアドレス、 MACアドレス情報を やり取りするためのパケットが流れる
  15. 15. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 20 01 02 00 36 D 01 MAC Address IP Address 30 01 00 00 00 01 00
  16. 16. 2018/2/25 #hbkai UDP port 50001
  17. 17. 2018/2/25 #hbkai 他のDJ機器と同期するため BeatとBPM情報の通信
  18. 18. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D
  19. 19. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 機器番号 機器番号
  20. 20. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 次の拍までの時間(ミリ秒)
  21. 21. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Hheader Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 𝐵𝑦𝑡𝑒 24 ∗ 1024 + 𝐵𝑦𝑡𝑒 25 ∗ 512 + Byte 26 ∗ 256 + Byte[27]
  22. 22. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 次の小節までの時間(ミリ秒)
  23. 23. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 現在の拍の位置 1→2→3→4 を繰り返す
  24. 24. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 𝐵𝑦𝑡𝑒[5𝑎] ∗ 256 + 𝐵𝑦𝑡𝑒[5𝑏] 100
  25. 25. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 0x00000000→-100.00% 0x00100000→±0.00% 0x00200000→+100.00%
  26. 26. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 00 D 00 3c next beat 2nd beat next bar 30 4th beat 2nd bar 8th beat ff ff ff ff 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 50 ff ff ff ff Pitch 00 00 BPM B 00 00 D 𝐵𝑦𝑡𝑒 55 ∗ 512 + 𝐵𝑦𝑡𝑒 56 ∗ 256 ∗ +𝐵𝑦𝑡𝑒[57] − 0𝑥100000 0𝑥100000
  27. 27. 2018/2/25 #hbkai 具体例
  28. 28. 2018/2/25 #hbkai
  29. 29. 2018/2/25 #hbkai デバイス No.4 Next beat 0𝑥14𝑒 = 334 𝑚𝑠𝑒𝑐 拍位置 3拍目 BPM 0𝑥4650 100 = 180.00 Pitch 0𝑥100000 − 0𝑥100000 0𝑥100000 = ±0.00% Next bar 0𝑥29𝑏 = 667 𝑚𝑠𝑒𝑐
  30. 30. 2018/2/25 #hbkai UDP port 50002
  31. 31. 2018/2/25 #hbkai DJ機器の状態※を 他のDJ機器と連携するための通信 ※再生/停止, Firmwaveのバージョン, sync, USBの使用状況, SDカードの使用状況, etc.
  32. 32. 2018/2/25 #hbkai 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 Header Device name 10 Device name 01 20 03 D 00 b0 D 00 01 A Dr Sr tr 00 rekordbox 30 00 00 Track 00 00 t2 t3 00 00 t4 t5 00 00 00 00 40 00 00 00 00 00 00 t6 t7 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 00 01 00 Ua Sa 00 00 00 Ul 70 00 00 00 Sl 00 L 00 00 01 00 00 P1 Firmware 80 00 00 00 00 00 00 Syncn 00 F ff P2 Pitch1 90 l1 BPM 7f ff ff ff Pitch2 00 P3 00 ff a0 Beat Cue Bb 00 00 00 00 00 00 00 00 00 b0 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 c0 Pitch3 Pitch4 Packet nx 00 00 00 d0 00 00 00 00
  33. 33. 2018/2/25 #hbkai TCP port 12523
  34. 34. 2018/2/25 #hbkai 楽曲の情報※を取り扱う通信 ※音声データ, アーティスト名, アルバム名, BPM, キー, カバーイラスト, etc.
  35. 35. 2018/2/25 #hbkai ボリュームありすぎて 解説無理(泣) ※興味がある奇特な方は最後に紹介する参考資料をみてください
  36. 36. 2018/2/25 #hbkai これらの通信暗号化されていないので パケットスニッファリング(盗聴) することで色々と応用出来る
  37. 37. 2018/2/25 #hbkai Beat Link Trigger(BLT) https://github.com/brunchboy/beat-link-trigger
  38. 38. 2018/2/25 #hbkai PRO DJ LINKの通信を スニッファリングしてDJ機器を モニタリングするソフト
  39. 39. 2018/2/25 #hbkai
  40. 40. 2018/2/25 #hbkai ※画像出典 http://yabacube.info/?p=1287
  41. 41. 2018/2/25 #hbkai 特にアニクラでありがちコレ BLT使えば不要です
  42. 42. 2018/2/25 #hbkai Carabiner https://github.com/brunchboy/carabiner
  43. 43. 2018/2/25 #hbkai BLTと連携することで、 PRO DJ LINKの同期通信を Ableton Linkに変換
  44. 44. 2018/2/25 #hbkai ほとんどのVJソフトは Ableton Linkに対応している
  45. 45. 2018/2/25 #hbkai と、いうことは
  46. 46. 2018/2/25 #hbkai CDJとVJソフトを 完璧に同期させた パフォーマンスが出来る
  47. 47. 2018/2/25 #hbkai ※公開用スライド注記 2018/02/27に実施された ハードコアブレイクコア勉強会では XDJ-1000mk2の実機を持ち込んでデモをしました。 公開用スライドではデモの代わりに動画を公開します。 昨年私のblogで公開した記事も参考になりますので併せてどうぞ。 http://blog.plus-eight.net/?p=1626
  48. 48. 2018/2/25 #hbkai 動画前に画面の説明 Beat Link Triggerで CDJの様子を モニタリング VDMXというVJソフト のBPM制御画面 BPMが同期して 動くところに注目
  49. 49. 2018/2/25 #hbkai Afterglow https://github.com/brunchboy/afterglow
  50. 50. 2018/2/25 #hbkai PRO DJ LINKで 照明もコントロールできる
  51. 51. 2018/2/25 #hbkai アプリケーションを開発したい方のために PRO DJ LINKを利用するための ライブラリもあります
  52. 52. 2018/2/25 #hbkai • Java 用ライブラリ • https://github.com/brunchboy/beat-link • Go用ライブラリ • https://github.com/EvanPurkhiser/prolink-go
  53. 53. 2018/2/25 #hbkai CDJの仕様を理解して ワンランク上の ステージ演出をしよう!
  54. 54. 2018/2/25 #hbkai すごい参考資料 https://github.com/brunchboy/dysentery/blob/master/doc/Analysis.pdf

×