Csound and CsoundAC API  5.17
Public Member Functions | Data Fields | Protected Attributes
csound::StrangeAttractor Class Reference

Generates notes by searching for a chaotic dynamical system defined by a polynomial equation or partial differential equation using Julien C. More...

#include <StrangeAttractor.hpp>

+ Inheritance diagram for csound::StrangeAttractor:

Public Member Functions

virtual void addChild (Node *node)
 
virtual void calculateFractalDimension ()
 
virtual void calculateLyupanovExponent ()
 
virtual void clear ()
 
virtual void codeRandomize ()
 
virtual Eigen::MatrixXd createTransform ()
 
virtual double & element (size_t row, size_t column)
 Returns a reference to the indicated element of the local transformation of coordinate system. More...
 
virtual bool evaluateAttractor ()
 
virtual void generate ()
 
virtual int getAttractorType () const
 
virtual std::string getCode () const
 
virtual void getCoefficients ()
 
virtual void getDimensionAndOrder ()
 
virtual int getDimensionCount () const
 
virtual double getFractalDimension () const
 
virtual size_t getIteration () const
 
virtual size_t getIterationCount () const
 
virtual Eigen::MatrixXd getLocalCoordinates () const
 Returns the local transformation of coordinate system. More...
 
virtual double getLyupanovExponent () const
 
virtual ScoregetScore ()
 
virtual int getScoreType () const
 
virtual double getW () const
 
virtual double getX () const
 
virtual double getY () const
 
virtual double getZ () const
 
virtual void initialize ()
 
virtual void iterate ()
 
virtual void produceOrTransform (Score &collectingScore, size_t beginAt, size_t endAt, const Eigen::MatrixXd &coordinates)
 This function is called by the traverse() function. More...
 
virtual void reinitialize ()
 
virtual void render (int N, double X, double Y, double Z, double W)
 
virtual void reset ()
 
virtual bool searchForAttractor ()
 
virtual void setAttractorType (int attractorType)
 Types: 1 = 1-dimensional polynomial map, 2 = 2-dimensional polynomial map, 3 = 3-dimensional polynomial map, 4 = 4-dimensional polynomial map, 5 = 3-dimensional ODE, 6 = 4-dimensional ODE, 7 through 12 = special functions. More...
 
virtual void setCode (std::string code)
 
virtual void setDimensionCount (int D)
 
virtual void setElement (size_t row, size_t column, double value)
 Sets the indicated element of the local transformation of coordinate system. More...
 
virtual void setIteration (size_t iteration)
 
virtual void setIterationCount (size_t iterationCount)
 
virtual void setScoreType (int attractorType)
 
virtual void setW (double X)
 
virtual void setX (double X)
 
virtual void setY (double X)
 
virtual void setZ (double X)
 
virtual void shuffleRandomNumbers ()
 
virtual void specialFunctions ()
 
 StrangeAttractor (void)
 
virtual Eigen::MatrixXd traverse (const Eigen::MatrixXd &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. More...
 
virtual ~StrangeAttractor (void)
 

Data Fields

std::vector< Node * > children
 Child Nodes, if any. More...
 
std::string importFilename
 
Random randomNode
 

Protected Attributes

std::vector< double > A
 
double AL
 
std::string code
 
double COSAL
 
int D
 
double D2
 
double D2MAX
 
int DD
 
double decibels
 
double DF
 
double DL2
 
double DLW
 
double DLX
 
double DLY
 
double DLZ
 
double DUM
 
double duration
 
double DW
 
double DX
 
double DY
 
double DZ
 
double EPS
 
double F
 
std::string filename
 
int I
 
int I1
 
int I2
 
int I3
 
int I4
 
int I5
 
double instrument
 
int J
 
double L
 
Eigen::MatrixXd localCoordinates
 
double LSUM
 
int M
 
double MX
 
double MY
 
int N
 
double N1
 
double N2
 
double NL
 
int NMAX
 
int O
 
double octave
 
int ODE
 
int OMAX
 
int P
 
double pitchClassSet
 
int PREV
 
double PT
 
double RAN
 
double RS
 
Score score
 
int scoreType
 
double SH
 
double SINAL
 
double SW
 
int T
 
double TIA
 
double time
 
double TT
 
int TWOD
 
std::vector< double > V
 
double W
 
double WE
 
double WMAX
 
double WMIN
 
double WNEW
 
double WP
 
std::vector< double > WS
 
double WSAVE
 
double x
 
double X
 
double XA
 
double XE
 
double XH
 
double XL
 
double XMAX
 
double XMIN
 
std::vector< double > XN
 
double XNEW
 
double XP
 
std::vector< double > XS
 
double XSAVE
 
double XW
 
std::vector< double > XY
 
double XZ
 
double Y
 
double YA
 
double YE
 
double YH
 
double YL
 
double YMAX
 
double YMIN
 
double YNEW
 
double YP
 
std::vector< double > YS
 
double YSAVE
 
double YW
 
double YZ
 
double Z
 
double ZA
 
double ZE
 
double ZMAX
 
double ZMIN
 
double ZNEW
 
double ZP
 
std::vector< double > ZS
 
double ZSAVE
 

Detailed Description

Generates notes by searching for a chaotic dynamical system defined by a polynomial equation or partial differential equation using Julien C.

Sprott's Lyupanov exponent search, or by translating a known chaotic dynamical system into music, by interpreting each iteration of the system as a note. The time of the note can be represented either as the order of iteration, or as a dimension of the attractor. See Julien C. Sprott's book "Strange Attractors".

Constructor & Destructor Documentation

csound::StrangeAttractor::StrangeAttractor ( void  )
virtual csound::StrangeAttractor::~StrangeAttractor ( void  )
virtual

Member Function Documentation

virtual void csound::Node::addChild ( Node node)
virtualinherited
virtual void csound::StrangeAttractor::calculateFractalDimension ( )
virtual
virtual void csound::StrangeAttractor::calculateLyupanovExponent ( )
virtual
virtual void csound::Node::clear ( )
virtualinherited
virtual void csound::StrangeAttractor::codeRandomize ( )
virtual
virtual Eigen::MatrixXd csound::Node::createTransform ( )
virtualinherited
virtual double& csound::Node::element ( size_t  row,
size_t  column 
)
virtualinherited

Returns a reference to the indicated element of the local transformation of coordinate system.

virtual bool csound::StrangeAttractor::evaluateAttractor ( )
virtual
virtual void csound::StrangeAttractor::generate ( )
virtual
virtual int csound::StrangeAttractor::getAttractorType ( ) const
virtual
virtual std::string csound::StrangeAttractor::getCode ( ) const
virtual
virtual void csound::StrangeAttractor::getCoefficients ( )
virtual
virtual void csound::StrangeAttractor::getDimensionAndOrder ( )
virtual
virtual int csound::StrangeAttractor::getDimensionCount ( ) const
virtual
virtual double csound::StrangeAttractor::getFractalDimension ( ) const
virtual
virtual size_t csound::StrangeAttractor::getIteration ( ) const
virtual
virtual size_t csound::StrangeAttractor::getIterationCount ( ) const
virtual
virtual Eigen::MatrixXd csound::Node::getLocalCoordinates ( ) const
virtualinherited

Returns the local transformation of coordinate system.

virtual double csound::StrangeAttractor::getLyupanovExponent ( ) const
virtual
virtual Score& csound::ScoreNode::getScore ( )
virtualinherited
virtual int csound::StrangeAttractor::getScoreType ( ) const
virtual
virtual double csound::StrangeAttractor::getW ( ) const
virtual
virtual double csound::StrangeAttractor::getX ( ) const
virtual
virtual double csound::StrangeAttractor::getY ( ) const
virtual
virtual double csound::StrangeAttractor::getZ ( ) const
virtual
virtual void csound::StrangeAttractor::initialize ( )
virtual
virtual void csound::StrangeAttractor::iterate ( )
virtual
virtual void csound::ScoreNode::produceOrTransform ( Score collectingScore,
size_t  beginAt,
size_t  endAt,
const Eigen::MatrixXd &  compositeCordinates 
)
virtualinherited

This function is called by the traverse() function.

The default implementation does nothing. If a derived node produces new Events, then it must transform them by the composite coordinates, then append them to the collecting score. If a derived node transforms Events produced by child Nodes, then it must transform only Events in the collecting score starting at the startAt index and continuing up to, but not including, the endAt index. These bookmarks, in turn, must be set in the Traverse function by all Nodes that produce events.

Reimplemented from csound::Node.

Reimplemented in csound::Cell, csound::MCRM, and csound::Rescale.

virtual void csound::StrangeAttractor::reinitialize ( )
virtual
virtual void csound::StrangeAttractor::render ( int  N,
double  X,
double  Y,
double  Z,
double  W 
)
virtual
virtual void csound::StrangeAttractor::reset ( )
virtual
virtual bool csound::StrangeAttractor::searchForAttractor ( )
virtual
virtual void csound::StrangeAttractor::setAttractorType ( int  attractorType)
virtual

Types: 1 = 1-dimensional polynomial map, 2 = 2-dimensional polynomial map, 3 = 3-dimensional polynomial map, 4 = 4-dimensional polynomial map, 5 = 3-dimensional ODE, 6 = 4-dimensional ODE, 7 through 12 = special functions.

virtual void csound::StrangeAttractor::setCode ( std::string  code)
virtual
virtual void csound::StrangeAttractor::setDimensionCount ( int  D)
virtual
virtual void csound::Node::setElement ( size_t  row,
size_t  column,
double  value 
)
virtualinherited

Sets the indicated element of the local transformation of coordinate system.

virtual void csound::StrangeAttractor::setIteration ( size_t  iteration)
virtual
virtual void csound::StrangeAttractor::setIterationCount ( size_t  iterationCount)
virtual
virtual void csound::StrangeAttractor::setScoreType ( int  attractorType)
virtual
virtual void csound::StrangeAttractor::setW ( double  X)
virtual
virtual void csound::StrangeAttractor::setX ( double  X)
virtual
virtual void csound::StrangeAttractor::setY ( double  X)
virtual
virtual void csound::StrangeAttractor::setZ ( double  X)
virtual
virtual void csound::StrangeAttractor::shuffleRandomNumbers ( )
virtual
virtual void csound::StrangeAttractor::specialFunctions ( )
virtual
virtual Eigen::MatrixXd csound::Node::traverse ( const Eigen::MatrixXd &  globalCoordinates,
Score score 
)
virtualinherited

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

Field Documentation

std::vector<double> csound::StrangeAttractor::A
protected
double csound::StrangeAttractor::AL
protected
std::vector<Node *> csound::Node::children
inherited

Child Nodes, if any.

std::string csound::StrangeAttractor::code
protected
double csound::StrangeAttractor::COSAL
protected
int csound::StrangeAttractor::D
protected
double csound::StrangeAttractor::D2
protected
double csound::StrangeAttractor::D2MAX
protected
int csound::StrangeAttractor::DD
protected
double csound::StrangeAttractor::decibels
protected
double csound::StrangeAttractor::DF
protected
double csound::StrangeAttractor::DL2
protected
double csound::StrangeAttractor::DLW
protected
double csound::StrangeAttractor::DLX
protected
double csound::StrangeAttractor::DLY
protected
double csound::StrangeAttractor::DLZ
protected
double csound::StrangeAttractor::DUM
protected
double csound::StrangeAttractor::duration
protected
double csound::StrangeAttractor::DW
protected
double csound::StrangeAttractor::DX
protected
double csound::StrangeAttractor::DY
protected
double csound::StrangeAttractor::DZ
protected
double csound::StrangeAttractor::EPS
protected
double csound::StrangeAttractor::F
protected
std::string csound::StrangeAttractor::filename
protected
int csound::StrangeAttractor::I
protected
int csound::StrangeAttractor::I1
protected
int csound::StrangeAttractor::I2
protected
int csound::StrangeAttractor::I3
protected
int csound::StrangeAttractor::I4
protected
int csound::StrangeAttractor::I5
protected
std::string csound::ScoreNode::importFilename
inherited
double csound::StrangeAttractor::instrument
protected
int csound::StrangeAttractor::J
protected
double csound::StrangeAttractor::L
protected
Eigen::MatrixXd csound::Node::localCoordinates
protectedinherited
double csound::StrangeAttractor::LSUM
protected
int csound::StrangeAttractor::M
protected
double csound::StrangeAttractor::MX
protected
double csound::StrangeAttractor::MY
protected
int csound::StrangeAttractor::N
protected
double csound::StrangeAttractor::N1
protected
double csound::StrangeAttractor::N2
protected
double csound::StrangeAttractor::NL
protected
int csound::StrangeAttractor::NMAX
protected
int csound::StrangeAttractor::O
protected
double csound::StrangeAttractor::octave
protected
int csound::StrangeAttractor::ODE
protected
int csound::StrangeAttractor::OMAX
protected
int csound::StrangeAttractor::P
protected
double csound::StrangeAttractor::pitchClassSet
protected
int csound::StrangeAttractor::PREV
protected
double csound::StrangeAttractor::PT
protected
double csound::StrangeAttractor::RAN
protected
Random csound::StrangeAttractor::randomNode
double csound::StrangeAttractor::RS
protected
Score csound::ScoreNode::score
protectedinherited
int csound::StrangeAttractor::scoreType
protected
double csound::StrangeAttractor::SH
protected
double csound::StrangeAttractor::SINAL
protected
double csound::StrangeAttractor::SW
protected
int csound::StrangeAttractor::T
protected
double csound::StrangeAttractor::TIA
protected
double csound::StrangeAttractor::time
protected
double csound::StrangeAttractor::TT
protected
int csound::StrangeAttractor::TWOD
protected
std::vector<double> csound::StrangeAttractor::V
protected
double csound::StrangeAttractor::W
protected
double csound::StrangeAttractor::WE
protected
double csound::StrangeAttractor::WMAX
protected
double csound::StrangeAttractor::WMIN
protected
double csound::StrangeAttractor::WNEW
protected
double csound::StrangeAttractor::WP
protected
std::vector<double> csound::StrangeAttractor::WS
protected
double csound::StrangeAttractor::WSAVE
protected
double csound::StrangeAttractor::x
protected
double csound::StrangeAttractor::X
protected
double csound::StrangeAttractor::XA
protected
double csound::StrangeAttractor::XE
protected
double csound::StrangeAttractor::XH
protected
double csound::StrangeAttractor::XL
protected
double csound::StrangeAttractor::XMAX
protected
double csound::StrangeAttractor::XMIN
protected
std::vector<double> csound::StrangeAttractor::XN
protected
double csound::StrangeAttractor::XNEW
protected
double csound::StrangeAttractor::XP
protected
std::vector<double> csound::StrangeAttractor::XS
protected
double csound::StrangeAttractor::XSAVE
protected
double csound::StrangeAttractor::XW
protected
std::vector<double> csound::StrangeAttractor::XY
protected
double csound::StrangeAttractor::XZ
protected
double csound::StrangeAttractor::Y
protected
double csound::StrangeAttractor::YA
protected
double csound::StrangeAttractor::YE
protected
double csound::StrangeAttractor::YH
protected
double csound::StrangeAttractor::YL
protected
double csound::StrangeAttractor::YMAX
protected
double csound::StrangeAttractor::YMIN
protected
double csound::StrangeAttractor::YNEW
protected
double csound::StrangeAttractor::YP
protected
std::vector<double> csound::StrangeAttractor::YS
protected
double csound::StrangeAttractor::YSAVE
protected
double csound::StrangeAttractor::YW
protected
double csound::StrangeAttractor::YZ
protected
double csound::StrangeAttractor::Z
protected
double csound::StrangeAttractor::ZA
protected
double csound::StrangeAttractor::ZE
protected
double csound::StrangeAttractor::ZMAX
protected
double csound::StrangeAttractor::ZMIN
protected
double csound::StrangeAttractor::ZNEW
protected
double csound::StrangeAttractor::ZP
protected
std::vector<double> csound::StrangeAttractor::ZS
protected
double csound::StrangeAttractor::ZSAVE
protected