#automation #timeline #envelope #conrod #gui

nannou_timeline

A timeline widget, compatible with all conrod GUI projects

7 releases (breaking)

Uses old Rust 2015

0.18.0 Nov 18, 2021
0.17.0 Jun 20, 2021
0.16.0 Apr 22, 2021
0.15.0 Oct 4, 2020
0.1.0 Jun 9, 2019

#369 in Visualization

21 downloads per month

MIT/Apache

160KB
3.5K SLoC

nannou_timeline 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

~6.5MB
~124K SLoC