# Teoria (Clojure)
# One Runtime
Running .
```bash id=0c3f8e1b-836b-44fa-96eb-c11001fe91df
mkdir teoria && cd $_
curl -O http://saebekassebil.github.io/teoria/waveplot.js
curl -O http://saebekassebil.github.io/teoria/style.css
curl -O https://raw.githubusercontent.com/saebekassebil/teoria/0f4bbe8fb0d6a43fd9c96a309ce781c3841114d2/teoria.js
ls
```
```clojure id=b2460ada-5111-4694-9789-ed335decd27a
(clojure-version)
```
```clojure id=30fcdfdf-c6df-4adf-aad7-acf66975bd1d
(def waveplot-js (str ""))
(def style-css (str ""))
```
```clojure id=f1a15cab-4353-4b3f-b367-7950f4f57323
(def teoria-js
"")
```
```clojure id=4c3312e2-79d5-4f78-a714-eaffb7db5f60
{:nextjournal/viewer "html" :nextjournal.viewer/value
(str
"
Teoria.js - Music Theory in JavaScript
" style-css "
"
teoria-js
waveplot-js
"
")}
```
[result][nextjournal#output#4c3312e2-79d5-4f78-a714-eaffb7db5f60#result]
```edn no-exec id=ffcf0396-b3f9-40e6-a0c2-654401879781
{:deps
{org.clojure/clojure {:mvn/version "1.10.0"}
org.clojure/tools.deps.alpha
{:git/url "https://github.com/clojure/tools.deps.alpha.git"
:sha "f6c080bd0049211021ea59e516d1785b08302515"}
compliment {:mvn/version "0.3.9"}}}
```
# Second Runtime
[waveplot.js][nextjournal#file#a319a5bf-3363-4ffc-9d78-14b6c4659c6b]
[teoria.js][nextjournal#file#dbb109ca-9b27-4ba1-ad9c-25b3786a44da]
[style.css][nextjournal#file#7e2558e2-f804-4eec-ad3c-6002b13e6833]
```clojure id=c5adc626-4131-4a64-82a3-2b96d12f2b1c
(def waveplot-js (slurp [reference][nextjournal#reference#ffc28aae-18e2-4598-b70b-2cb18a312937]))
```
```clojure id=371b71dd-5dfc-4e29-835d-352ce2b2be24
(def teoria-js (str ""))
```
```clojure id=dbee4032-9c68-4ef1-9e4f-8dac687874bd
(def style-css (slurp [reference][nextjournal#reference#75f3ae3b-7fbc-43b4-9e11-8da5f63fd973]))
```
```clojure id=90fbba6a-002c-40ac-a72f-719403928a0d
{:nextjournal/viewer "html" :nextjournal.viewer/value
(str
"
Teoria.js - Music Theory in JavaScript
" style-css "
"
teoria-js
waveplot-js
"
")}
```
[result][nextjournal#output#90fbba6a-002c-40ac-a72f-719403928a0d#result]
[nextjournal#output#4c3312e2-79d5-4f78-a714-eaffb7db5f60#result]:
[nextjournal#file#a319a5bf-3363-4ffc-9d78-14b6c4659c6b]:
[nextjournal#file#dbb109ca-9b27-4ba1-ad9c-25b3786a44da]:
[nextjournal#file#7e2558e2-f804-4eec-ad3c-6002b13e6833]:
[nextjournal#reference#ffc28aae-18e2-4598-b70b-2cb18a312937]:
<#nextjournal#reference#ffc28aae-18e2-4598-b70b-2cb18a312937>
[nextjournal#reference#402d1a05-3995-4d64-9a40-5e909beb3ec4]:
<#nextjournal#reference#402d1a05-3995-4d64-9a40-5e909beb3ec4>
[nextjournal#reference#75f3ae3b-7fbc-43b4-9e11-8da5f63fd973]:
<#nextjournal#reference#75f3ae3b-7fbc-43b4-9e11-8da5f63fd973>
[nextjournal#output#90fbba6a-002c-40ac-a72f-719403928a0d#result]:
This notebook was exported from https://nextjournal.com/a/LuuSXgqq6EBJiqnyziD2Z?change-id=CudFmzLKvpF2UtzRqteTqb
```edn nextjournal-metadata
{:article
{:settings nil,
:nodes
{"0c3f8e1b-836b-44fa-96eb-c11001fe91df"
{:compute-ref #uuid "83e6eb42-6f0f-4171-b2be-84c00afe48f5",
:exec-duration 1336,
:id "0c3f8e1b-836b-44fa-96eb-c11001fe91df",
:kind "code",
:locked? false,
:output-log-lines {:stdout 12},
:runtime [:runtime "80403b0a-1226-48ff-9bcc-624ed02e3635"]},
"30fcdfdf-c6df-4adf-aad7-acf66975bd1d"
{:compute-ref #uuid "b5f6d9b1-f773-4841-a81f-8fffbe7b13f1",
:exec-duration 53,
:id "30fcdfdf-c6df-4adf-aad7-acf66975bd1d",
:kind "code",
:output-log-lines {},
:runtime [:runtime "80403b0a-1226-48ff-9bcc-624ed02e3635"]},
"371b71dd-5dfc-4e29-835d-352ce2b2be24"
{:compute-ref #uuid "e391f702-4a78-408d-9d86-8959a97cf147",
:exec-duration 208,
:id "371b71dd-5dfc-4e29-835d-352ce2b2be24",
:kind "code",
:output-log-lines {},
:runtime [:runtime "b94b1ef5-3afd-421d-805e-d9690d0e3d03"]},
"402d1a05-3995-4d64-9a40-5e909beb3ec4"
{:id "402d1a05-3995-4d64-9a40-5e909beb3ec4",
:kind "reference",
:link [:output "dbb109ca-9b27-4ba1-ad9c-25b3786a44da" nil]},
"4c3312e2-79d5-4f78-a714-eaffb7db5f60"
{:compute-ref #uuid "4ed47b56-8f8e-449d-9ef3-016f19528a3b",
:exec-duration 232,
:id "4c3312e2-79d5-4f78-a714-eaffb7db5f60",
:kind "code",
:output-log-lines {},
:runtime [:runtime "80403b0a-1226-48ff-9bcc-624ed02e3635"]},
"75f3ae3b-7fbc-43b4-9e11-8da5f63fd973"
{:id "75f3ae3b-7fbc-43b4-9e11-8da5f63fd973",
:kind "reference",
:link [:output "7e2558e2-f804-4eec-ad3c-6002b13e6833" nil]},
"7e2558e2-f804-4eec-ad3c-6002b13e6833"
{:id "7e2558e2-f804-4eec-ad3c-6002b13e6833", :kind "file"},
"80403b0a-1226-48ff-9bcc-624ed02e3635"
{:environment
[:environment
{:article/nextjournal.id
#uuid "5b45eb52-bad4-413d-9d7f-b2b573a25322",
:change/nextjournal.id
#uuid "5d38be36-ab63-4aa7-b93b-125b62ec64dc",
:node/id "0ae15688-6f6a-40e2-a4fa-52d81371f733"}],
:environment? false,
:id "80403b0a-1226-48ff-9bcc-624ed02e3635",
:kind "runtime",
:language "clojure",
:name "teoria",
:type :prepl,
:docker/environment-image
"docker.nextjournal.com/environment@sha256:a083ba2058e8d061f7ca21e4f8c3f499e4e5b3087077f9f6fb2ab00804d20b12",
:runtime/mounts []},
"90fbba6a-002c-40ac-a72f-719403928a0d"
{:compute-ref #uuid "5361b975-de02-4e33-81b2-c33251a1692a",
:exec-duration 167,
:id "90fbba6a-002c-40ac-a72f-719403928a0d",
:kind "code",
:output-log-lines {},
:runtime [:runtime "b94b1ef5-3afd-421d-805e-d9690d0e3d03"]},
"a319a5bf-3363-4ffc-9d78-14b6c4659c6b"
{:id "a319a5bf-3363-4ffc-9d78-14b6c4659c6b", :kind "file"},
"b2460ada-5111-4694-9789-ed335decd27a"
{:compute-ref #uuid "648e9ab8-f780-4fd8-903f-0e50cea5308f",
:exec-duration 103,
:id "b2460ada-5111-4694-9789-ed335decd27a",
:kind "code",
:output-log-lines {},
:runtime [:runtime "80403b0a-1226-48ff-9bcc-624ed02e3635"]},
"b94b1ef5-3afd-421d-805e-d9690d0e3d03"
{:environment
[:environment
{:article/nextjournal.id
#uuid "5b45eb52-bad4-413d-9d7f-b2b573a25322",
:change/nextjournal.id
#uuid "5d38be36-ab63-4aa7-b93b-125b62ec64dc",
:node/id "0ae15688-6f6a-40e2-a4fa-52d81371f733"}],
:id "b94b1ef5-3afd-421d-805e-d9690d0e3d03",
:kind "runtime",
:language "clojure",
:name "teoria-2",
:type :prepl},
"c5adc626-4131-4a64-82a3-2b96d12f2b1c"
{:compute-ref #uuid "25306ae6-a2ad-41a6-bb1d-a1aa5eda5917",
:exec-duration 192,
:id "c5adc626-4131-4a64-82a3-2b96d12f2b1c",
:kind "code",
:output-log-lines {},
:runtime [:runtime "b94b1ef5-3afd-421d-805e-d9690d0e3d03"]},
"dbb109ca-9b27-4ba1-ad9c-25b3786a44da"
{:id "dbb109ca-9b27-4ba1-ad9c-25b3786a44da", :kind "file"},
"dbee4032-9c68-4ef1-9e4f-8dac687874bd"
{:compute-ref #uuid "2dd0db21-564c-45e1-959d-7fbf435ac93b",
:exec-duration 198,
:id "dbee4032-9c68-4ef1-9e4f-8dac687874bd",
:kind "code",
:output-log-lines {},
:runtime [:runtime "b94b1ef5-3afd-421d-805e-d9690d0e3d03"]},
"f1a15cab-4353-4b3f-b367-7950f4f57323"
{:compute-ref #uuid "923d4a44-9e7f-4af2-b947-e26e6ab3cda4",
:exec-duration 186,
:id "f1a15cab-4353-4b3f-b367-7950f4f57323",
:kind "code",
:name "teoria-js",
:output-log-lines {},
:runtime [:runtime "80403b0a-1226-48ff-9bcc-624ed02e3635"]},
"ffc28aae-18e2-4598-b70b-2cb18a312937"
{:id "ffc28aae-18e2-4598-b70b-2cb18a312937",
:kind "reference",
:link [:output "a319a5bf-3363-4ffc-9d78-14b6c4659c6b" nil]},
"ffcf0396-b3f9-40e6-a0c2-654401879781"
{:id "ffcf0396-b3f9-40e6-a0c2-654401879781",
:kind "code-listing",
:name "deps.edn"}},
:nextjournal/id #uuid "02c7bc26-abe1-40df-a458-360fa1adc642",
:article/change
{:nextjournal/id #uuid "606d8b49-2a27-4859-a72c-046e6f0f7222"}}}
```