Tuesday 5 February 2008

GrageBand の自動再起動



どうも、EDIROLのPC-50を挿しっぱなしにすると、1日ぐらいで GrageBand との接続が切れるらしい。抜き差しは必要なく、GrageBand を再起動すると認識するみたいなので、GrageBand の問題か? Tell us しても良いんだが...

うっとうしいので、1日毎に再起動してやれってことで、

    #!/bin/sh
    osascript -e 'tell application "GarageBand"' -e 'quit' -e 'end tell' > /dev/null
    sleep 3
    osascript -e 'tell application "GarageBand"' -e 'document 1'  -e 'end tell' > /dev/null

こんな感じのを作って、crontab -e で突っ込みました。まぁ、別なやり方もあるんだろうけど。

sleep 3 しないとAppleScript が文句言うのはダサイ。GarageBand が立ち上がってないと、quitするために一度立ち上がるものダサ過ぎ。もっとも、それを避けるためのコードを入れる意味はない。

AppleScript の無能さ、遅さ、理解しにくさ、にはうんざりしているので、Apple Event をいじるなんか別な言語でも作るか? 何するにも、AppleScriptStudio で、あれこれ実験って、それはださいよ。起動するだけなのに、document 1 というのしか思い付かなかったのもタコだが。tell/end tell は通らなかったんだよな。

どっちかって言うと、自然言語っぽくするより、Forth みたいなものにして欲しかった。その方がどんなにわかりやすいことか。document 1 とかって、COBOLっぽい発想だと思う。

まぁ、AppleScript でもないよりはましなんだけどさ。Windows ユーザだと、COMをいじる VC++ でも書くのか?

No comments: