1 #ifndef MUSICRULES_HPP_INCLUDED
2 #define MUSICRULES_HPP_INCLUDED
8 #include "Utilities.hpp"
10 using ExprA = std::function<Number(const std::map<std::string, Number>&)>;
12 using Rule0 = std::vector<Number>;
15 using Rule3 = std::pair<ExprA, Number>;
18 using Rule6 = std::vector< std::pair<ChordProgression, Number> >;
27 RuleCombination(Rule1, Rule2, Rule3, Rule4, Rule5, Rule6, M1, M2, M3, M4);
53 ExprA getExprA(
const std::string& toParse,
const std::vector<std::string>& variables);
57 ExprA getExprA(
const std::string& toParse);
75 RuleCombination getRules(
const std::string& file,
const std::vector<std::string>& ruleNames);
97 ChordProgression getBestChordProgression(
const std::string& ruleFile,
const std::vector<std::string>& ruleNames,
const MachineLearningOutput& ml,
const Melody& m,
bool bis);
This file defines all the data structures related to music objects.
Describes a melody.
Definition: Music.hpp:629
std::vector< Chord > ChordProgression
ChordProgression is the class used to give the set of chords used.
Definition: Music.hpp:592
Definition: MusicRules.hpp:25