|
This document provides simple descriptions of how to use the TSE3 API to perform common tasks.
To use the library you should have you compiler set to point to the appropriate include directory. TSE3 header files should be included with a line like:
#include "tse3/Midi.h"
Note the tse3/
section. This will ensure that TSE3
header file names do not clash with other library paths.
Where you do not need to #include
a header (for example, you
do not inherit directly from a TSE3 class, just use pointers to it in your
class' interface) you are urged to forward declare TSE3 classes rather than
pull in the header file. For example:
namespace TSE3 { class Song; class Track; }
The TSE3 library can save and load standard MIDI files as well as song files in it's own filetype (TSE3MDL). There are benefits and drawbacks of both types. MIDI files are portable - practically any other sequencing/multimedia package will be able to interpret them. However, MIDI files are not expressive enough to describe TSE3's advanced Song structure and so use of the TSE3MDL format is recommended where possible.
TSE3MDL
object (in TSE3MDL.h
). The KDOC documentation explains how to use it. Do not use the Serializable
interface of the Song
class directly, you will not create a complete TSE3MDL file.
MidiFileImport
object (in MidiFile.h
). The KDOC documentation explains how to use it.
TSE2MDL
class (in TSE2MDL.h
) to import these files.
To save as TSE3MDL or standard MIDI file is as easy as loading.
TSE3MDL
object.
MidiFileExport
object (in MidiFile.h
).
The Transport
object (in tse3/Transport.h
) is used to play a Song
object (or in fact, any kind of object that implements the Playable
interface). To use it you must also create a MidiScheduler
object that knows how to play MIDI output on your computer. For example, Linux boxes with the Open Sound System will want to create an OSSMidiScheduler
object using the OSSMidiSchedulerFactory
class.
As well as a MidiScheduler
you must also create a Metronome
object. If simply playing back a file, you may wish to switch the metronome 'tick' off using the documented API.
Playing a Song
is simply a matter of calling play
on the Transport
object. You can either poll the Transport
object to find out when the playing has stopped, or implement the TransportListener
interface to be told directly.
If you have any other questions, ask the author!
(The tse3play program is a good example of how to use the library - you might find your answer there).
|