# 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 "

Write a chord in the input (try C13b9 or maybe Fsus4maj#11) above and hit enter.

" 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 "

Write a chord in the input (try C13b9 or maybe Fsus4maj#11) above and hit enter.

" 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"}}} ```