0

「MidiPipe」というプログラムを使用して、MIDIコントローラーを使用してMacでアクションをトリガーしています。

基本的に、MIDI コントローラーの 2 つのキーを同時に押すと、アクションが発生する必要がありますが、メッセージは別々に受信されます。1 つのメッセージを変数として設定し、それをサイド チェックに設定して、他のメッセージが着信したかどうかを確認し、それらがメッセージの正しい組み合わせであるかどうかを確認する必要があります。もしそうなら、私は行動を起こす必要があります。これは、基本的にキー21と24を押したときのMIDIコントローラーの入力であるAlistの画像です。さらに、現在動作していないコードがあります。

http://pastebin.com/sD7vxVpg

http://i.imgur.com/EQTB7.png

読んでくれてありがとう

〜フランク

4

2 に答える 2

0

次のようになります。

property lastSecondItemis21 : false --item 2 of last message 

on runme(message)
    if (item 1 of message = 144) and (item 2 of message = 21) and (item 3 of message > 0) then
        set lastSecondItemis21 to true
    else if lastSecondItemis21 then
        set lastSecondItemis21 to false
        if (item 1 of message = 144) and (item 2 of message = 24) and (item 3 of message > 0) then
            --<do action>
        end if
    end if
end runme
于 2012-06-08T14:20:04.280 に答える
0

ここにあなたのためのアイデアがあります。開いたままのapplescriptアプリケーションを作成します。このアプリケーションは常に実行されます。この例では、key1 と key2 の 2 つの変数を使用できます。アプリケーションに「実行」を要求するたびに、2 つの変数の状態が通知されます。この場合は、値があるかどうかです。

この例を試すには、まず、このコードを「開いたままのアプリケーション」として保存する必要があります。私は自分のアプリケーションを「stayOpenApp」と呼びました。

property key1 : missing value
property key2 : missing value

on run
    if key1 is not missing value and key2 is not missing value then
        set theMessage to "Both keys have values."
    else if key1 is not missing value then
        set theMessage to "Only key 1 has a value."
    else if key2 is not missing value then
        set theMessage to "Only key 2 has a value."
    else
        set theMessage to "Neither key has a value."
    end if

    tell me to activate
    display dialog theMessage
end run

on quit
    -- reset the variables before quitting
    set key1 to missing value
    set key2 to missing value
    continue quit
end quit

on runMe()
    tell me to run
end runMe

on setKey1(theValue)
    set key1 to theValue
end setKey1

on getKey1()
    return key1
end getKey1

on setKey2(theValue)
    set key2 to theValue
end setKey2

on getKey2()
    return key2
end getKey2

プロパティとして 2 つの変数があることがわかります。スクリプトの下部には、各変数のゲッターとセッターがあります。これにより、外部の AppleScript が変数の値を取得したり、変数の値を設定したりできるようになります。この例に従うには、次の個別の AppleScript を作成して実行します...

tell application "stayOpenApp" to launch

そのコードは、stayOpenApp を開始します。これで、いつでもこのコードを実行して、stayOpenApp に変数のステータスを通知させることができます...

tell application "stayOpenApp" to runMe()

ある時点で変数のステータスを変更したい場合は、これを使用できます...

tell application "stayOpenApp" to setKey1(1)

ここで、runMe() を使用して変数のステータスを再度確認すると、変更に気付くでしょう。

したがって、これらの手法を使用すると、実行中の AppleScript の変数に情報を渡し、変数の状態を確認する方法が得られます。これにより、問題を解決する方法のアイデアが得られることを願っています。幸運を。

于 2012-06-08T14:21:15.400 に答える