a music composition language

FARM 2016 (Nara, Japan)

 

https://github.com/alda-lang/alda

Dave Yarwood • @dave_yarwood

First, some background.

(that's me!)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>HTML</title>
</head>
<body>
  <div class="sort-of-important">
    <p>I'm a paragraph!</p>
  </div>
</body>
</html>
(defun fibonacci (N)
  "Compute the N'th Fibonacci number."
  (if (or (zerop N) (= N 1))
    1
    (+ (fibonacci (- N 1)) (fibonacci (- N 2)))))

abc

 X:1
 T:The Legacy Jig
 M:6/8
 L:1/8
 R:jig
 K:G
 GFG BAB | gfg gab | GFG BAB | d2A AFD |
 GFG BAB | gfg gab | age edB |1 dBA AFD :|2 dBA ABd |:
 efe edB | dBA ABd | efe edB | gdB ABd |
 efe edB | d2d def | gfe edB |1 dBA ABd :|2 dBA AFD |]
\score {
  \new Staff {
    \key d \major
    \numericTimeSignature
    \time 2/4
    <cs' d'' b''>16 <cs' d'' b''>8.
    ~
    <cs' d'' b''>8 [ <b d'' a''> ]
  }
}

LilyPond

#timebase 480
#title "The M.GAKKOU KOUKA"
#copyright "Music Composed by Kenkichi Motoi 2009 Wikimedia version 2012"
A t160
A o3l4 V12
A @1 ed8ce8 gg8er8 aa8>c<a8 g2r
A aa8ga8 >cc8d<r8 ee8de8 c2r
A dd8dd8 dd8dr8 ed8ef8 g2r
A aa8ga8 >cc8<ar8 >dc8de8 d2<r
A >ee8dc8< ab8>cc8< gg8ea8 g2r
A >cc8<ge8 cd8ea8 gg8de8 c2r

Music Macro Language (MML)

Clojure

(defn fibonacci
  "Compute the nth Fibonacci number."
  [n]
  (if (or (zero? n) (= n 1))
    1
    (apply + (map fibonacci [(- n 1) (- n 2)]))))
(let [counter (atom 0)]
   (dotimes [_ 10]
     (future (swap! counter inc)))
   (Thread/sleep 500)
   @counter)
(import '[javax.sound.midi MidiSystem])

(let [synth   (doto (MidiSystem/getSynthesizer) .open)
      channel (aget (.getChannels synth) 0)]
   (doseq [note [36 38 40 41 43 45 47 48]]
     (.noteOn channel note 127)
     (Thread/sleep 300)
     (.noteOff channel note)))

clojure.org

Let the demo begin!

Try it for yourself!

https://github.com/alda-lang/alda

alda: a music composition language

By Dave Yarwood

alda: a music composition language

  • 1,067