public Acorde CriarAcorde(TipoNota tonica, TipoAcordeFormula tipoAcorde) { switch (tipoAcorde) { case TipoAcordeFormula.Maior: return(Acorde.CriarAcordeMaior(tonica)); case TipoAcordeFormula.Menor: return(Acorde.CriarAcordeMenor(tonica)); case TipoAcordeFormula.MaiorSetima: return(Acorde.CriarAcordePelosIntervalos(tonica, new List <TipoIntervalo>() { TipoIntervalo.TERCA_MAIOR, TipoIntervalo.QUINTA_JUSTA, TipoIntervalo.SETIMA_MENOR })); case TipoAcordeFormula.MenorSetima: return(Acorde.CriarAcordePelosIntervalos(tonica, new List <TipoIntervalo>() { TipoIntervalo.TERCA_MENOR, TipoIntervalo.QUINTA_JUSTA, TipoIntervalo.SETIMA_MENOR })); case TipoAcordeFormula.Diminuto: return(Acorde.CriarAcordeDiminuto(tonica)); case TipoAcordeFormula.MeioDiminuto: return(Acorde.CriarAcordeMeioDiminuto(tonica)); default: return(Acorde.CriarAcordeMaior(tonica)); } }
public void Acorde_Deve_Criar_Acorde_Maior() { Acorde acorde = Acorde.CriarAcordeMaior(TipoNota.DO); Assert.Equal(new List <TipoIntervalo>() { TipoIntervalo.TONICA, TipoIntervalo.TERCA_MAIOR, TipoIntervalo.QUINTA_JUSTA }, acorde.GetIntervalos()); }
public void Interpret(Acorde acorde) { if (acorde.TriadeFormadora == ModoDoAcorde.PerfeitoMaior) { acorde.Relativa = Acorde.CriarAcordeMenor(acorde.Tonica.Add(9)); } else if (acorde.TriadeFormadora == ModoDoAcorde.PerfeitoMenor) { acorde.Relativa = Acorde.CriarAcordeMaior(acorde.Tonica.Add(3)); } }