Hi,
I'm afraid there isn’t a direct 1:1 equivalent to Strudel’s .chord(...).voicing() in Tidal.
In Strudel, .voicing() is a dedicated function that turns chord symbols into voiced note collections. Tidal doesn’t have that exact funcionality; instead, chords are usually expressed directly in Tidal’s chord mini-notation inside note controls, and you can shape them with inversions and open voicings.
If you want different chord shapes, Tidal supports:
- inversions with 'i, 'ii, etc.
- note-count extensions like '6
- open voicing with 'o
Your Strudel example is doing two things at once:
1. using n("[1 3 5*2 ...]") as melodic indices
2. mapping those indices through the current chord voicing
That exact “index into voiced chord” workflow is native in Strudel’s tonal functions, but not really a standard built-in idiom in Tidal. In Tidal you’d usually play the chord symbols directly, or build the melodic/chord relationship more manually (for example via chord notation, inversions, open voicings, scale functions, or arpeggio-style approaches)
The following example is the closest approach I can think of to get something similar to what you’re after in Tidal.
Since your n pattern uses up to 9 pitch indexes within the chord, we’d probably need to define 9-note extended chords and then experiment with inversions until we find something close to the voicing you want.
Then, instead of indexing directly into the voiced chord as in Strudel, we can sequence the chord tones through Tidal’s arp function (using whichever arpeggiator style feels most appropriate), and impose the rhythmic structure with `struct`:
d1
$ slow 1.5
$ struct ("t t t*2 t*2 t t t t*4")
$ arp ("disconverge")
$ note "<c'maj'9'ii e'minor'9'ii f'major'9'ii f'minor'9'ii>/2"
# sound "supersquare"
# lpf 1500
# room 0.5
# legato 0.6