What is equivalent to Strudel's chord function in Tidal?

Hi!

I'm wanting to play with a Strudel pattern in Tidal and I don't know what is equivalent to the following kind of Strudel pattern:

$: n("[1 3 5*2 4*2 8 7 9 4*4]")
  .chord("<C Em F Fm>/2")
  .voicing()
  .sound("square")
  .lpf(1500)
  .adsr("0:.2:0:.1")

I'm still working on understanding how patterns are expressed and would love as much info as others can provide!

Casting around, I've tried comically wrong Tidal solutions like:


d1 $ n (arpeggiate "<c'maj e'minor f'major f'minor>/2 [1 3 5*2 4*2 8 7 9 4*4]")
 # sound "supermandolin"
 # lpf 1500
 # room "0.9"
 # delay "0.5"

Thanks for helping me!

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

the chord voicing has two components:

  1. a default dictionary which contains which semitone steps correspond to which chord symbols (but it uses 1P instead of 0, 3m for the minor 3rd, 3M for the major 3rd)

  2. An algorithm to pick a "sufficiently close" inversion from the ones that are available to have chords less jumps upon change.

I don't know how the 2nd one works, but there are some of these voicings in

and for the minor chords in