Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
- New alda.lisp function,
midi-note, is available as an alternative to
pitchthat is occasionally useful for algorithmic compositions, etc. For
example, instead of
(note (pitch :c :sharp)), you can specify the MIDI note
(note (midi-note 61)).
- To help debug alda-client-java issue #38, we will now print the exit code baked into an AldaException whenever one is thrown.
Tabs can now be used as whitespace in an Alda score.
Fixed a bug where attempting to play an empty score (e.g.
c d e, which
results in an empty score because there are no instruments) results in a
The problem was that there were no instruments, so the MIDI system wasn't
being set up. However, we expect the MIDI system to be set up even if there
are no instruments and no notes to play, because we use the MIDI Sequencer to
New CLI command:
alda exportand REPL command:
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 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 -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
:exportREPL command takes a single argument, the output filename:
> :export /path/to/desired-filename.mid
alda parseJSON output has a couple of new keys:
tempo/role. These values are used internally to schedule MIDI notes in a
way that is exportable.
New CLI command:
alda instrumentsand REPL command:
This new command lists all available instruments, which is currently the 128
instruments in the General MIDI spec, as well as
NB: Alda does have a number of aliases for these instruments, e.g.
midi-acoustic-grand-piano. These aliases are not included in
Made adjustments to the command that prints for Windows users when running
alda updateto update the Alda client.
For details, see issue #35.
New feature alert!
feature has been added to the Alda language. The syntax looks like this:
piano: [ c8 d e f [g f e4]'1-3 [g a b > c4.]'4 ]*4
This allows you to have repeated phrases that can differ on each iteration. In
the example above, each repeat starts with
c8 d e f; on times 1 through 3
through the repeated phrase, the phrase ends with
g f e4, whereas on the 4th
time through, the phrase ends with
g a b > c4..
Note that these "adjustments" can occur anywhere within the repeated phrase, not
necessarily at the end, making this feature of Alda more flexible than the
"alternate endings" notation seen in sheet music. To illustrate this, here is
another example where the phrase has what you might describe as an "alternate
beginning" and an "alternate middle":
piano: [ [c8 d e]'1,3 [e8 d c]'1,3 f [g f e]'1-3 [g a b]'4 > c < ]*4
Whoops! It turns out that the mechanism we had in place in the Alda client for
determining whether or not your version of Alda is up-to-date had a flaw that
prevents one from updating from Alda 1.0.0-rcXX to Alda 1.0.0!
That's fixed in this version. Also, your client will be able to update to the
latest version now because now the latest version is 1.0.1 instead of 1.0.0. :)
This release is functionally equivalent to the previous release, 1.0.0-rc85.
After 3 years of working on a series of 1.0.0 release candidates, the focus has
shifted toward re-architecting Alda in a way that will allow us to make some
substantial improvements. The result of this restructuring will become a new
major version of Alda, version 2.0.0.
The work has only just started on Alda 2.0.0, and it will probably be a long
while before the initial release in the 2.0.0 series. We will continue to
maintain the 1.0.0 series in the meantime. As such, it feels like now is as good
a time as any to release Alda 1.0.0!
Made internal improvements to the Alda sound engine. Specifically, the sound
engine now uses a Java MIDI Sequencer to schedule and play MIDI notes, whereas
before we were using a third party library called JSyn.
You shouldn't notice any difference in note scheduling, but if you do notice
any problems, please file an issue in the
alda-sound-engine-clj repo so that we can address them!
schedulefunction has been removed from alda.lisp. Scheduled functions
haven't been very useful since we moved to a client/server architecture, and
we haven't implemented a way for them to work with the new changes to the
sound engine. So, we are removing the feature for now. We may re-implement the
scheduled functions feature in the future, in a way that works with both the
client/server architecture and the current implementation of the sound engine.
For more context on this, see alda-core#65.
Handled an edge case re: what to display when playing extremely short scores.
Improved the help text descriptions of the