csound::VoiceleadingNode Class Reference

#include <VoiceleadingNode.hpp>

Inheritance diagram for csound::VoiceleadingNode:

Inheritance graph
[legend]
Collaboration diagram for csound::VoiceleadingNode:

Collaboration graph
[legend]

Detailed Description

This node class imposes a sequence of one or more "voice-leading" operations upon the pitches of notes produced by children of this node. These operations comprise: prime chord (P), transpose (T), unordered pitch-class set (C, equivalent to PT), voicing (V), and voice-lead (L). The values of P, T, C, and V each form an additive cyclic group whose elements are defined by counting through all possible values in order. Note that C is not the same as "pitch-class set number" in the sense of M = sum over pitch-classes of (2 ^ pitch-class); it is rather one less than M. Not all combinations of operations are consistent. P requires T. PT cannot be used with C. V cannot be used with L. If neither PT nor C is specified, the existing C of the notes is used. The consistent combinations of operations are thus: PT, PTV, PTL, C, CV, CL, V, and L.

Public Member Functions

 VoiceleadingNode ()
virtual ~VoiceleadingNode ()
virtual void apply (Score &score, const VoiceleadingOperation &priorOperation, const VoiceleadingOperation &currentOperation)
virtual void produceOrTransform (Score &score, size_t beginAt, size_t endAt, const ublas::matrix< double > &coordinates)
virtual void PT (double time, double P_, double T)
virtual void PTV (double time, double P_, double T, double V_)
virtual void PTL (double time, double P_, double T, bool avoidParallels=true)
virtual void C (double time, double C_)
virtual void C (double time, std::string C_)
virtual void CV (double time, double C_, double V_)
virtual void CV (double time, std::string C_, double V_)
virtual void CL (double time, double C_, bool avoidParallels=true)
virtual void CL (double time, std::string C_, bool avoidParallels=true)
virtual void V (double time, double V_)
virtual void L (double time, bool avoidParallels=true)
virtual void transform (Score &score, bool rescaleTime=false)
virtual ublas::matrix< double > getLocalCoordinates () const
virtual ublas::matrix< double > traverse (const ublas::matrix< double > &globalCoordinates, Score &score)
virtual ublas::matrix< double > createTransform ()
virtual void clear ()
virtual double & element (size_t row, size_t column)
virtual void setElement (size_t row, size_t column, double value)
virtual void addChild (Node *node)

Data Fields

std::map< double,
VoiceleadingOperation
operations
double base
double range
bool rescaleTimes
bool avoidParallels
size_t divisionsPerOctave
std::vector< Node * > children

Protected Attributes

ublas::matrix< double > localCoordinates

Constructor & Destructor Documentation

csound::VoiceleadingNode::VoiceleadingNode (  ) 

virtual csound::VoiceleadingNode::~VoiceleadingNode (  )  [virtual]


Member Function Documentation

virtual void csound::VoiceleadingNode::apply ( Score score,
const VoiceleadingOperation priorOperation,
const VoiceleadingOperation currentOperation 
) [virtual]

Applies stored operations to specified ranges of notes produced by children of this node.

virtual void csound::VoiceleadingNode::produceOrTransform ( Score score,
size_t  beginAt,
size_t  endAt,
const ublas::matrix< double > &  coordinates 
) [virtual]

The default implementation does nothing.

Reimplemented from csound::Node.

virtual void csound::VoiceleadingNode::PT ( double  time,
double  P_,
double  T 
) [virtual]

virtual void csound::VoiceleadingNode::PTV ( double  time,
double  P_,
double  T,
double  V_ 
) [virtual]

virtual void csound::VoiceleadingNode::PTL ( double  time,
double  P_,
double  T,
bool  avoidParallels = true 
) [virtual]

virtual void csound::VoiceleadingNode::C ( double  time,
double  C_ 
) [virtual]

virtual void csound::VoiceleadingNode::C ( double  time,
std::string  C_ 
) [virtual]

virtual void csound::VoiceleadingNode::CV ( double  time,
double  C_,
double  V_ 
) [virtual]

virtual void csound::VoiceleadingNode::CV ( double  time,
std::string  C_,
double  V_ 
) [virtual]

virtual void csound::VoiceleadingNode::CL ( double  time,
double  C_,
bool  avoidParallels = true 
) [virtual]

virtual void csound::VoiceleadingNode::CL ( double  time,
std::string  C_,
bool  avoidParallels = true 
) [virtual]

virtual void csound::VoiceleadingNode::V ( double  time,
double  V_ 
) [virtual]

virtual void csound::VoiceleadingNode::L ( double  time,
bool  avoidParallels = true 
) [virtual]

virtual void csound::VoiceleadingNode::transform ( Score score,
bool  rescaleTime = false 
) [virtual]

Simplifies use out of the context of a music graph.

virtual ublas::matrix<double> csound::Node::getLocalCoordinates (  )  const [virtual, inherited]

Returns the local transformation of coordinate system.

Reimplemented in csound::Random.

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::Hocket, and csound::Sequence.

virtual ublas::matrix<double> csound::Node::createTransform (  )  [virtual, inherited]

virtual void csound::Node::clear (  )  [virtual, inherited]

Reimplemented in csound::Lindenmayer, and csound::MusicModel.

virtual double& csound::Node::element ( size_t  row,
size_t  column 
) [virtual, inherited]

virtual void csound::Node::setElement ( size_t  row,
size_t  column,
double  value 
) [virtual, inherited]

virtual void csound::Node::addChild ( Node node  )  [virtual, inherited]


Field Documentation

ublas::matrix<double> csound::Node::localCoordinates [protected, inherited]

std::vector<Node *> csound::Node::children [inherited]

Child Nodes, if any.


Generated on Sun Nov 9 00:25:06 2008 for Csound and CsoundAC by  doxygen 1.5.6