--- title: Pattern Effects layout: ../../layouts/MainLayout.astro --- import { MiniRepl } from '@src/docs/MiniRepl'; import Box from '@components/Box.astro'; import QA from '@components/QA'; # Pattern Effects Up until now, most of the functions we've seen are what other music programs are typically capable of: sequencing sounds, playing notes, controlling effects. In this chapter, we are going to look at functions that are more unique to tidal. **reverse patterns with rev** **play pattern left and modify it right with jux** This is the same as: Let's visualize what happens here: Try commenting out one of the two by adding `//` before a line **multiple tempos** This is like doing Try commenting out one or more by adding `//` before a line **add** >")) .color(">").adsr("[.1 0]:.2:[1 0]") .sound("gm_acoustic_bass").room(.5)`} punchcard /> If you add a number to a note, the note will be treated as if it was a number We can add as often as we like: >").add("0,7")) .color(">").adsr("[.1 0]:.2:[1 0]") .sound("gm_acoustic_bass").room(.5)`} punchcard /> **add with scale** [~ <4 1>]>*2".add("<0 [0,2,4]>/4")) .scale("C5:minor").release(.5) .sound("gm_xylophone").room(.5)`} punchcard /> **time to stack** [~ <4 1>]>*2".add("<0 [0,2,4]>/4")) .scale("C5:minor") .sound("gm_xylophone") .room(.4).delay(.125), note("c2 [eb3,g3]".add("<0 <1 -1>>")) .adsr("[.1 0]:.2:[1 0]") .sound("gm_acoustic_bass") .room(.5), n("0 1 [2 3] 2").sound("jazz").jux(rev).slow(2) )`} /> **ply** this is like writing: Try patterning the `ply` function, for example using `"<1 2 1 3>"` **off** ] <2 3> [~ 1]>" .off(1/8, x=>x.add(4)) //.off(1/4, x=>x.add(7)) ).scale("/4") .s("triangle").room(.5).ds(".1:0").delay(.5)`} punchcard /> In the notation `x=>x.`, the `x` is the shifted pattern, which where modifying. off is also useful for sounds: x.speed(1.5).gain(.25))`} /> | name | description | example | | ---- | ------------------------------ | ----------------------------------------------------------------------------------- | | rev | reverse | | | jux | split left/right, modify right | | | add | add numbers / notes | ")).scale("C:minor")`} /> | | ply | speed up each event n times | ")`} /> | | off | copy, shift time & modify | x.speed(2))`} /> |