The structure of the LMMS core

Important classes

There are some important C++ classes in the LMMS codebase. Here are some examples:

  • LmmsCore(also known as Engine): Holds the instances of other important classes, e.g. Song, AudioEngine, PatternStore, Mixer.

  • Song: Controls the playback. Also works as a top-level container of LMMS projects.

  • AudioEngine: Renders audio independently of audio backends. Also manages audio backends and MIDI interfaces.

  • PlayHandle: Manages objects that plays sound, ex. notes, instruments, sample clips.

  • AudioDevice: Base class for audio backends.

  • Model: Models in sense of Model-view-controller pattern

    • AutomatableModel: Models which can be controlled by Controllers and/or AutomationPatterns, e.g. BoolModel, IntModel, FloatModel.

  • Track: Base class for various types of tracks, including AutomationTrack, BBTrack, InstrumentTrack, and SampleTrack.

  • Plugin: Base class for LMMS plugins(instruments and effects). For details on LMMS plugins, see the plugin system section.

    • Instrument: Generates audio signal from notes(from note clips or external MIDI inputs)

    • Effect: Transforms audio signal

Last updated

Was this helpful?