# Meredith Monk : Room for Watching and Listening Interface for Meredith Monk show at Oude Kerk in Amsterdam. Built on with [Lit](https://lit.dev/) webcomponents, running/built with [Vite](https://vitejs.dev/). ## Running To run locally you first need to install all dependencies : ```sh $ npm i ``` You will need to place the video, audio and image files organised in `./public/media/` and some background images in `./public/images/`. See below for break down of hierarchy, and steps to rebuild the structure. Then you should be able to run : ```sh $ npm run dev ``` ## Building To run this on a simple web server you need to build the site first. ```sh $ npm run build ``` All static files will be available in the `./dist` folder. ## Media files All media files need to be added into the `./media` folder in the heirarchy that is found on the NAS that is installed in the exhibition. The current organisation can be found in the [Media Organisation](./MEDIA-ORGANISATION.md) file. ### CLI Tool If for whatever reason the files get out of order, things don't work in the interface, or new material needs to be added, there is a command line tool in the `./scripts` folder that can parse the media, and generate `.json` files that should be stored in the `./public/data/` folder. There is a basic help, if your run from the project directory : ```sh $ node ./scripts/files2json.js -h ``` Which will print out the following : ```sh Files to Json converter Commands : -h : This message -dir : The input directory to scan -o : The output directory of the json file. If not set will default to current working directory -u : [NOT IMPLEMENTED] List of comma separated feilds to update. Will only overwrite that which is set -r : Recurse the directory (once) for sub-fields. Albums and image categories for example. Other flags --images-only : For a folder with only images, rather than media files with associated thumbs. --dry-run : Output to the console --formatted : Directory or file name, will format on the the undersore : "title_details". This takes the arguments, parent, recurse or both. Defaults to both. --gen-waveform : [may break if recursing] If going through audio files can generate waveform images for the file. --order : Take number & number + "." as order of array ``` > **NOTE :** This tool was never designed to be used by anyone else so it is a very shaky system, prone to errors. Hopefully you'll never have to use it, but it is there if you do.