foo
pathが3つに区切られている次のイベントを待ちたいとしましょう。
sync "/*/*/*"
このパターンはちょうど3つの区分を持つpathならば, その区分の名前に関わらずどんなTime Stateイベントにもマッチします。 例えば:
cue "/foo/bar/baz"
cue "/foo/baz/quux"
cue "/eggs/beans/toast"
cue "/moog/synths/rule"
しかし、区分の数が少なかったり多かったりするpathにはマッチしません。 例えば以下のものにはマッチしないでしょう:
cue "/foo/bar"
cue "/foo/baz/quux/quaax"
cue "/eggs"
それぞれの*
は「あらゆるもの」を意味しています。 なので、区分が一つだけのpathには /*
でマッチでき、5つの区分を持つpathには次のパターンでマッチできます: /*/*/*/*/*
foo
cue "/foo/bar/baz"
しかし、以下のものにはマッチしないでしょう:
foo
foo
cue "/foo/bar/baz"
1文字へのマッチングには ?
の文字を使うことができ、"/?oo/bar/baz"
は次のようにマッチします:
cue "/foo/bar/baz"
cue "/goo/bar/baz"
cue "/too/bar/baz"
cue "/woo/bar/baz"
foo
foo
foo
sync
またはget
を呼び出している時には、マッチング規則を自由な順番に組み合わせてcue
やset
で生まれるどんなTime Stateイベントにもパワフルにマッチさせることができます。 すごい例を見てみましょう。
sample :loop_amen
For those curious, these matching rules are based on the Open Sound Control pattern matching specification which is explained in detail here: https://opensoundcontrol.stanford.edu/spec-1_0.html