#automation #GUI #timeline #conrod #envelope

nannou_timeline

A timeline widget, compatible with all conrod GUI projects

2 unstable releases

0.2.0 Nov 13, 2019
0.1.0 Jun 9, 2019

#21 in #automation

MIT/Apache

550KB
3.5K SLoC

nannou_timeline Build Status Crates.io Crates.io docs.rs

A widget designed for controlling and viewing data over time. This crate was developed for a generative music workstation but has abstracted for general use.

nannou_timeline demo.rs example

While this is designed and developed by the nannou organisation, this widget should be compatible with all conrod GUI project.

Please see the nannou guide for more information on how to get started with nannou!

Features

  • Continuous and discrete numeric automation.
  • A set of readily available track types:
    • Piano roll.
    • Toggle automation.
    • Bang automation.
    • Numeric automation (continuous and discrete).
  • Playhead widget.
  • Easy-to-use API.
  • Resizable tracks.
  • Track pinning.
  • Musical structure grid display (supports varying time signatures).
  • Compatible with any conrod project.

TODO

  • Update to Rust 2018.
  • Add support for free-form time (currently only supports musically structured time).
  • Add ability to continuously scroll.
  • Move tracks into a separate crate.
  • Add example demonstrating how to create a custom track widget.
  • Finish making toggle automation interactive.
  • Add bezier curve support to numeric automation tracks.
  • Smart cursor "snap-to-grid" functionality.
  • Many track type ideas:
    • Plotter track (useful for waveforms / generic 1D data).
    • Audio waveform track.
    • Video preview track.

Dependencies

~5MB
~102K SLoC