Track
/
Python
Python
/
Esercizi
/
Generatore di scale
Generatore di scale

Generatore di scale

Medio

Istruzioni

Scale cromatiche

Le scale della musica occidentale si basano sulla scala cromatica (12 note). Questa scala può essere espressa come il seguente gruppo di suoni:

A, A♯, B, C, C♯, D, D♯, E, F, F♯, G, G♯

Una determinata nota diesis (indicata da un ♯) può anche essere espressa come il bemolle della nota successiva (indicata da un ♭), quindi la scala cromatica può essere scritta anche così:

A, B♭, B, C, D♭, D, E♭, E, F, G♭, G, A♭

Le scale maggiore e minore ed i modi sono sottoinsiemi di questa raccolta di dodici suoni. Hanno sette suoni e sono chiamate scale diatoniche. L'insieme delle note di queste scale si scrive con diesis o bemolli, a seconda della tonica (la nota di partenza). Ecco una tabella che indica se, per una data tonica, si usa l'espressione con bemolli o quella con diesis della scala:

Armatura di chiave Maggiore Minore
Naturale C a
Diesis G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
Bemolle F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

Si noti che, secondo la convenzione comune della teoria musicale, le note naturali «C» e «a» seguono la scala dei diesis in salita e quella dei bemolli in discesa. Ai fini di questo esercizio, la scala è solo ascendente.

Compito

Data una tonica, genera la scala cromatica di 12 note a partire dalla tonica.

  • Trasla opportunamente la scala di base in modo che tutte le 12 note vengano restituite a partire dalla tonica data.
  • Per la tonica data, stabilisci se la scala va restituita con i bemolli o con i diesis.
  • Restituisci tutte le note in lettere maiuscole (tranne la b dei bemolli), a prescindere dall'uso di maiuscole o minuscole nella tonica data.

Scale diatoniche

Le scale diatoniche, e tutte le altre scale che derivano dalla scala cromatica, si costruiscono sugli intervalli. Un intervallo è lo spazio tra due suoni.

L'intervallo più semplice è quello tra due note adiacenti e si chiama «semitono» o «seconda minore» (a volte scritto con una "m" minuscola). L'intervallo tra due note separate da una nota intermedia si chiama «tono» o «seconda maggiore» (scritto con una "M" maiuscola). Le scale diatoniche si costruiscono usando solo questi due intervalli tra note adiacenti.

Le scale non diatoniche possono contenere altri intervalli. Un intervallo di «seconda aumentata», indicato con "A", ha due note intermedie (ad esempio, da A a C o da D♭ a E), oppure un «tono» più un «semitono». Esistono anche intervalli più piccoli e più grandi, ma non entreranno in gioco in questo esercizio.

Compito

Data una tonica ed un insieme di intervalli, genera la scala musicale che inizia con la tonica e segue lo schema di intervalli specificato.

È simile alla generazione delle scale cromatiche, tranne per il fatto che, invece di restituire 12 note, restituirai N+1 note per N intervalli. La prima nota è sempre la tonica data. Poi, per ogni intervallo dello schema, la nota successiva si determina partendo dalla nota precedente e saltando il numero di note indicato dall'intervallo.

Ad esempio, partendo da G e usando i sette intervalli MMmMMMm, si ottengono le seguenti otto note:

Nota Motivo
G Tonica
A M indica un tono da G, saltando G♯
B M indica un tono da A, saltando A♯
C m indica un semitono da B, senza saltare nulla
D M indica un tono da C, saltando C♯
E M indica un tono da D, saltando D♯
F♯ M indica un tono da E, saltando F
G m indica un semitono da F♯, senza saltare nulla
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Python Exercism

Vuoi iniziare Generatore di scale?

Iscriviti a Exercism per imparare e padroneggiare Python con 17 concetti146 esercizi e il mentoring di persone reali, tutto gratis.