Early attempt at a visualization of contra dances.
Go to file
2024-07-01 14:43:39 -07:00
external Change libfigure back to .js with the import/export changes but removing the other changes made to satisfy tsc. 2023-08-30 04:49:14 -07:00
www Add user settings for adjusting trail display. 2024-06-16 20:48:00 -07:00
.gitignore [WIP] Starting to split interpreter.ts into separate files. 2023-10-15 03:51:11 -07:00
ContraDB dance exporter.user.js Update script to output dance id number. 2023-08-28 23:43:01 -07:00
LICENSE Add readme/links/license. 2023-08-27 18:56:01 -07:00
README.md Add development instructions and scripts to README. 2024-07-01 14:43:39 -07:00
serve.sh Add development instructions and scripts to README. 2024-07-01 14:43:39 -07:00
tsconfig.json Generate .js.map files. 2023-07-08 19:49:36 -07:00
watch-tsc.sh Add development instructions and scripts to README. 2024-07-01 14:43:39 -07:00

Contra Dance Renderer

This takes contra dances in the JSON format used by https://contradb.com/ and displays a visualization of the dance on a web page. Currently very early in development and only works on a single dance, Isaac Banner's "Two Hearts in Time", chosen as a simple dance (i.e. single progression improper, no shadow or next/previous neighbor interactions).

Development

To develop locally, you need TypeScript installed. You can check if you have the tsc (TypeScript Compiler) command available.

While developing, leave the watch-tsc.sh script running or, equivalently, run the following the command from the root of the repository:

tsc --watch

Also, serve the www/ directory from a local webserver. The serve.sh script will do this or you can run the following command from the www/ directory of the repository:

python -m http.server --bind localhost 8085

(Nothing special about Python here, just the easiest web server to set up.)

Then open http://localhost:8085/ in a web browser. The site should work in any modern browser (tested in Firefox and Chromium).

Any text editor/IDE works, but I find VS Code's TypeScript support works well.