#!/usr/bin/env python3 #contiene una classe che contiene i metodi per trovare tutte #le armoniche data una frequenza # E` necessaria una classe? Non ha neanche attributi... class Armonia: _types = {"8_inf" : 1/2, "2_maj" : 9/8, "2_min" : 16/15, "3_maj" : 5/4, "3_min" : 6/5, "4" : 4/3, "4_rai" : 3/2, "4_dec" : 64/45, "5" : 3/2, "6_maj" : 5/3, "6_min" : 8/5, "7_maj" : 15/8, "7_min" : 9/5, "8" : 2, } #la funzione prende in input una nota e l'accordo che si vuole raggiungere e genera una nuova "nota" def nota_armonica(f, typeOf): return f*types.get(typeOf) #definisce le note possibili che vengono usate dentro quella classe. def armonia(self, nota): accordo = [] pas = list(types.keys()) infima = nota #questo ciclo cerca l'ottava piu' piccola udibile della nota passata while infima > 66: infima = nota_armonica(infima, pas[0]) #vengono salvati in una lista tutte le armoniche di quella nota while infima < 4200: for i in pas[1:]: accordo.append(nota_armonica(infima, i)