|
|
Welcome to TSE3
|
TSE3 is a powerful open source sequencer engine written in C++. It is a 'sequencer engine' because it provides the actual driving force elements of a sequencer but provides no form of user interface. Sequencer applications or multimedia presentation packages will incorporate the TSE3 libraries to provide a user with MIDI sequencing facilities.
TSE3 is a mature library based on a lot of experience. Whilst not providing the user interface, it provides a lot of assistance to a UI, attempting to provide as much funcitonality as possible in as generic a manner as possible.
TSE3 is intended to be platform independent. Contributors are encouraged to provide ports to other platforms. See the Supported Platforms section below.
TSE3 is based on mature technology. Versions of TSE have already been in use for a number of years.
|
|
Features
|
TSE3 provides a feature packed system, with a simple coherent API for application useage. It's advanced sequencer engine features include:
- Powerful portable 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.
- Management of the lifetimes of TSE3 objects.
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. Follow the tse3play link on the left for more information.
Click here to view the product whitepaper.
|
|
Supported Platforms
|
TSE3 is by design a portable sequencer engine library. The only work necessary to port the library to a particular platform (given that it has a C++ compiler capable of supporting namespaces, templates and exceptions) is the implementation of a single class, the MidiScheduler. This is the class that queues and sends data to the computer's MIDI hardware. The interface that must be implemented is well documented and so the job should be relatively simple.
TSE3 platform specific MidiScheduler classes exist for the following platforms:
- Linux/Unix (OSS/Alsa)
- Acorn RISC OS
|
|
License Information
|
TSE3 is open source (free) software and is distributed under the terms of the GNU General Public License. See www.gnu.org for more information.
TSE3 has been designed to be used by people, and to not just be another peice of source code added to the increasing pile of 'free' projects. Placing it under the GPL opens it up to be used by developers in their own sequencer applications, MIDI player applications or multimedia presentation software.
Indeed, we encourage you to do this. The more people using the library, the more feedback generated, the more the package will improve.
|
|
A Brief History
|
TSE is an acronym for the Trax Sequencer Engine. 'Trax' since the developer, Pete Goodliffe, releases software under the moniker 'Trax Software'. TSE was originally developed for a sequencing project provisionally titled TraxSequencer.
TSE technology dates from 1996. The first version took a pattern based approach to the song structure which limited its flexibility.
TSE1 lead rapidly to TSE2 which was developed and improved between 1997-1999. This was targetted at the Acorn RISC OS architecture only, although in theory should have been fairly portable. TSE2 is a linear sequencer engine. You record snatches of music called Phrases, and then place them inside Parts which are further put into the Tracks of a Song. This approach was considerably more flexible and powerful than the TSE1 approach.
TSE2 found its way into several RISC OS products. The first generation of TSE2 powered the TraxSequencer product. Later revisions to TSE2 and the user interface lead to the product Anthem. At it's release Anthem was acclaimed as a new powerful way of sequencing, challenging the accepted norm.
TSE2 based products were only available commercially. See the R-Comp website for more information.
TSE3 is a third generation project based on the experiences of TSE2. It includes the same revolutionary functionality but takes it into a new generation of implementation. Based on experience with TSE2, TSE3 provides a robust and powerful engine with even greater extensability and portability. It draws on experience with TSE2 use in it's partitioning of the sequencer engine logic, the application support logic, the platform specific interfaces, and the application itself in the most appropriate manner.
The C++ code has been brought up to a much more modern standard, leveraging the STL and other appropriate language features.
The other major difference between TSE2 and TSE3 is the release conditions. TSE3 is an open source project, allowing it to be used without restriction. It has been designed to be used by as large an audience as possible; indeed to be the defacto open source sequencing engine. If you don't have high ideals then you won't get anywhere!
|
|
About this web site
|
This site is hosted by SourceForge, with thanks.
You can go to the TSE3 library's Sourceforge project site here. It contains more information on the project and it's administration.
|
|
|