Sto scrivendo un software che traspone gli spartiti tra le chiavi e sono ancora nuovo in teoria musicale, quindi speravo che qualcuno che ne sapesse di più potesse farmi sapere se il mio approccio è corretto. Ecco il mio processo per ogni nota:
- Trova il grado del nome della lettera della nota nella scala della chiave corrente.
- Trova il numero di semitoni alzati o abbassati da cui proviene la nota la nota effettiva nella scala. Lo chiamerò offset.
- Trova la nota nella scala della nuova tonalità che è dello stesso grado.
- Alza o abbassa la nuova nota dell'offset.
Ecco un esempio. Supponiamo di trasporre la nota Mi # da Do maggiore a Re maggiore. Quindi eseguiremo i passaggi precedenti come segue:
- E # sarebbe il terzo grado della scala.
- L'offset sarebbe +1 perché E è effettivamente il terzo grado di la scala di Do maggiore e Mi # è un semitono sopra.
- Il terzo grado della scala di Re maggiore è F #, quindi questa è la nuova nota.
- Aggiungendo il nostro offset +1 a quello lo renderebbe F ##.
Quindi F ## è il risultato della trasposizione di Mi # da Do maggiore a Re maggiore. Mi rendo conto che normalmente non avresti un Mi # nella tonalità di Do maggiore, ma penso che sia possibile e funzioni per spiegare l'algoritmo.
Questo algoritmo è corretto? Dovrei affrontarlo in modo diverso?
Una domanda secondaria: è necessario conoscere la modalità delle chiavi quando si esegue questo tipo di algoritmo? I risultati sembrano gli stessi sia che utilizzo scale maggiori o minori per i calcoli dei gradi / offset. Grazie in anticipo!
Aggiornamento: soluzione
Sembra che l'algoritmo di cui sopra sia corretto, ma può essere semplificato. Il pezzo del puzzle che mi mancava era che puoi determinare l'intervallo senza fare riferimento alla scala. Ecco l'algoritmo aggiornato. I passaggi 1 e 2 trovano l'intervallo tra la chiave corrente e la nuova chiave. I passaggi 3 e 4 applicano lo stesso intervallo alla nota che stiamo trasponendo.
- Trova la distanza tra il nome della lettera della chiave corrente e il nome della lettera della nuova chiave nell'elenco di tutte le lettere (esclusi diesis o bemolle): A, B, C, D, E, F, G.
- Trova la distanza in semitoni tra la tonalità corrente e la nuova tonalità.
- La lettera della nuova nota sarà la distanza della lettera (Passaggio 1) sopra la nota corrente.
- Aggiungi diesis o bemolle alla lettera della nuova nota finché non è il numero corretto di semitoni (dal passaggio 2) sopra la nota corrente.
Ripetendo l'esempio originale avremo:
- D è 1 lettera sopra C
- D è 2 semitoni sopra C
- La nuova lettera sarà 1 lettera sopra E #, che è F
- La nuova nota sarà di 2 semitoni sopra E #, che è F ##
Grazie a tutti coloro che hanno risposto, e in particolare a @MattL e @Dom. Tutte le risposte e i commenti sono stati molto illuminanti!