# About the TSE3 library

TSE3 is a portable open source 'sequencer engine' written in C++. It provides programmers with rich and powerful sequencing capabilities. It is a 'sequencer engine' becuase it provides the actual driving force elements of a sequencer but provides no form of user interface.

TSE3 is a mature library based on a lot of experience. Versions of TSE have been in use for a number of years. Whilst not providing the user interface, it provides a lot of assistance to a UI, attempting to provide as much functionality as possible in as generic a manner as possible.

TSE3 is a product of Trax Software, written by Pete Goodliffe.

### Features

TSE3 provides a feature packed system, with a simple coherent API for application useage. It's advanced sequencer engine features include:

- Powerful linear sequencer
- Flexible object-oriented song structure
- Handles import and export of standard MIDI files (both type 0 and type 1)
- Provides own extensible song format (TSE3MDL)
- Threading support for background playback
- Playback with real time effects (remapping, quantise, velocity window clipping, repeat, offset etc)
- GM/GS/XG support
- Synchro start of playback
- Powerful utilities for song manipulation: power quantise, arpeggiator etc.
- Highly configurable metronome
- MIDI echo facility
- MIDI command filters
- Imports Cakewalk instrument definition files
- Flag points in timeline

Addtionally, TSE3 provides a level of application support. Common tasks that a sequencing application would implement that can be taken out of the user interface logic and placed at a higher level are provided within the TSE3 library. It therefore also offers the following facilities:

- Command pattern for operations, providing a flexible undo/redo facility.
- Support for an extensible choices file that can be saved on program start/stop or at any other time. Common TSE3 features are saved, and the application can attach further blocks of specific choices.

### tse3play - the multi-format playback utility

The TSE3 library also comes with a sample application that uses the library, tse3play. This program is a command-line TSE3MDL and MIDI file player with a host of control features.