72 lines
2.3 KiB
Markdown
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
|
|
|
|

|
|
|
|
## (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](https://www.kindohm.com/posts/2016/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)
|