Kurzusok
/
Python
Python
/
Feladatok
/
Skálagenerátor
Skálagenerátor

Skálagenerátor

Közepes

Utasítások

Kromatikus skálák

A nyugati zenében a skálák a kromatikus (12 hangból álló) skálán alapulnak. Ez a skála a következő hangmagasságok csoportjaként írható le:

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

Egy adott keresztes hang (amit a ♯ jelöl) kifejezhető a felette lévő hang béjével is (amit a ♭ jelöl), ezért a kromatikus skála így is leírható:

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

A dúr- és mollskála, valamint a moduszok ennek a tizenkét hangból álló halmaznak a részhalmazai. Hét hangmagasságból állnak, és diatonikus skáláknak nevezzük őket. Az ezekben a skálákban szereplő hangokat vagy keresztekkel, vagy békkel írjuk le, attól függően, hogy mi a tonika (a kezdőhang). Az alábbi táblázat azt mutatja, hogy egy adott tonika esetén a skála bés vagy keresztes formáját használjuk-e:

Előjegyzés Dúr Moll
Természetes C a
Keresztes G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
Bés F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

Vedd figyelembe, hogy a szokásos zeneelméleti gyakorlat szerint a „C” és „a” természetes hangok felfelé haladva a keresztes skálát, lefelé haladva pedig a bés skálát követik. Ebben a feladatban a skála csak felfelé halad.

Feladat

Adott tonika esetén állítsd elő a 12 hangból álló kromatikus skálát a tonikától kezdve.

  • Told el az alapskálát megfelelően, hogy mind a 12 hang visszaadása a megadott tonikától kezdődjön.
  • Az adott tonikához határozd meg, hogy a skálát békkel vagy kereszttel kell-e visszaadni.
  • Minden hangot nagybetűvel adj vissza (kivéve a béket jelölő b-t), függetlenül a megadott tonika írásmódjától.

Diatonikus skálák

A diatonikus skálák és minden más, a kromatikus skálából származó skála intervallumokra épül. Az intervallum két hangmagasság közötti távolság.

A legegyszerűbb intervallum két szomszédos hang között van, és „fél lépésnek” vagy „kis szekundnak” nevezzük (amit néha kisbetűs „m”-mel jelölünk). Két olyan hang közötti intervallumot, amelyek között még egy hang van, „egész lépésnek” vagy „nagy szekundnak” nevezzük (amit nagybetűs „M”-mel jelölünk). A diatonikus skálák a szomszédos hangok között csak ezt a két intervallumot használják.

A nem diatonikus skálák más intervallumokat is tartalmazhatnak. A „bővített szekund” intervallumnak, amit „A”-val jelölünk, két közbeeső hangja van (például A-tól C-ig vagy D♭-től E-ig), illetve egy „egész lépés” plusz egy „fél lépés”. Vannak kisebb és nagyobb intervallumok is, de ezek nem játszanak szerepet ebben a feladatban.

Feladat

Adott tonika és intervallumhalmaz esetén állítsd elő a zenei skálát a tonikától kezdve, a megadott intervallummintát követve.

Ez hasonló a kromatikus skálák előállításához, azzal a különbséggel, hogy 12 hang visszaadása helyett N intervallum esetén N+1 hangot adsz vissza. Az első hang mindig a megadott tonika. Ezután a mintában szereplő minden intervallumnál a következő hangot úgy határozod meg, hogy az előző hangból kiindulva kihagyod az intervallum által jelzett számú hangot.

Például G-ből kiindulva és a hét intervallumból álló MMmMMMm mintát használva a következő nyolc hangot kapod:

Hang Ok
G Tonika
A Az M egész lépést jelöl G-től, G♯ kihagyásával
B Az M egész lépést jelöl A-tól, A♯ kihagyásával
C Az m fél lépést jelöl B-től, semmit sem hagyva ki
D Az M egész lépést jelöl C-től, C♯ kihagyásával
E Az M egész lépést jelöl D-től, D♯ kihagyásával
F♯ Az M egész lépést jelöl E-től, F kihagyásával
G Az m fél lépést jelöl F♯-től, semmit sem hagyva ki
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Skálagenerátor feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.