スクリプト
こんなかんじ。海外blogで「rubyでmacでライトセーバー」的なやつとか参考に自分の書いた物に冗長なとこも感じつつダダ書きした。ちなみにダダ書きとは「ダダーンボヨヨンボヨヨン」というCMがもとになってるらしいよ(上司からの情報)。
class Tracker def initialize() @pos = "LEFT" @status = 0 @data = {} end def run loop do open("| ./AMSTracker -s","r"){|f| trash = f.gets output = f.gets @data = split_data(output) } if @data[:x] < -120 @status = 1 @pos = "LEFT" elsif @data[:x] > 120 @status = 1 @pos = "RIGHT" end if @status == 1 crossfade(@pos) @status = 0 end end end private def split_data(data) px,py,pz = data.split(/\s+/) return {:x => px.to_i, :y => py.to_i, :z => pz.to_i} end def crossfade(pos) if pos == "LEFT" script = <<LEFT 'tell application "djay" crossfade "Left" end tell' LEFT else script = <<RIGHT 'tell application "djay" crossfade "Right" end tell' RIGHT end system("osascript -e "+ script) end end trk = Tracker.new trk.run
スクリプトを置いた場所にAMSTrackerを置いてdjayを起動してそれぞれのタンテに曲を割り振ってスクリプト起動して使う。