musique/CHANGELOG.md
2022-10-27 21:09:46 +02:00

2.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • new builtins: map, while, set_len, duration
  • <note><octave> notation like c4 that mimics scientific notation

Changed

  • Block can be called with more parameters then it requires
  • Removed [] sequence notation in favour of ()
  • reorganized fold argument order
  • Moved from (<note> <octave> <length>) invocation to (<note> <length>)

Fixed

  • Index operation using booleans behaves like a mask and not fancy way of spelling 0 and 1

Removed

  • Removed <note><absolute notes indexes> chord notation like c47 meaning c-major

[0.2.1] - 2022-10-21

Fixed

  • Windows build doesn't require pthread dll

[0.2.0] - 2022-10-21

Added

  • Added scan builtin, which computes prefix sum of passed values when provided with addition operator
  • Added rtmidi dependency which should provide multiplatform MIDI support
  • Support for Windows (with only basic REPL) (make os=windows)
  • Support for MacOS (make os=macos)
  • Release package now with compiled Windows binary
  • :load REPL command to load Musique files inside Musique session. Allows for delayed file execution after a connection
  • :quit REPL command that mirrors :exit command
  • Virtual MIDI output port creation as default action (--output connects to existing one)
  • Added build instructions
  • -f commandline argument that will turn file into deffered function

Changed

  • Integrated libmidi library into Musique codebase
  • Moved from custom ALSA interaction to using rtmidi for MIDI I/O operations
  • VSCode extension has been re-created

Removed

  • Support for incoming MIDI messages handling due to poor implementation that didn't statisfy user needs

Fixed

  • Prevented accidental recursive construction of Arrays and Values by making convinience constructor Value::Value(std::vector<Value>&&) explicit

[0.1.0] - 2022-09-25

Added

  • Musique programming language initial implementation that supports:
  • Chord system
  • Playing MIDI notes using par, sim and play
  • Notes and chords as first-class citizens of Musique
  • Bunch of builtins like math and array operations
  • All numerical values as fractions (like in JavaScript but better)
  • Primitive interactive mode
  • Only ALSA MIDI Sequencer output
  • Simple regression testing framework
  • Basic documentation of builtin functions and operators