|
Zápis rytmu navrhujem reprezentovať pomocou nasledujúceho objektového modelu. Základnou triedou je trieda Rhythm, ktorá obsahuje počet taktov a taktové označenie. Tu sú možné dva spôsoby : 1. Dvomi číslami (počet rytmických jednotiek na takt a hodnota rytmickej jednotky) 2. Enumerácia možných taktových predznamenaní Označenia, ktoré budeme podporovať budú · 2 / 2 · 2 / 4 · 3 / 4 · 4 / 4 · 4 / 8 · 6 / 8 · 8 / 8 · 5 / 4 · 7 / 8 Tieto bohato pokryjú naše požiadavky, aj keď možných taktov je ešte oveľa viac. V prípade, že by sme to chceli absolútne uľahčiť, najdôležitejšie sú 3 / 4, a 4 / 4. Ďalej sa v triede nachádza pole nôt. Bázová trieda pre ne je RhytmNote, ktorá obsahuje údaje · Length - dĺžka : celá, polovica, štvrtina, osmina, šestnástina Z nej dedia triedy SingleNote a NoteGroup. SingleNote obsahuje · IsRest - true ak je pomlčka, inak false · Dot – či je za notou bodka (bodka predlžuje hodnotu noty o polovicu) NoteGroup obsahuje · NoteCount – počet nôt, na ktoré sa rozdelí daná dĺžka · IsRest[] – pre každú notu v skupine, či je pomlčka NoteGroup sa v návrhu nachádza kvôli tzv. nepravidelným rozdeleniam, kedy sa napríklad štvrťová nota rozdelí napríklad na tri alebo päť hodnôt (trioly, kvintoly) a nie je to možné zapísať pomocou klasických dĺžkových hodnôt. Táto oblasť predstavuje veľkú časť troška pokročilejšej látky a myslím, že keby sme ju nezaviedli, prišli by sme o veľa možností. Obmedzenia Aby zápis nebol komplikovaný, sú v ňom určité obmedzenia, teda nedajú sa v ňom zapísať všetky rytmy. Na druhej strane nie je predpoklad, že by ich niekto používal, najmä nie učiace sa deti. Konkrétne sa jedna o · Nie je možné viazať noty – je to ale možné obísť pomlčkou (len v prípade rytmu, pri prípadnom rozšírení o zápis melódie to treba riešiť iným spôsobom) · Nie je možné deliť noty skupiny (napríklad prostrednú notu trioly nie je možné rozdeliť na kvintolu) Poznámky · Pri ukladaní do súboru navrhujem binárnu serializáciu, prípadne XML serializáciu, keby bola potrebná interoperabilita · Nebolo možné použiť formát MIDI, ktorý má zápis len kedy nota začína a kedy končí, ťažšie by sa totiž hľadala jej hodnota. V navrhovanom formáte je explicitne zapísaná. · Sú dve možnosti vizualizácie 1. Krížikmi x—x-x-|xxx-x-x 3 Tri x a pod nimi trojka predstavujú triolu. 2. Hodnotami dĺžok nôt (prázdne hlavičky, nožičky, pomlčky). Osobne sa mi pozdáva druhý spôsob, nakoľko sa deti zároveň učia aj zápis dĺžok nôt a aj to lepšie esteticky vyzerá. · Bude treba kontrolovať, či nie je nejaká nota rozdelená taktom (teda, nevojde sa do taktu v ktorom začala). V prípade zápisu rytmu stačí notu zapísať len do konca taktu a zvyšok realizovať v novom takte ako pomlčku. Všeobecnejšie sa však noty presahujúce takt viažu špeciálnou značkou – ligtúrou, ktorý ma tvar oblúčika spájajúceho časti noty. · Možno by bolo vhodné tento model rozšíriť na zápis melódie hneď na začiatku a používať ho aj na zápis rytmu. |