Pattern 轉換
From TidalCycles userbase
我們將開始使用轉換(transformation)做出更複雜的pattern。
使用如slow
這類函數可使循環模式大為不同。
slow
延展了pattern,跨及更多個cycle。
d1 $ sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ slow 2 $ sound "arpy arpy:1 arpy:2 arpy:3"
fast
將pattern壓縮到比一個cycle更小的區間。
你也許會看到有些人用density
這兩者功能是一樣的。
fast 0.5
以及slow 2
是一樣的!
d1 $ fast 2 $ sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ fast 0.5 $ sound "arpy arpy:1 arpy:2 arpy:3"
hurry
跟 fast
有點像,差異在於多了撥放速度(音高)的變換。
d1 $ sound "arpy arpy arpy:1 arpy:2"
d1 $ hurry 2 $ sound "arpy arpy arpy:1 arpy:2"
d1 $ hurry 0.5 $ sound "arpy arpy arpy:1 arpy:2"
你可以使用rev
來反轉一個pattern。
d1 $ rev $ sound "arpy arpy:1 arpy:2 arpy:3"
或是像鐘擺一樣前後來回palindrome
d1 $ palindrome $ sound "arpy arpy:1 arpy:2 arpy:3"
iter
當cycle進行時,改變pattern的起始點。每結束一個cycle,pattern的起始點就往後移動,直到結尾再從頭開始循環。移動的間隔由給定的數字而定。
d1 $ iter 4 $ sound "numbers:1 numbers:2 numbers:3 numbers:4"
結果為 "1 2 3 4" "2 3 4 1" "3 4 1 2" "4 1 2 3" ......
every
可以讓我們在循環之中安排不同的轉換和效果。
例如:每四個循環出現一個以雙倍速度撥放的循環。
d1 $ every 4 (fast 2) $ sound "arpy arpy:1 arpy:2 arpy:3"
...或著安排一個效果,使用#
d1 $ every 4 (# vowel "a o") $ sound "arpy arpy:1 arpy:2 arpy:3"
jux
'juxtapose' 的簡稱。進行某個轉換或是效果,其變形後的結果由其中一個聲道撥出,另一個聲道則維持原樣。
d1 $ sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ jux (rev) $ sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ jux (hurry 2) $ sound "arpy arpy arpy:1 arpy:2"
chunk
只在循環特定的區段內加入變換或是效果,且隨時間改變區段位置。舉例來說參數設為4
的話,效果將只在1/4個cycle內起作用且四個循環內各影響不同的區段。
d1 $ chunk 4 (hurry 2) $ sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ chunk 4 (# speed 2) $ sound "alphabet:0 alphabet:1 alphabet:2 alphabet:3"
有把握了嗎?
可以一次進行多個轉換!
用.
將它們連結。
d1 $ jux (rev . (slow 1.5)) $ sound "arpy arpy:1 arpy:2 arpy:3"
要記住(幾乎)一切都是pattern,因此我們也可以將轉換運用在效果上。
d1 $ sound "jvbass [jvbass jvbass] jvbass ~" # note "1 [3 5] 7"
d1 $ sound "jvbass [jvbass jvbass] jvbass ~" # iter 3 (note "1 [3 5] 7")
如果設定sine、saw波的擺動幅度,或是放慢它們的頻率將會如何呢?