Pattern Matching

foo

Match any path segment

Supponiamo di voler attendere il prossimo evento che ha un percorso con tre segmenti:

sync "/*/*/*"

Questo corrisponderà a qualsiasi evento Time State con esattamente tre segmenti, questo indipendentemente dal loro nome. Per esempio:

Tuttavia, non corrisponderà a percorsi con meno o più segmenti. I seguenti non corrisponderanno:

Ogni * significa qualsiasi contenuto. In questo modo possiamo abbinare i percorsi con un solo segmento con /* oppure quelli con cinque segmenti con /*/*/*/*/*

Matching partial segments

foo

Tuttavia, non corrisponderebbe a quanto segue:

foo

Matching Nested Path Segments

foo

Matching Single Letters

È possibile utilizzare il carattere ? per trovare una corrispondenza con un singolo carattere, ad esempio "/?oo/bar/baz" che corrisponderà:

Matching Multiple Words

foo

Matching Multiple Letters

foo

foo

Combining Matchers

When calling sync or get you are free to combine matchers in any order you see fit to powerfully match any Time State event created by cue or set. Let’s look at a crazy example:

in_thread do
  sync "/?oo/[a-z]*/**/ba*/{quux,quaax}/"
  sample :loop_amen
end
sleep 1
cue "/foo/beans/a/b/c/d/e/bark/quux/"

OSC Pattern Matching

For those curious, these matching rules are based on the Open Sound Control pattern matching specification which is explained in detail here: http://opensoundcontrol.org/spec-1_0