Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tidalcycles/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.
https://github.com/tidalcycles/tidal-vis
live-coding music tidalcycles visualisation
Last synced: 2 months ago
JSON representation
Tidal is a domain specific language for live coding pattern. This package allows colour patterns to be rendered as PDF or SVG files.
- Host: GitHub
- URL: https://github.com/tidalcycles/tidal-vis
- Owner: tidalcycles
- License: gpl-3.0
- Created: 2017-09-23T22:35:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T11:59:05.000Z (over 1 year ago)
- Last Synced: 2024-10-29T14:41:26.527Z (3 months ago)
- Topics: live-coding, music, tidalcycles, visualisation
- Language: Haskell
- Homepage: http://tidalcycles.org
- Size: 110 KB
- Stars: 60
- Watchers: 13
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 config2. Comment `tidal <- startTidal...` and uncomment `tidal <- startMulti...`
3. Build _tidal-vis_ and run
cd /tidal-vis
stack build
stack exec tidal-vis4. 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](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)