# Why does this polymeter sound this way?

**URL:** <https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [28 January 2022 08:06 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840 "2022-01-28T08:06:17Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![mmmoth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mmmoth/32/2185_2.png) [@mmmoth](https://uzu.lurk.org/u/mmmoth)\
**Post date:** [28 January 2022 08:06 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/1 "2022-01-28T08:06:17Z")

</div>

Ok i'm doing

d1$"bd ~ ~ ~ ~ , hh hh [hh hh sn]}"

I was expecting bd on the first beat, but instead it's a bunch of hh before.

I'm trying to do something like this  
[bd ~ ~ ~, hh hh hh hh sn] === hh and sn in 5 beats polymetric.  
together with something like hh in 7/12 over 2 bars long. Or something arbitrary of that sort. Is that possible?

---

<div class="post-metadata">

**Author:** ![mmmoth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mmmoth/32/2185_2.png) [@mmmoth](https://uzu.lurk.org/u/mmmoth)\
**Post date:** [28 January 2022 08:30 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/2 "2022-01-28T08:30:13Z")

</div>

Maybe it isn't as clear as it can be:  
bd ~ ~ ~ ~ === 4 beats  
hh hh hh hh sn === 5 beats, so the snare wraps around

so the output should be (bd,hh) (~,hh) (~,hh) (~,hh) (bd,sn) (~,hh) (~,hh) (~,hh) (bd,hh) (~,sn)

Also i want to pair it with something arbitrary like a 7/12 over 2 bars long

---

<div class="post-metadata">

**Author:** ![jwaldmann](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jwaldmann](https://uzu.lurk.org/u/jwaldmann)\
**Post date:** [28 January 2022 12:17 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/3 "2022-01-28T12:17:11Z")

</div>

from first principles (using only stack `[,]`, cat `<>`, fast `*4`):

```haskell
d1 $ s "[<bd ~ ~ ~>, <hh hh hh hh sn>]*4"

```

there may be other (shorter) syntax for this in mininotation. [EDIT] yes:

```haskell
d1 $ s "{bd ~ ~ ~, hh hh hh hh sn}"

```

[technical remark] Semantics of `{ }` notation seems a bit tricky: it's implemented in the parser ([Tidal/ParseBP.hs at main · tidalcycles/Tidal · GitHub](https://github.com/tidalcycles/Tidal/blob/main/src/Sound/Tidal/ParseBP.hs#L126)) as it's not purely semantical: it cannot be defined of type `[Pattern a] -> Pattern a` (the type of `stack` and `cat`) . The implementation of `{ ... }` needs syntactical properties of its arguments: `resolve_size` is a property of `TPat a`, not of `Pattern a`.

---

<div class="post-metadata">

**Author:** ![mmmoth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mmmoth/32/2185_2.png) [@mmmoth](https://uzu.lurk.org/u/mmmoth)\
**Post date:** [28 January 2022 17:30 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/4 "2022-01-28T17:30:15Z")

</div>

I guess i was wrong about

> [@jwaldmann](#):
>
> `d1 $ s "{bd ~ ~ ~, hh hh hh hh sn}"`

It turns out that once tidal is started, when i reevaluate the sequence, it starts from where it left off. So it isn't (bd,hh ) as the first output, even if i use the panic or hush command before reevaluating.

Is there anyway of evaluating a 13/3 ? How would this look?

---

<div class="post-metadata">

**Author:** ![jwaldmann](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jwaldmann](https://uzu.lurk.org/u/jwaldmann)\
**Post date:** [28 January 2022 17:44 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/5 "2022-01-28T17:44:00Z")

</div>

> starts from where it left off.

it starts from where the clock currently is (it keeps ticking). try with

```haskell
d1 $ s "numbers/2" >| n (slow 2 $ run 4)

```

(evaluate this and `hush`, in random order)

What do you mean by "evaluating a 13/3" (Can you write it in classical music notation)? Perhaps this?

```haskell
d1 $ s "{bd ~ ~ , sn hh hh hh sn hh hh hh sn hh hh hh sn}" 

```

---

<div class="post-metadata">

**Author:** ![mmmoth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mmmoth/32/2185_2.png) [@mmmoth](https://uzu.lurk.org/u/mmmoth)\
**Post date:** [28 January 2022 17:53 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/6 "2022-01-28T17:53:31Z")

</div>

> [@jwaldmann](#):
>
> `d1 $ s "{bd ~ ~ , sn hh hh hh sn hh hh hh sn hh hh hh sn}" `

Yes that would be correct, but what if it was played against a 4/4 pattern?

---

<div class="post-metadata">

**Author:** ![mmmoth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mmmoth/32/2185_2.png) [@mmmoth](https://uzu.lurk.org/u/mmmoth)\
**Post date:** [29 January 2022 04:18 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/7 "2022-01-29T04:18:59Z")

</div>

After looking through t he documentation it's probably something like this

## d1$n"0 1 1 1"#s"arpy" ===== 4/4 d2$n"0 1 1 1 1"#s"casio" ======= 5:4 5 beat against a 4 beat d1

## d1$n"0 1 1 1 1"#s"arpy" ===== 5/4

## d1$n"0 1 1 1"#s"arpy" === 4/4 d2$n"{0 1 1 1 1}%4"#s"casio" ==== 5/4 but is polymetric with d1

---

<div class="post-metadata">

**Author:** ![nicasi](https://uzu.lurk.org/user_avatar/uzu.lurk.org/nicasi/32/2400_2.png) [@nicasi](https://uzu.lurk.org/u/nicasi)\
**Post date:** [8 February 2022 11:17 UTC](https://uzu.lurk.org/t/why-does-this-polymeter-sound-this-way/3840/8 "2022-02-08T11:17:03Z")

</div>

Good question. Tidal is very good in creating polyrythms.

I'm quite new to Tidal. For polymeters you found out to use the modulo operator, interesting.

I have one tip that helped me and might help you: if you want to visualize patterns you can use the drawLine command

For example your patterns ( I simplified them a bit):

```haskell
d1 $ s "bd ~ ~ ~"

d2 $ s "{hh hh hh hh sn}%4"

```

can be drawn like this (changed the sound names to numbers for readability):

```haskell
drawLine "0 ~ ~ ~"

drawLine "{1 1 1 1 2}%4"

```

It will display this in the console:

```haskell
|0 |0 |0 |0 |0 ...
|1111|2111|1211|1121|1112 ...

```

Perfect polymeter!

When I read your question I thought about the iter (and iter') command (which shifts the pattern every cycle), it does something which looks a bit similar (compare measures 2, 3, 4 and 5 with the same measures above):

```haskell
drawLine (iter' 4 $ "1 1 1 2")

|1112|2111|1211|1121|1112|2111

```

But it is not a real polymeter.

Happy coding!
