1. Setting conexion between OSC (Tidal) and Processing.
-- didactic pattern visualizer
-- testing on TidalCycles 3.16.17
import Sound.Tidal.Context
let targetdpv = Target {oName = " didacticpatternvisualizer" ,
oAddress = " 127.0.0.1" ,
oPort = 1818 ,
oLatency = 0.2 ,
oWindow = Nothing ,
oSchedule = Live ,
oBusPort = Nothing ,
oHandshake = False
}
formatsdpv = [OSC " /delivery" Named {requiredArgs = [] } ]
oscmapdpv = [(targetdpv, formatsdpv),
(superdirtTarget, [superdirtShape])
]
grid = pS " grid"
connectionN = pI " connectionN"
connectionMax = pI " connectionMax"
speedSequenser = pF " speedSequenser"
clear = pI " clear"
sizeMin = pF " sizeMin"
sizeMax = pF " sizeMax"
figure = pS " figure"
color = pS " color"
-- this line returns a warning, but it is necessary
tidal <- startStream defaultConfig oscmapdpv
-- total latency = oLatency + cFrameTimespan
-- tidal <- startTidal (superdirtTarget {oLatency = 0.1, oAddress = "127.0.0.1", oPort = 57120}) (defaultConfig {cVerbose = True, cFrameTimespan = 1/20})
let only = (hush >> )
p = streamReplace tidal
hush = streamHush tidal
panic = do hush
once $ sound " superpanic"
list = streamList tidal
mute = streamMute tidal
unmute = streamUnmute tidal
-- unmuteAll = streamUnmuteAll tidal
-- unsoloAll = streamUnsoloAll tidal
solo = streamSolo tidal
unsolo = streamUnsolo tidal
once = streamOnce tidal
first = streamFirst tidal
asap = once
nudgeAll = streamNudgeAll tidal
all = streamAll tidal
resetCycles = streamResetCycles tidal
setcps = asap . cps
getcps = streamGetcps tidal
getnow = streamGetnow tidal
xfade i = transition tidal True (Sound.Tidal.Transition. xfadeIn 4 ) i
xfadeIn i t = transition tidal True (Sound.Tidal.Transition. xfadeIn t) i
histpan i t = transition tidal True (Sound.Tidal.Transition. histpan t) i
wait i t = transition tidal True (Sound.Tidal.Transition. wait t) i
waitT i f t = transition tidal True (Sound.Tidal.Transition. waitT f t) i
jump i = transition tidal True (Sound.Tidal.Transition. jump) i
jumpIn i t = transition tidal True (Sound.Tidal.Transition. jumpIn t) i
jumpIn' i t = transition tidal True (Sound.Tidal.Transition. jumpIn' t) i
jumpMod i t = transition tidal True (Sound.Tidal.Transition. jumpMod t) i
mortal i lifespan release = transition tidal True (Sound.Tidal.Transition. mortal lifespan release) i
interpolate i = transition tidal True (Sound.Tidal.Transition. interpolate) i
interpolateIn i t = transition tidal True (Sound.Tidal.Transition. interpolateIn t) i
clutch i = transition tidal True (Sound.Tidal.Transition. clutch) i
clutchIn i t = transition tidal True (Sound.Tidal.Transition. clutchIn t) i
anticipate i = transition tidal True (Sound.Tidal.Transition. anticipate) i
anticipateIn i t = transition tidal True (Sound.Tidal.Transition. anticipateIn t) i
forId i t = transition tidal False (Sound.Tidal.Transition. mortalOverlay t) i
d1 = p 1 . (|< orbit 0 )
d2 = p 2 . (|< orbit 1 )
d3 = p 3 . (|< orbit 2 )
d4 = p 4 . (|< orbit 3 )
d5 = p 5 . (|< orbit 4 )
d6 = p 6 . (|< orbit 5 )
d7 = p 7 . (|< orbit 6 )
d8 = p 8 . (|< orbit 7 )
d9 = p 9 . (|< orbit 8 )
d10 = p 10 . (|< orbit 9 )
d11 = p 11 . (|< orbit 10 )
d12 = p 12 . (|< orbit 11 )
d13 = p 13
d14 = p 14
d15 = p 15
d16 = p 16
let getState = streamGet tidal
setI = streamSetI tidal
setF = streamSetF tidal
setS = streamSetS tidal
setR = streamSetR tidal
setB = streamSetB tidal
2. Download Processing sketch "didacticpatternvisualizer" and play.