Hello club,

I've been exploring rhythms created by combining two simple operations: slicing and subdividing. **Slicing** means selecting an arc or time span on a grid by specifying grid indices. **Subdividing** means dividing that selection into a number of equal-sized parts. The following example shows a rhythm created with these two operations:

If i want to **subdivide 16th notes 3-6 by 7, 7-12 by 4, and 12-15 by 9**, it's tricky to write out because it requires counting and summing several numbers. The subdividing part is easy in Tidal. What's tougher is slicing or "sub-gridding" in mini-notation. You need to ensure the total sum of arcs adds up to 16 for this example. I'm pretty sure this is how you'd write it out:

```
d1 $ struct "t!3 [t!7]@3 t [t!4]@5 [t!9]@3 t "
```

Coding the subdivisions 7, 4, and 9 is beautifully straightforward with Tidal. The time spans (arcs), less so--I had to subtract values to get each time span (after the '@' symbol) and keep track of the total time span by adding the parts.

For notation I'm using 0-based indexing and 3-6 means the arc spanning notes 3, 4, 5. Can be written as `[3, 6)`

(left-inclusive, right-exclusive).

Here's another example and a figure to show the notation:

Cycle 1: divide the last 6 8th notes by 7. Cycle 2: divide the last 5 8th notes by 7.

```
d1 $ struct "< [t@2 [t!7]@6] [t@3 [t!7]@5] >"
```

I wonder if there is a better way to do slicing / select subgrids than with multiple `@`

symbols and summing them in my head? Maybe a function i'm missing out on or a trick that requires less counting?