Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 2.32 KB

README.md

File metadata and controls

71 lines (43 loc) · 2.32 KB

tidal-vis

Tidal is a domain specific language for live coding pattern. This package allows several things:

  1. OSC messages sent to SC to be dynamicly rendered in realtime with at separate window. Demo of realtime visualisation.
  2. Colour patterns to be rendered as PDF or SVG files. See Examples.hs module for more help.
  3. Colour patterns to be rendered to be rendered dynamicly in separate window. See CycleAnimation.hs for more. Demo.

(1) Realtime animation during livecoding

  1. Add following lines to BootTidal.hs

     -- OSCTarget for pattern visualizing.
     patternTarget = OSCTarget { oName = "Pattern handler", oAddress = "127.0.0.1", oPort = 5050, oPath = "/trigger/something", oShape = Nothing, oLatency = 0.02, oPreamble = [], oTimestamp = BundleStamp }
    
     -- OSCTarget for play music via SuperCollider.
     musicTarget = superdirtTarget { oLatency = 0.1, oAddress = "127.0.0.1", oPort = 57120 }
    
     config = defaultConfig {cFrameTimespan = 1/20}
    
     -- Send pattern as osc both to SC and to tidal-vis
     tidal <- startMulti [musicTarget, patternTarget] config
    
     -- Send pattern as osc to SC only
     -- tidal <- startTidal musicTarget config
    
  2. Comment tidal <- startTidal... and uncomment tidal <- startMulti...

  3. Build tidal-vis and run

     cd /tidal-vis
     stack build
     stack exec tidal-vis
    
  4. Eval your tidal code.

  5. Profit.

(2) Render SVG or PDF

For exanple, when pattern is

density 16 $ every 2 rev $ every 3 (superimpose (iter 4)) $ rev "[black blue darkblue, grey lightblue]"

Output image is

0

(3) Animate one pattern

To animate pattern (not good performance):

cd ./tidal-vis/
stack repl ./src/CycleAnimation.hs
:set -XOverloadedStrings
ah <- run
swapMVar ah $ degradeBy 0.3 $ every 3 (fast 3) $  Params.s "[red, white, [purple orange green]]"

Look at CycleAnimation.hs for more information. Look at looping function to change animation form.

Tutorial

tidal-vis installation tutorial by Kindohm

Hackage

https://hackage.haskell.org/package/tidal-vis

Misc

For more information: tidalcycles