スクリプト

こんなかんじ。海外blogで「rubymacライトセーバー」的なやつとか参考に自分の書いた物に冗長なとこも感じつつダダ書きした。ちなみにダダ書きとは「ダダーンボヨヨンボヨヨン」という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を起動してそれぞれのタンテに曲を割り振ってスクリプト起動して使う。