Guides for developers
GitHub repositoryHomepage
  • Getting started
  • Core
    • Glossary
    • The structure of the LMMS core
      • Initializations and cleanups
        • For core
      • Accessing to core classes
    • The structure of an LMMS project
    • Tracks and track containers
      • Tracks and clips
      • Track containers
    • The pattern system
    • Play handles
      • NotePlayHandle
      • InstrumentPlayHandle
      • SamplePlayHandle
    • Instruments
      • The type of instruments
      • Processing in instruments
        • Per-note processing
    • Audio effects
    • Automation and controllers
      • Automation
        • Processing automation
      • Controllers
    • Controlling playback
    • The audio rendering engine of LMMS
      • Stage 1: collect play handles and process automation
      • Stage 2: render notes and instruments
      • Step 3: mix and master
    • Threading and synchronization
    • Data serialization
      • Overview
      • Relevant classes
      • Upgrading data files
    • Internal routing of events and signals
      • Audio signals
      • MIDI events
    • Audio and MIDI I/O
      • Supported backends and features
  • GUI
    • The initialization process of LMMS GUI
    • UI components of LMMS
  • Build system
    • CMake and LMMS
    • Source directory structure
    • Useful variables/macros
  • Plugin system
    • Plugin types
    • Plugin API
      • Sub-plugin API
    • Loading plugins from LMMS
  • Unit tests
    • Writing unit tests
Powered by GitBook
On this page

Was this helpful?

  1. Core
  2. Automation and controllers

Automation

It is possible to change values of some(but not all) controls according to the playback position. This can be achieved by creating automation clips and connecting controls to them.

An AutomationClip contains a series of automation nodes which defines the value of target controls right before/after a node and the time offset of the node from the beginning of the clip. At time points between two nodes, the value is determined by the values of surrounding nodes and interpolation methods(discrete, linear, cubic Hermitian or maybe Bezier curves in the future).

There are some special cases: before the first node, and after the last node. TODO

PreviousAutomation and controllersNextProcessing automation

Last updated 2 years ago

Was this helpful?