Does the transitions only use the default orbit?

I have noticed that when using transitions, no orbit information are sent within the OSC message. For this reason, the standard orbit is probably always used. When I came across it, I adjusted my BootTidal.hs (quick hack!)

-- I changed this line
xfade i = transition tidal True (Sound.Tidal.Transition.xfadeIn 4) i

-- to this
xfade i pat = transition tidal True (Sound.Tidal.Transition.xfadeIn 4) i (pat # orbit (i - 1))

Should this be the default BootTidal line? Or is this a bug in TidalCycles itself?

In case anyone wants to try this out, this is the complete customization:

xfade i pat = transition tidal True (Sound.Tidal.Transition.xfadeIn 4) i (pat # orbit (i - 1))
xfadeIn i t pat = transition tidal True (Sound.Tidal.Transition.xfadeIn t) i (pat # orbit (i - 1))
histpan i t pat = transition tidal True (Sound.Tidal.Transition.histpan t) i (pat # orbit (i - 1))
wait i t pat = transition tidal True (Sound.Tidal.Transition.wait t) i (pat # orbit (i - 1))
waitT i f t pat = transition tidal True (Sound.Tidal.Transition.waitT f t) i (pat # orbit (i - 1))
jump i pat = transition tidal True (Sound.Tidal.Transition.jump) i (pat # orbit (i - 1))
jumpIn i t pat = transition tidal True (Sound.Tidal.Transition.jumpIn t) i (pat # orbit (i - 1))
jumpIn' i t pat = transition tidal True (Sound.Tidal.Transition.jumpIn' t) i (pat # orbit (i - 1))
jumpMod i t pat = transition tidal True (Sound.Tidal.Transition.jumpMod t) i (pat # orbit (i - 1))
mortal i lifespan release pat= transition tidal True (Sound.Tidal.Transition.mortal lifespan release) i (pat # orbit (i - 1))
interpolate i pat = transition tidal True (Sound.Tidal.Transition.interpolate) i (pat # orbit (i - 1))
interpolateIn i t pat = transition tidal True (Sound.Tidal.Transition.interpolateIn t) i (pat # orbit (i - 1))
clutch i pat = transition tidal True (Sound.Tidal.Transition.clutch) i (pat # orbit (i - 1))
clutchIn i t pat = transition tidal True (Sound.Tidal.Transition.clutchIn t) i (pat # orbit (i - 1))
anticipate i pat = transition tidal True (Sound.Tidal.Transition.anticipate) i (pat # orbit (i - 1))
anticipateIn i t pat = transition tidal True (Sound.Tidal.Transition.anticipateIn t) i (pat # orbit (i - 1))
forId i t pat = transition tidal False (Sound.Tidal.Transition.mortalOverlay t) i (pat # orbit (i - 1))

Remember that transitions also take non-default patterns, for example p 'bass' or whatever. This would end up in an error doing 'bass' - 1

I had already thought so too :thinking: And a stream, accessible via the stream id, has no orbit information.

d1 = p 1 . (|< orbit 0)

So maybe this is technically intended for flexibility and you would have to customize the functions to your needs rather then replace it like

ip1 t pat = interpolateIn 1 t (pat # orbit 1)