MIDI Parser

Remix this to get started with Clojure

"1.10.0"
and add-lib.

{: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"}}}
deps.edn
Extensible Data Notation

You can add dependencies by modifying the deps.edn above (requires a runtime restart)...

(use 'clojure.tools.deps.alpha.repl)
(clojure-version)
2.8s
Clojure
"1.10.0"

...or at runtime using add-lib:

(add-lib 'org.clojure/core.async {:mvn/version "0.4.490"})
4.9s
Clojure
true
(require '[clojure.core.async :as async])
(async/timeout 100)
12.0s
Clojure
Vector(4) [clojure.core.async.impl.channels.ManyToManyChannel, "0x1e5ef99", "clojure.core.async.impl.channels.ManyToManyChannel@1e5ef99", Map]

From wikipedia:

C_major_scale.mid

From https://www.mobilefish.com/tutorials/midi/midi_quickguide_specification.html:

morse_code_a.mid

Which looks like this in hex:

apt-get -qq update
DEBIAN_FRONTEND=noninteractive apt-get install xxd
6.2s
Bash in Clojure
xxd morse_code_a.mid
0.8s
Bash in Clojure
Shift+Enter to run
Clojure
Runtimes (1)