kejace / tidal-vis

Tidal is a domain specific language for live coding pattern. This package allows colour patterns to be rendered as PDF or SVG files.

Home Page:http://tidalcycles.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Tidal is a domain specific language for live coding pattern. This package allows colour patterns to be rendered as PDF or SVG files.

http://tidalcycles.org

License:GNU General Public License v3.0


Languages

Language:Haskell 100.0%