Ardour  9.7-336-gb784ad01ee
ARDOUR::MusicalMode Class Reference

#include <scale.h>

Inheritance diagram for ARDOUR::MusicalMode:
[legend]

Public Types

enum  Name {
  IonianMajor , AeolianMinor , Dorian , HarmonicMinor ,
  MelodicMinorAscending , MelodicMinorDescending , Phrygian , Lydian ,
  Mixolydian , Locrian , PentatonicMajor , PentatonicMinor ,
  Chromatic , BluesScale , NeapolitanMinor , NeapolitanMajor ,
  Oriental , DoubleHarmonic , Enigmatic , Hirajoshi ,
  HungarianMinor , HungarianMajor , Kumoi , Iwato ,
  Hindu , Spanish8Tone , Pelog , HungarianGypsy ,
  Overtone , LeadingWholeTone , Arabian , Balinese ,
  Gypsy , Mohammedan , Javanese , Persian ,
  Algerian
}
 

Public Member Functions

 MusicalMode (TuningSystem, std::string const &name, MusicalModeType type, std::vector< float > const &elements)
 
 MusicalMode (MusicalMode const &other)
 
 MusicalMode (std::string const &name)
 
 MusicalMode (std::ifstream &file)
 
 MusicalMode (XMLNode const &)
 
virtual ~MusicalMode ()
 
MusicalModeoperator= (MusicalMode const &other)
 
virtual std::string name () const
 
TuningSystem tuning () const
 
MusicalModeType type () const
 
int size () const
 
std::vector< float > const & elements () const
 
int ring_id () const
 
std::vector< int > as_midi (int scale_root) const
 
void set_name (std::string const &str)
 
XMLNodeget_state () const
 
int set_state (XMLNode const &)
 

Static Public Member Functions

static void register_scale (TuningSystem, std::string const &, MusicalModeType, std::vector< float > const &)
 
static void register_scales (TuningSystem, std::vector< std::string > const &, MusicalModeType, std::vector< float > const &)
 

Public Attributes

PBD::Signal< void()> NameChanged
 
PBD::Signal< void()> Changed
 

Static Public Attributes

static std::multimap< TuningSystem, MusicalModemodes_by_tuning
 
static std::map< std::string, MusicalModemodes_by_name
 
static std::map< int, MusicalModemodes_by_id
 
static std::map< TuningSystem, int > tone_equivalent_ratio
 
static std::map< TuningSystem, int > tones_per_equivalent
 
static char const * xml_node_name
 

Protected Member Functions

std::vector< int > absolute_pitch_as_midi (int root) const
 
std::vector< int > pitch_class_as_midi (int root) const
 
std::vector< int > wholetone_steps_as_midi (int root) const
 
std::vector< int > ratio_steps_as_midi (int root) const
 
std::vector< int > ratio_from_root_as_midi (int root) const
 
std::vector< int > midi_note_as_midi (int root) const
 

Static Protected Member Functions

static void init ()
 

Protected Attributes

TuningSystem _tuning
 
int _ring_id
 
std::string _name
 
MusicalModeType _type
 
std::vector< float > _elements
 

Detailed Description

Definition at line 33 of file ardour/ardour/scale.h.

Member Enumeration Documentation

◆ Name

Enumerator
IonianMajor 
AeolianMinor 
Dorian 
HarmonicMinor 
MelodicMinorAscending 
MelodicMinorDescending 
Phrygian 
Lydian 
Mixolydian 
Locrian 
PentatonicMajor 
PentatonicMinor 
Chromatic 
BluesScale 
NeapolitanMinor 
NeapolitanMajor 
Oriental 
DoubleHarmonic 
Enigmatic 
Hirajoshi 
HungarianMinor 
HungarianMajor 
Kumoi 
Iwato 
Hindu 
Spanish8Tone 
Pelog 
HungarianGypsy 
Overtone 
LeadingWholeTone 
Arabian 
Balinese 
Gypsy 
Mohammedan 
Javanese 
Persian 
Algerian 

Definition at line 36 of file ardour/ardour/scale.h.

Constructor & Destructor Documentation

◆ MusicalMode() [1/5]

ARDOUR::MusicalMode::MusicalMode ( TuningSystem  ,
std::string const &  name,
MusicalModeType  type,
std::vector< float > const &  elements 
)

◆ MusicalMode() [2/5]

ARDOUR::MusicalMode::MusicalMode ( MusicalMode const &  other)

◆ MusicalMode() [3/5]

ARDOUR::MusicalMode::MusicalMode ( std::string const &  name)

◆ MusicalMode() [4/5]

ARDOUR::MusicalMode::MusicalMode ( std::ifstream &  file)

◆ MusicalMode() [5/5]

ARDOUR::MusicalMode::MusicalMode ( XMLNode const &  )

◆ ~MusicalMode()

virtual ARDOUR::MusicalMode::~MusicalMode ( )
inlinevirtual

Definition at line 94 of file ardour/ardour/scale.h.

Member Function Documentation

◆ absolute_pitch_as_midi()

std::vector<int> ARDOUR::MusicalMode::absolute_pitch_as_midi ( int  root) const
protected

◆ as_midi()

std::vector<int> ARDOUR::MusicalMode::as_midi ( int  scale_root) const

◆ elements()

std::vector<float> const& ARDOUR::MusicalMode::elements ( ) const
inline

Definition at line 102 of file ardour/ardour/scale.h.

◆ get_state()

XMLNode& ARDOUR::MusicalMode::get_state ( ) const

◆ init()

static void ARDOUR::MusicalMode::init ( )
staticprotected

◆ midi_note_as_midi()

std::vector<int> ARDOUR::MusicalMode::midi_note_as_midi ( int  root) const
protected

◆ name()

virtual std::string ARDOUR::MusicalMode::name ( ) const
inlinevirtual

Reimplemented in ARDOUR::MusicalKey.

Definition at line 98 of file ardour/ardour/scale.h.

◆ operator=()

MusicalMode& ARDOUR::MusicalMode::operator= ( MusicalMode const &  other)

◆ pitch_class_as_midi()

std::vector<int> ARDOUR::MusicalMode::pitch_class_as_midi ( int  root) const
protected

◆ ratio_from_root_as_midi()

std::vector<int> ARDOUR::MusicalMode::ratio_from_root_as_midi ( int  root) const
protected

◆ ratio_steps_as_midi()

std::vector<int> ARDOUR::MusicalMode::ratio_steps_as_midi ( int  root) const
protected

◆ register_scale()

static void ARDOUR::MusicalMode::register_scale ( TuningSystem  ,
std::string const &  ,
MusicalModeType  ,
std::vector< float > const &   
)
static

◆ register_scales()

static void ARDOUR::MusicalMode::register_scales ( TuningSystem  ,
std::vector< std::string > const &  ,
MusicalModeType  ,
std::vector< float > const &   
)
static

◆ ring_id()

int ARDOUR::MusicalMode::ring_id ( ) const

◆ set_name()

void ARDOUR::MusicalMode::set_name ( std::string const &  str)

◆ set_state()

int ARDOUR::MusicalMode::set_state ( XMLNode const &  )

◆ size()

int ARDOUR::MusicalMode::size ( ) const
inline

Definition at line 101 of file ardour/ardour/scale.h.

◆ tuning()

TuningSystem ARDOUR::MusicalMode::tuning ( ) const
inline

Definition at line 99 of file ardour/ardour/scale.h.

◆ type()

MusicalModeType ARDOUR::MusicalMode::type ( ) const
inline

Definition at line 100 of file ardour/ardour/scale.h.

◆ wholetone_steps_as_midi()

std::vector<int> ARDOUR::MusicalMode::wholetone_steps_as_midi ( int  root) const
protected

Member Data Documentation

◆ _elements

std::vector<float> ARDOUR::MusicalMode::_elements
protected

Definition at line 127 of file ardour/ardour/scale.h.

◆ _name

std::string ARDOUR::MusicalMode::_name
protected

Definition at line 125 of file ardour/ardour/scale.h.

◆ _ring_id

int ARDOUR::MusicalMode::_ring_id
mutableprotected

Definition at line 124 of file ardour/ardour/scale.h.

◆ _tuning

TuningSystem ARDOUR::MusicalMode::_tuning
protected

Definition at line 123 of file ardour/ardour/scale.h.

◆ _type

MusicalModeType ARDOUR::MusicalMode::_type
protected

Definition at line 126 of file ardour/ardour/scale.h.

◆ Changed

PBD::Signal<void()> ARDOUR::MusicalMode::Changed

Definition at line 109 of file ardour/ardour/scale.h.

◆ modes_by_id

std::map<int,MusicalMode> ARDOUR::MusicalMode::modes_by_id
static

Definition at line 113 of file ardour/ardour/scale.h.

◆ modes_by_name

std::map<std::string,MusicalMode> ARDOUR::MusicalMode::modes_by_name
static

Definition at line 112 of file ardour/ardour/scale.h.

◆ modes_by_tuning

std::multimap<TuningSystem,MusicalMode> ARDOUR::MusicalMode::modes_by_tuning
static

Definition at line 111 of file ardour/ardour/scale.h.

◆ NameChanged

PBD::Signal<void()> ARDOUR::MusicalMode::NameChanged

Definition at line 108 of file ardour/ardour/scale.h.

◆ tone_equivalent_ratio

std::map<TuningSystem,int> ARDOUR::MusicalMode::tone_equivalent_ratio
static

Definition at line 115 of file ardour/ardour/scale.h.

◆ tones_per_equivalent

std::map<TuningSystem,int> ARDOUR::MusicalMode::tones_per_equivalent
static

Definition at line 116 of file ardour/ardour/scale.h.

◆ xml_node_name

char const* ARDOUR::MusicalMode::xml_node_name
static

Definition at line 120 of file ardour/ardour/scale.h.


The documentation for this class was generated from the following file: