class Song

A piece of playable music. More...

Full nameTSE3::Song
Definition#include <Song.h>
InheritsTSE3::Listener [public ], TSE3::Notifier [public ], TSE3::Playable [public ], TSE3::Serializable [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Public Members


Detailed Description

The Song is the container of an entire piece of music. It contains a number of Track s, which play concurrently - they correspond to the different members in a band playing together.

The Song class also holds a TempoTrack, TimeSigTrack, KeySigTrack, and FlagTrack. It conatins the PhraseList which holds the list of every Phrase in the Song. (The Phrases are used by Part objects held within each Track).

Command classes

Use the following command classes to manipute this object in a undo/redo environment.

See also: Notifier, Track

static const int defaultNoTracks

defaultNoTracks

 Song (int noTracks = defaultNoTracks)

Song

Creates a Song containing the given number of Tracks. Each Track will be empty.

Parameters:
noTracksThe initial number of (empty) Tracks; omit this value for a default (16)

 ~Song ()

~Song

[virtual]

PhraseList * phraseList ()

phraseList

Returns the Song's PhraseList.

Returns: Song's PhraseList

TempoTrack * tempoTrack ()

tempoTrack

Returns the Song's TempoTrack.

Returns: Song's TempoTrack

TimeSigTrack * timeSigTrack ()

timeSigTrack

Returns the Song's TimeSigTrack.

Returns: Song's TimeSigTrack

KeySigTrack * keySigTrack ()

keySigTrack

Returns the Song's KeySigTrack.

Returns: Song's KeySigTrack

FlagTrack * flagTrack ()

flagTrack

Returns the Song's FlagTrack.

Returns: Song's FlagTrack

const std::string & title ()

title

[const]

Read the Song title.

Returns: Song's title string

See also: setTitle

void  setTitle (const std::string &s)

setTitle

Set the Song title.

Parameters:
sNew Song title string

See also: title

const std::string & author ()

author

[const]

Read the Song author.

Returns: Song's author string

See also: setAuthor

void  setAuthor (const std::string &s)

setAuthor

Set the Song author.

Parameters:
sNew Song author string

See also: author

const std::string & copyright ()

copyright

[const]

Read the Song copyright message.

Returns: Song's copyright message string

See also: setCopyright

void  setCopyright (const std::string &s)

setCopyright

Set the Song copyright message.

Parameters:
sNew Song copyright message string

See also: copyright

const std::string & date ()

date

[const]

Read the Song date.

Returns: Song's date string

See also: setDate

void  setDate (const std::string &s)

setDate

Set the Song date.

Parameters:
sNew Song date string

See also: date

size_t  size ()

size

[const]

Returns the number of Track objects in the Song.

Returns: Number of Track objects in the Song

Track * operator[] (size_t n)

operator[]

[const]

Returns the Track at the given index.

The value returned for an index that is out of range is undefined. The size method describes the valid values.

Parameters:
nIndex

Returns: Track at this index

size_t  index (Track *track)

index

[const]

Returns the index of the specified Track (or size if not in this Song).

Parameters:
trackPointer to Track

Returns: The index of the specified Track, or size()

Track * insert (int n = -1)

insert

Inserts a Track at the given position. If you don't specify a position, the the Track will be inserted at the end.

This causes the Track to be 'owned' by the Song, it will be deleted when the Song is deleted.

Parameters:
nIndex to insert at, or -1 for 'at end'

Returns: Pointer to the new Track (which will be deleted by the Song)

void  insert (Track *track, int n = -1)

insert

Insert this Track at the given position. If you don't specify a position, the the Track will be inserted at the end.

This causes the Track to be 'owned' by the Song, it will be deleted when the Song is deleted.

If the Track has already been inserted in a Song, the SongError exception will be thrown.

Parameters:
trackTrack to insert
nIndex to insert at

Throws: SongError

void  remove (size_t n)

remove

Remove the Track at the given position. This will not delete it.

Parameters:
nIndex of Track to remove - you must now delete it

void  remove (Track *track)

remove

Removes the given Track. This will not delete it.

track Track to remove - you must now delete it

int  soloTrack ()

soloTrack

[const]

Returns the currently soloed Track.

A value of -1 means that no Track is soloed.

By default, no Track is soloed.

Returns: Current solo Track (or -1 for none)

See also: setSoloTrack

void  setSoloTrack (int t)

setSoloTrack

Set the solo Track.

Parameters:
tNew solo track (or -1 to disable solo)

See also: soloTrack

bool  repeat ()

repeat

[const]

Returns whether the repeat facility is enabled.

When repeat is on, the Transport object will loop playback from the to to the from positions.

By default, repeat is disabled.

Returns: Whether repeat is enabled

See also: setRepeat, from, to

void  setRepeat (bool status)

setRepeat

Sets the repeat modes status.

Parameters:
statusWhether to repeat

See also: repeat

Clock  from ()

from

[const]

Return the 'from' value. This is the left repeat marker position. When repeat is enabled in the Transport object time will loop back to here from the to position.

Returns: The 'from' value

See also: to, setFrom

void  setFrom (Clock from)

setFrom

Sets the 'from' value.

Parameters:
fromNew 'from' value

See also: from

Clock  to ()

to

[const]

Return the 'to' value. This is the right repeat marker position. When repeat is enabled in the Transport object time will loop back from here from the from position.

Returns: The 'to' value

See also: from, setTo

void  setTo (Clock to)

setTo

Sets the 'to' value.

Parameters:
toNew 'to' value

See also: to

void  Track_PartInserted (Track *, Part *)

Track_PartInserted

[virtual]

void  Track_PartRemoved (Track *, Part *)

Track_PartRemoved

[virtual]

void  Notifier_Deleted (Track *)

Notifier_Deleted

[virtual]

Reimplemented from Listener for internal purposes..

PlayableIterator * iterator (Clock index)

iterator

[virtual]

Reimplemented from Playable for internal purposes..

Clock  lastClock ()

lastClock

[const virtual]

This value is cached, not recalculated each time.

Reimplemented from Playable for internal purposes..

void  save (std::ostream &o, int i)

save

[const virtual]

Important note

You do not have to use this method directly, instead use the TSE3MDL class which takes care of the entire load/save process.

Reimplemented from Serializable for internal purposes..

void  load (std::istream &in, SerializableLoadInfo &info)

load

[virtual]

Important note

You do not have to use this method directly, instead use the TSE3MDL class which takes care of the entire load/save process.

Reimplemented from Serializable for internal purposes..