From 056581a69b81f6006be20f704837fdcde9c05de5 Mon Sep 17 00:00:00 2001 From: Dave Yarwood Date: Sun, 14 Apr 2019 22:54:55 -0400 Subject: [PATCH] 1.3.0: midi export command --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ boot.properties | 2 +- build.boot | 14 +++++++------- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 680f824a..f9a7735d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # CHANGELOG +## 1.3.0 (2019-04-14) + +* New CLI command: `alda export` and REPL command: `:export` + + This command exports an Alda score to another format. Currently, the only + supported format is MIDI. MIDI files are exported at a resolution of 128 + pulses per quarter note (PPQ). + + The score is provided in the same way as it is for `alda play` and `alda + parse`: by specifying either a `-f / --file`, a string of `-c / --code`, or + piping in the code via STDIN. + + ``` + alda export -f my-score.alda -F midi -o my-score.alda + alda export -c 'piano: c8 d e f' -o piano-notes.mid + echo 'piano: c8 d e f' | alda export -o piano-notes.mid + ``` + + The `:export` REPL command takes a single argument, the output filename: + + ``` + > :export /path/to/desired-filename.mid + ``` + +* The `alda parse` JSON output has a couple of new keys: `tempo/values` and + `tempo/role`. These values are used internally to schedule MIDI notes in a + way that is exportable. + ## 1.2.0 (2019-01-19) * New CLI command: `alda instruments` and REPL command: `:instruments` diff --git a/boot.properties b/boot.properties index 0c336403..45c3f689 100644 --- a/boot.properties +++ b/boot.properties @@ -1,5 +1,5 @@ #http://boot-clj.com #Wed Mar 20 21:58:10 EDT 2019 BOOT_CLOJURE_NAME=org.clojure/clojure -BOOT_CLOJURE_VERSION=1.8.0 +BOOT_CLOJURE_VERSION=1.10.1-beta2 BOOT_VERSION=2.8.2 diff --git a/build.boot b/build.boot index 7effd1f2..643d8276 100755 --- a/build.boot +++ b/build.boot @@ -2,14 +2,14 @@ :dependencies '[; build / release [adzerk/boot-jar2bin "1.1.1" :scope "test"] [io.djy/boot-github "0.1.4" :scope "test"] - [org.clojure/clojure "1.8.0"] - [alda/client-java "0.6.1"] - [alda/server-clj "0.4.3"] - [alda/core "0.5.2"] - [alda/sound-engine-clj "1.1.0"] + [org.clojure/clojure "1.10.1-beta2"] + [alda/client-java "0.7.0"] + [alda/server-clj "0.5.0"] + [alda/core "0.5.3"] + [alda/sound-engine-clj "1.2.2"] ; silence slf4j logging dammit - [org.slf4j/slf4j-nop "1.7.25"]]) + [org.slf4j/slf4j-nop "1.8.0-beta4"]]) (require '[adzerk.boot-jar2bin :refer :all] '[io.djy.boot-github :refer (push-version-tag create-release @@ -19,7 +19,7 @@ '[cheshire.core :as json] '[clj-http.client :as http]) -(def ^:const +version+ "1.2.0") +(def ^:const +version+ "1.3.0") (defn- exe-version "Convert non-exe-friendly version numbers like 1.0.0-rc1 to four-number