Csound and CsoundAC API
5.17
|
Base class for compositions that use the principle of a music graph to generate a score. More...
#include <ScoreModel.hpp>
Public Member Functions | |
virtual void | addChild (Node *node) |
virtual void | clear () |
Clears the score. | |
virtual void | clearOutputSoundfileName () |
virtual ublas::matrix< double > | createTransform () |
virtual double & | element (size_t row, size_t column) |
virtual int | generate () |
Generates a score based on a music graph defined by the child nodes of this. | |
virtual std::string | getAlbum () const |
virtual std::string | getArtist () const |
virtual std::string | getCdSoundfileName () const |
Returns a soundfile name for a CD audio track based on the filename of this, by appending ".cd.wav" to the filename. | |
virtual bool | getConformPitches () const |
Returns whether or not the pitches in generated scores will be conformed to the nearest equally tempered pitch. | |
virtual std::string | getCopyright () const |
virtual std::string | getFilename () const |
Returns the filename of this, which is used as a base for derived filenames (soundfile, MIDI file, etc.). | |
virtual std::string | getFomusFilename () const |
Returns a MusicXML filename based on the filename of this, by appending ".fms" to the filename. | |
virtual std::string | getLicense () const |
virtual std::string | getLilypondFilename () const |
Returns a MusicXML filename based on the filename of this, by appending ".ly" to the filename. | |
virtual ublas::matrix< double > | getLocalCoordinates () const |
Returns the local transformation of coordinate system. | |
virtual std::string | getMidiFilename () const |
Returns a MIDI filename based on the filename of this, by appending ".mid" to the filename. | |
virtual std::string | getMp3SoundfileName () const |
Returns a soundfile name for an MP3 file based on the filename of this, by appending ".mp3" to the filename. | |
virtual std::string | getMusicXmlFilename () const |
Returns a MusicXML filename based on the filename of this, by appending ".xml" to the filename. | |
virtual std::string | getNormalizedSoundfileName () const |
Returns a soundfile name based on the filename of this, by appending ".norm.wav" to the filename. | |
virtual std::string | getOutputSoundfileName () const |
Returns a soundfile name based on the filename of this, by appending ".wav" to the filename, which is the default, or a non-default ouput name which need not be a file but must be set using setOutputSoundfileName(). | |
virtual Score & | getScore () |
Return the self-contained Score. | |
virtual long | getThis () |
Returns the address of this as a long integer. | |
virtual Node * | getThisNode () |
Returns the address of this as a Node pointer. | |
virtual std::string | getTimestamp () const |
Returns the time the score was generated. | |
virtual std::string | getTitle () const |
virtual double | getTonesPerOctave () const |
Returns the number of equally tempered intervals per octave (the default is 12, 0 means non-equally tempered). | |
virtual void | initialize () |
virtual int | normalizeOutputSoundfile (double levelDb=-3.0) |
Assuming the score has been rendered, uses sox to translate the output soundfile to a normalized soundfile. | |
virtual int | perform () |
Performs the current score to create an output soundfile, which should be tagged with author, timestamp, copyright, title, and optionally album. | |
virtual int | performAll () |
Convenience function that calls performMaster(), and translateMaster(). | |
virtual int | performMaster () |
Convenience function that calls saveMidi(), saveMusicXML(), and perform(). | |
virtual int | processArgs (const std::vector< std::string > &args) |
Pass the invoking program's command-line arguments to processArgs() and it will perform with possibly back-end-dependent options. | |
virtual int | processArgv (int argc, const char **argv) |
Pass the invoking program's command-line arguments to processArgs() and it will perform with possibly back-end-dependent options. | |
virtual void | produceOrTransform (Score &score, size_t beginAt, size_t endAt, const ublas::matrix< double > &compositeCordinates) |
The default implementation does nothing. | |
virtual int | render () |
Convenience function that calls clear(), generate(), perform(). | |
virtual int | renderAll () |
Convenience function that calls clear(), generate(), performAll(). | |
ScoreModel () | |
virtual void | setAlbum (std::string value) |
virtual void | setArtist (std::string value) |
virtual void | setConformPitches (bool conformPitches) |
Sets whether or not the pitches in generated scores will be conformed to the nearest equally tempered pitch. | |
virtual void | setCopyright (std::string value) |
virtual void | setElement (size_t row, size_t column, double value) |
virtual void | setFilename (std::string filename) |
Sets the filename of this -- basically, the title of the composition. | |
virtual void | setLicense (std::string value) |
virtual void | setOutputSoundfileName (std::string name) |
Sets a non-default output name (could be an audio device not a file). | |
virtual void | setTitle (std::string value) |
virtual void | setTonesPerOctave (double tonesPerOctave) |
Sets the number of equally tempered intervals per octave (the default is 12, 0 means non-equally tempered). | |
virtual int | tagFile (std::string filename) const |
virtual int | translateMaster () |
Convenience function that calls rescaleOutputSoundfile(), translateToCdAudio(), and translateToMp3(). | |
virtual int | translateToCdAudio (double levelDb=-3.0) |
Assuming the score has been rendered, uses sox to translate the output soundfile to normalized CD-audio format. | |
virtual int | translateToMp3 (double bitrate=256.01, double levelDb=-3.0) |
Assuming the score has been rendered, uses sox and LAME to translate the output soundfile to normalized MP3 format. | |
virtual int | translateToNotation (const std::vector< std::string > partNames=std::vector< std::string >(), std::string header="") |
Saves the generated score in Fomus format and uses Fomus and Lilypond to translate that to a PDF of music notation. | |
virtual ublas::matrix< double > | traverse (const ublas::matrix< double > &globalCoordinates, Score &score) |
The default implementation postconcatenates its own local coordinate system with the global coordinates, then passes the score and the product of coordinate systems to each child, thus performing a depth-first traversal of the music graph. | |
virtual void | write (const char *text) |
Write as if to stderr. | |
virtual | ~ScoreModel () |
Static Public Member Functions | |
static std::string | generateFilename () |
Generates a versioned filename. | |
static std::string | makeTimestamp () |
Returns the current locale time as a string. | |
Data Fields | |
std::vector< Node * > | children |
Child Nodes, if any. | |
Protected Attributes | |
std::string | album |
std::string | artist |
bool | conformPitches |
std::string | copyright |
std::string | filename |
std::string | license |
ublas::matrix< double > | localCoordinates |
std::string | outputFilename |
Score | score |
std::string | timestamp |
std::string | title |
double | tonesPerOctave |
Base class for compositions that use the principle of a music graph to generate a score.
A music graph is a directed acyclic graph of nodes including empty nodes, nodes that contain only child nodes, score nodes, event generator nodes, event transformer nodes, and others. Each node is associated with a local transformation of coordinate system in music space using a 12 x 12 homogeneous matrix. To generate the score, the music graph is traversed depth first, and each node postconcatenates its local transformation of coordinate system with the coordinate system of its parent to derive a new local coordinate system, which is applied to all child events.
virtual csound::ScoreModel::~ScoreModel | ( | ) | [virtual] |
virtual void csound::Node::addChild | ( | Node * | node | ) | [virtual, inherited] |
virtual void csound::ScoreModel::clear | ( | ) | [virtual] |
virtual void csound::Composition::clearOutputSoundfileName | ( | ) | [virtual, inherited] |
virtual ublas::matrix<double> csound::Node::createTransform | ( | ) | [virtual, inherited] |
virtual double& csound::Node::element | ( | size_t | row, |
size_t | column | ||
) | [virtual, inherited] |
virtual int csound::ScoreModel::generate | ( | ) | [virtual] |
Generates a score based on a music graph defined by the child nodes of this.
Reimplemented from csound::Composition.
Reimplemented in csound::MusicModel.
static std::string csound::Composition::generateFilename | ( | ) | [static, inherited] |
Generates a versioned filename.
virtual std::string csound::Composition::getAlbum | ( | ) | const [virtual, inherited] |
virtual std::string csound::Composition::getArtist | ( | ) | const [virtual, inherited] |
virtual std::string csound::Composition::getCdSoundfileName | ( | ) | const [virtual, inherited] |
Returns a soundfile name for a CD audio track based on the filename of this, by appending ".cd.wav" to the filename.
virtual bool csound::Composition::getConformPitches | ( | ) | const [virtual, inherited] |
Returns whether or not the pitches in generated scores will be conformed to the nearest equally tempered pitch.
virtual std::string csound::Composition::getCopyright | ( | ) | const [virtual, inherited] |
virtual std::string csound::Composition::getFilename | ( | ) | const [virtual, inherited] |
Returns the filename of this, which is used as a base for derived filenames (soundfile, MIDI file, etc.).
virtual std::string csound::Composition::getFomusFilename | ( | ) | const [virtual, inherited] |
Returns a MusicXML filename based on the filename of this, by appending ".fms" to the filename.
virtual std::string csound::Composition::getLicense | ( | ) | const [virtual, inherited] |
virtual std::string csound::Composition::getLilypondFilename | ( | ) | const [virtual, inherited] |
Returns a MusicXML filename based on the filename of this, by appending ".ly" to the filename.
virtual ublas::matrix<double> csound::Node::getLocalCoordinates | ( | ) | const [virtual, inherited] |
Returns the local transformation of coordinate system.
virtual std::string csound::Composition::getMidiFilename | ( | ) | const [virtual, inherited] |
Returns a MIDI filename based on the filename of this, by appending ".mid" to the filename.
virtual std::string csound::Composition::getMp3SoundfileName | ( | ) | const [virtual, inherited] |
Returns a soundfile name for an MP3 file based on the filename of this, by appending ".mp3" to the filename.
virtual std::string csound::Composition::getMusicXmlFilename | ( | ) | const [virtual, inherited] |
Returns a MusicXML filename based on the filename of this, by appending ".xml" to the filename.
virtual std::string csound::Composition::getNormalizedSoundfileName | ( | ) | const [virtual, inherited] |
Returns a soundfile name based on the filename of this, by appending ".norm.wav" to the filename.
virtual std::string csound::Composition::getOutputSoundfileName | ( | ) | const [virtual, inherited] |
Returns a soundfile name based on the filename of this, by appending ".wav" to the filename, which is the default, or a non-default ouput name which need not be a file but must be set using setOutputSoundfileName().
virtual Score& csound::Composition::getScore | ( | ) | [virtual, inherited] |
Return the self-contained Score.
virtual long csound::ScoreModel::getThis | ( | ) | [virtual] |
Returns the address of this as a long integer.
Reimplemented in csound::MusicModel.
virtual Node* csound::ScoreModel::getThisNode | ( | ) | [virtual] |
Returns the address of this as a Node pointer.
Reimplemented in csound::MusicModel.
virtual std::string csound::Composition::getTimestamp | ( | ) | const [virtual, inherited] |
Returns the time the score was generated.
virtual std::string csound::Composition::getTitle | ( | ) | const [virtual, inherited] |
virtual double csound::Composition::getTonesPerOctave | ( | ) | const [virtual, inherited] |
Returns the number of equally tempered intervals per octave (the default is 12, 0 means non-equally tempered).
virtual void csound::ScoreModel::initialize | ( | ) | [virtual] |
Reimplemented in csound::MusicModel.
static std::string csound::Composition::makeTimestamp | ( | ) | [static, inherited] |
Returns the current locale time as a string.
virtual int csound::Composition::normalizeOutputSoundfile | ( | double | levelDb = -3.0 | ) | [virtual, inherited] |
Assuming the score has been rendered, uses sox to translate the output soundfile to a normalized soundfile.
virtual int csound::Composition::perform | ( | ) | [virtual, inherited] |
Performs the current score to create an output soundfile, which should be tagged with author, timestamp, copyright, title, and optionally album.
The default implementation does nothing. Must be overridden in derived classes.
Reimplemented in csound::MusicModel.
virtual int csound::Composition::performAll | ( | ) | [virtual, inherited] |
Convenience function that calls performMaster(), and translateMaster().
virtual int csound::Composition::performMaster | ( | ) | [virtual, inherited] |
Convenience function that calls saveMidi(), saveMusicXML(), and perform().
virtual int csound::Composition::processArgs | ( | const std::vector< std::string > & | args | ) | [virtual, inherited] |
Pass the invoking program's command-line arguments to processArgs() and it will perform with possibly back-end-dependent options.
Additional arguments can be added to the args before the call. Default implementation calls renderAll().
Reimplemented in csound::MusicModel.
virtual int csound::Composition::processArgv | ( | int | argc, |
const char ** | argv | ||
) | [virtual, inherited] |
Pass the invoking program's command-line arguments to processArgs() and it will perform with possibly back-end-dependent options.
Default implementation calls the std::string overload.
virtual void csound::Node::produceOrTransform | ( | Score & | score, |
size_t | beginAt, | ||
size_t | endAt, | ||
const ublas::matrix< double > & | compositeCordinates | ||
) | [virtual, inherited] |
The default implementation does nothing.
Derived nodes that produce notes from scratch should transform them using the composite transformation of coordinate system, which is passed in from the traverse() function.
Reimplemented in csound::ChordLindenmayer, csound::VoiceleadingNode, csound::RemoveDuplicates, csound::Random, csound::CounterpointNode, csound::MCRM, csound::ScoreNode, csound::Rescale, csound::Cell, and csound::Hocket.
virtual int csound::Composition::render | ( | ) | [virtual, inherited] |
Convenience function that calls clear(), generate(), perform().
Reimplemented in csound::MusicModel.
virtual int csound::Composition::renderAll | ( | ) | [virtual, inherited] |
Convenience function that calls clear(), generate(), performAll().
virtual void csound::Composition::setAlbum | ( | std::string | value | ) | [virtual, inherited] |
virtual void csound::Composition::setArtist | ( | std::string | value | ) | [virtual, inherited] |
virtual void csound::Composition::setConformPitches | ( | bool | conformPitches | ) | [virtual, inherited] |
Sets whether or not the pitches in generated scores will be conformed to the nearest equally tempered pitch.
virtual void csound::Composition::setCopyright | ( | std::string | value | ) | [virtual, inherited] |
virtual void csound::Node::setElement | ( | size_t | row, |
size_t | column, | ||
double | value | ||
) | [virtual, inherited] |
virtual void csound::Composition::setFilename | ( | std::string | filename | ) | [virtual, inherited] |
Sets the filename of this -- basically, the title of the composition.
virtual void csound::Composition::setLicense | ( | std::string | value | ) | [virtual, inherited] |
virtual void csound::Composition::setOutputSoundfileName | ( | std::string | name | ) | [virtual, inherited] |
Sets a non-default output name (could be an audio device not a file).
virtual void csound::Composition::setTitle | ( | std::string | value | ) | [virtual, inherited] |
virtual void csound::Composition::setTonesPerOctave | ( | double | tonesPerOctave | ) | [virtual, inherited] |
Sets the number of equally tempered intervals per octave (the default is 12, 0 means non-equally tempered).
virtual int csound::Composition::tagFile | ( | std::string | filename | ) | const [virtual, inherited] |
virtual int csound::Composition::translateMaster | ( | ) | [virtual, inherited] |
Convenience function that calls rescaleOutputSoundfile(), translateToCdAudio(), and translateToMp3().
virtual int csound::Composition::translateToCdAudio | ( | double | levelDb = -3.0 | ) | [virtual, inherited] |
Assuming the score has been rendered, uses sox to translate the output soundfile to normalized CD-audio format.
virtual int csound::Composition::translateToMp3 | ( | double | bitrate = 256.01 , |
double | levelDb = -3.0 |
||
) | [virtual, inherited] |
Assuming the score has been rendered, uses sox and LAME to translate the output soundfile to normalized MP3 format.
virtual int csound::Composition::translateToNotation | ( | const std::vector< std::string > | partNames = std::vector< std::string >() , |
std::string | header = "" |
||
) | [virtual, inherited] |
Saves the generated score in Fomus format and uses Fomus and Lilypond to translate that to a PDF of music notation.
A meter of 4/4 and a tempo of MM 120 is assumed. A vector of part names may be supplied.
virtual ublas::matrix<double> csound::Node::traverse | ( | const ublas::matrix< double > & | globalCoordinates, |
Score & | score | ||
) | [virtual, inherited] |
The default implementation postconcatenates its own local coordinate system with the global coordinates, then passes the score and the product of coordinate systems to each child, thus performing a depth-first traversal of the music graph.
Reimplemented in csound::Sequence, and csound::Hocket.
virtual void csound::Composition::write | ( | const char * | text | ) | [virtual, inherited] |
Write as if to stderr.
std::string csound::Composition::album [protected, inherited] |
std::string csound::Composition::artist [protected, inherited] |
std::vector<Node *> csound::Node::children [inherited] |
Child Nodes, if any.
bool csound::Composition::conformPitches [protected, inherited] |
std::string csound::Composition::copyright [protected, inherited] |
std::string csound::Composition::filename [protected, inherited] |
std::string csound::Composition::license [protected, inherited] |
ublas::matrix<double> csound::Node::localCoordinates [protected, inherited] |
std::string csound::Composition::outputFilename [protected, inherited] |
Score csound::Composition::score [protected, inherited] |
std::string csound::Composition::timestamp [protected, inherited] |
std::string csound::Composition::title [protected, inherited] |
double csound::Composition::tonesPerOctave [protected, inherited] |