--- title: Tidal Workshop | Transforming patterns date: 2024-11-19 12:11:02 categories: ['Tidalcycles'] tags: --- # Tidal Workshop | Transforming patterns ## [`Slow`, `fast` and `hurry`](https://tidalcycles.org/docs/patternlib/tutorials/workshop/#slow-fast-and-hurry) 可以利用 transforming 技巧產生更複雜的節奏。使用像 `slow` 或 `fast` ,現在可以開始使 pattern 超越(或壓縮)一個 cycle: ```haskell d1 $ slow 2 $ sound "arpy arpy:1 arpy:2 arpy:3" d1 $ fast 2 $ sound "arpy arpy:1 arpy:2 arpy:3" -- `hurry` 與 `fast` 相似,但同時也會套用音調變化: d1 $ hurry 2 $ sound "arpy arpy arpy:1 arpy:2" ``` 參考 [Time](https://tidalcycles.org/docs/reference/time/) 章節了解更多變化。 --- ## [重組節奏](https://tidalcycles.org/docs/patternlib/tutorials/workshop/#reorganise-patterns) Tidal Cycles 提供了許多功能以不同方式改變節奏,本節將擇其中一些介紹,更多細節和功能可以參考以下章節 [Alteration](https://tidalcycles.org/docs/reference/alteration)、[Accumulation](https://tidalcycles.org/docs/reference/accumulation) 和 [Conditions](https://tidalcycles.org/docs/reference/conditions). 使用 `rev` 來反轉節奏: ```haskell d1 $ rev $ sound "arpy arpy:1 arpy:2 arpy:3" ``` 或者用 `palindrome` 正向播放再倒回來: ```haskell d1 $ palindrome $ sound "arpy arpy:1 arpy:2 arpy:3" ``` `iter` 它會在每個週期的不同位置開始節奏,偏移指定的時值直到回到開始的位置: > [!tip] > 有點像是整個 pattern 向左以指定的「分數」移動。 > 舉例來說:`iter 4` 表示以 pattern 的 **1/4 為單位** 每 cycle 向左移動,如果剛好 pattern 中有 4 個 sample,則為一次 cycle 向左移動一格。 > ```haskell > d1 $ iter 4 $ sound "arpy arpy:1 arpy:2 arpy:3" > ``` 使用 `every` 在不同的 cycle 中安排 transformations 或 effects。以下範例會以每四個 cycle 發生一次 `fast 2` 的方式播放: ```haskell d1 $ every 4 (fast 2) $ sound "arpy arpy:1 arpy:2 arpy:3" -- 或是也可以加入 effect d1 $ every 4 (# vowel "a o") $ sound "arpy arpy:1 arpy:2 arpy:3" ``` `jux`(`juxtapose` 的縮寫)可讓節奏的變形或效果,在另一邊的聲道播放(原始的 pattern 則在另一邊)。 ```haskell d1 $ jux (rev) $ sound "arpy arpy:1 arpy:2 arpy:3" d1 $ jux (hurry 2) $ sound "arpy arpy arpy:1 arpy:2" ``` > [!NOTE] 更多範例 > ```haskell > d1 $ jux (iter 3) $ every 4 (hurry 3)$ n "0 1 9*3 [0 3]" # sound "arpy" > ``` > > 至此,再回去複習一下前面的 effects 章節,就有很多花樣可以玩啦😎~ `chunk` 每次都會在 pattern 的不同部分套用變形或效果。舉例來說, > [!tip] > 個人理解上跟 `iter` 類似,只是向後移動的部份從 pattern 改成 effects。 > ```haskell > d1 $ chunk 4 (hurry 2) $ sound "arpy arpy:1 arpy:2 arpy:3" > ``` --- ## [更多變化](https://tidalcycles.org/docs/patternlib/tutorials/workshop/#even-further-into-transformations) 可以使用 `.` 串接不只一種 pattern 的變形: ```haskell d1 $ jux (rev . (slow 1.5)) $ sound "arpy arpy:1 arpy:2 arpy:3" ``` (幾乎)所有東西都是「pattern」,也可以將這些變形套用在效果上: ```haskell d1 $ sound "jvbass [jvbass jvbass] jvbass ~" # note "1 [3 5] 7" d1 $ sound "jvbass [jvbass jvbass] jvbass ~" # iter 3 (note "1 [3 5] 7") ``` 可以使用 `fast` 或 `slow`、`range` 結合 `sine` 或 `saw` 等振盪器([oscillators](https://tidalcycles.org/docs/reference/oscillators)),在任何參數上建立 LFO: ```haskell d1 $ s "bd*8" # pan (slow 4 $ sine) d1 $ s "moog*16" # n "<0 1 2>" # legato 1 # cutoff (range 200 2400 $ saw) # resonance 0.2 ``` 預設情況下,`sine`、`cosine` 或 `saw` 等 oscillators 會提供 `0` 至 `1` 的數值(unipolar),這對某些參數(例如 `pan`)來說沒什麼問題,但如果有其他應用情況可以使用 `range` 來將這些數值縮放到指定範圍。 > [!NOTE] 延伸閱讀 > [Control Busses | Tidal Cycles](https://tidalcycles.org/docs/reference/control_busses/) --- [返回目錄](/pkjsPlfsQSaAbQfgv2v5fw) 上一篇:[Tidal Workshop | Effects](/u-r9XEJCSzGF8ha8F3I8tw) 下一篇:[Tidal Workshop | Different kind of patterns](/-IDcls_RQNmSxoMY3LphrA) --- # References - [Workshop | Tidal Cycles](https://tidalcycles.org/docs/patternlib/tutorials/workshop#distortion-reverb-delay-and-filters)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up