tidal-vis/README.md

72 lines
2.3 KiB
Markdown

# 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.](https://youtu.be/bZS6WufE8FY)
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.](https://youtu.be/cCmCSSb4vHs)
## (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](https://i.imgur.com/MPbpH0n.jpg)
## (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](http://blog.kindohm.com/2016/09/02/tidal-vis) by [Kindohm](http://github.com/kindohm)
## Hackage
https://hackage.haskell.org/package/tidal-vis
## Misc
For more information: [tidalcycles](http://tidalcycles.org)