Skip to content

Latest commit

 

History

History
140 lines (90 loc) · 5.06 KB

CHANGELOG.md

File metadata and controls

140 lines (90 loc) · 5.06 KB

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]

[0.4.1]

Fix: Audio interfaces with spaces at the end can now be selected.

[0.4.0] - Refactoring of config parsing, gRPC/OSC.

A gRPC server has been added to mtrack along with several utility subcommands that allow for control of the player from the command line. This should be useful for creating external player clients.

An OSC server has been added to mtrack. This will allow communication with mtrack over any OSC protocol (UDP only at the moment). This is handy for using clients like TouchOSC to control mtrack. This includes reporting, so that OSC clients can display information about currently playing songs, track durations, etc.

The keyboard controller has been fixed -- it wasn't trimming off the newlines at the end of keyboard input.

(Breaking Change) The play subcommand has been renamed play-direct so that the play subcommand could be used to control the gRPC server.

(Breaking Change) mtrack no longer supports multiple song definitions in one file. This is because mtrack has shed serde_yaml, which has been deprecated, and now uses config-rs to parse config files, and config-rs does not support YAML documents in one file. Other than lessening the maintenance burden, one advantage to doing this is that mtrack can now support multiple file types. As of the time of writing, this includes:

  • JSON
  • TOML
  • YAML
  • INI
  • RON
  • JSON5

Note that I still personally test with YAML, so I haven't had an opportunity to exercise all of the different file types.

[0.3.0] - Configurable playback delays and refactoring.

Configurable playback delays have been added for audio, MIDI, and DMX playback.

DMX will now only use one OLA client instead of one per universe.

A fairly large refactor has been done to the config logic. The motivation is to keep (most) of the instantiation of the various pieces of business logic out of the config package while simultaneously trying to simplify the configuration of the player and its various components.

Finally, the nodi dependency was updated. This is of interested as it has a corrected timer, so mtrack has been updated to use it. Initial testing seems to indicate that it works well.

[0.2.1] - Repeatedly attempt to connect to OLA on startup.

Repeatedly attempt to connect to OLA, which should make connecting to DMX on startup more reliable.

[0.2.0] - Fix hard coded DMX universe.

The DMX universe was inadvertently hard coded to OLA universe 1. This has been corrected.

[0.1.9] - Better cancellation.

The expiration mechanism for cancellation had an unintended side effect of preventing cancellation if one component of the song completed ahead of time. In other words, if a MIDI file finished playing but there is still audio to play, the song is no longer cancellable. Additionally, it would be possible, in some circumstances, for the completion of one aspect of a song to cancel others unexpectedly.

The "expiration" concept was introduced to allow cancellation while still allowing a song to finish normally. This has been replaced with a simple concept of an atomic bool that indicates whether a song component (MIDI, DMX, or audio) has finished and, when used in combination with the new "notify" function, will allow a cancel_handle.wait() call to return without an actual cancellation happening.

[0.1.8] - Better MacOS support.

MacOS support is improved. It's not super thoroughly tested, but has been tested against several audio interfaces.

mtrack -V will report the correct mtrack version.

[0.1.7] - Fix dependencies.

Dependencies for mtrack have all been updated. This should hopefully resolve the issue with cargo install not working properly.

[0.1.6] - DMX engine with dimming support, MIDI channel exclusions.

DMX engine using OLA has been added. Contains a built in dimming engine.

Added the ability to exclude MIDI channels from MIDI playback.

[0.1.5] - Initial DMX engine, fixed MIDI clock timing.

Initial DMX engine implemented. This is not quite ready for prime time.

Fixed the MIDI cancelable clock. Not sure what I was thinking when I implemented that.

[0.1.4] - Track mapping update, status reporting, stopping fix.

(Breaking Change) Track mappings now support mapping to multiple channels.

Status reporting is now configurable.

Address stopping not working for songs with sparse MIDI files.

[0.1.3] - MIDI tuning, accuracy.

MIDI playback is now more accurate and has been tuned to be more in time with audio playback.

[0.1.2] - Player level channel mapping, merging of channels.

Channel mappings have been removed from individual song files and will now be maintained as part of the player configuration.

Channels can now be merged. That is, tracks can target the same output channel.

[0.1.1] - Minor dependency update.

Removal of unneeded ringbuffer dependency.

[0.1.0] - Initial release.

Added

  • Initial release.