tLb structure


On disk, you find the parts of tLb on these places:
tLb – includes the main folders Contents and lib.

Contents
includes in alphabetical order

  • AudioModules – the static part of LSD, the modules mainly on the right side of the application window
  • AudioPlugins – the dynamical loaded plug ins
  • HelpLSD and HelpLVD – the help pages for the programs
  • JitterModules – the static part of LVD
  • JitterPlugins – the dynamical loaded plug ins
  • LSD – the LSD main patcher
  • LVD – the LVD main patcher
  • MainViews – these includes the startup view, which will be shown before the main view is loaded, and its subpatchers
  • Media – currently only the "About" picture
  • Resources – pictures for user interface elements

The reason for the existence of the Contents folder is the simplification of debugging. This simulates the structure of a standalone application and helps testing the various file paths (e.g. Settings folder).

The second folder is called lib. It contains the building blocks of tLb. These are:
  • About – the About patcher
  • Bindings – the tLb.BindTo… abstractions in some variations
  • Common – commonly used abstractions, like tLb.GetApplicationPath, etc..
  • CueCounter – the cue counter patcher
  • CueNames – the cue names patcher
  • DirectCueAccess – stage view patcher and subpatcher
  • GlobalOut – global audio out for LSD
  • Globals – global settings for LSD: midi port, remote host, port numbers, etc.
  • Help – the help patcher for LSD and LVD, plus the test generators used there
  • Init – start templates, used as placeholder for the slots at program launch
  • JavaScripts – a collection of JavaScripts, like tLb.getParentPatcherName, tLb.matrixRouting (for LVD)
  • JitControl – main jitter clock source in LVD (named like this for historical reasons)
  • JitGlobals – global settings for LVD, analog to LSD globals
  • JItPositions – user interface for controlling the videoplane locations in the OpenGL space
  • JitSolo – opens the floating preview window for LVD slots
  • Matrix – the central signal routing instance, with the flavors AudioMatrix and JitMatrix
  • Menu – the menubar and actions for both applications
  • Metronome – metronome model and view
  • Network – all things related to UDP network communication and Bonjour
  • Sessions – the File menu actions, like Open Session, Save Session, etc.
  • Shader – some shader adapted to tLb. Nearly identical to the originals, only simplyfied.
  • Solo – LSD solo listening logic
  • Timer – timer model and view
  • Utilities – things like gain adjustment, file copying, timed interpolation
  • Wrapper – mainly the controllers, like effect selection controller, effect controller

Java contains the tLb Java sources (e.g. FileUtility for basic file system operations).
Externals contains tLb's custom build Max externals. They still have the old prefix "tomLib", this will be changed in a future release.
The blue marked folders inside the Contents folder are placeholders for certain effect plugin file locations, e.g. Stereo serves as destination for SoundfilePlayer's audio files.

The logical order is organized as follows:
  • utility functions
  • menubar controller and sub-controller (new, open, save, …)
  • control modules, like CueCounter, Timer, Metronome
  • wrapper modules for the effects
These are divided into
  • static wrappers and controllers – the effect is loaded at startup and remains until program end
  • dynamic wrappers and controllers – the handling of the 16 effect slots

A typical tLb application has a main window, which is always visible, a menubar, and varying effect modules.
A detailed description of the inner workings of the effect selection controllers and the effect controllers will follow later.