Aihepiiri: grafiikka
Nuottipiirturi
Toteuta ohjelma, jolla voidaan kirjoittaa yksinkertaisia sävelmiä nuottiviivastolle ja esittää nuotit tekstimuodossa. Tällaiselle ohjelmalle on käyttöä, jos vaikkapa haluaisi liittää yksinkertaisen melodian nuotit sähköpostiin tms.
Ohjelmalle syötetään halutut nuotit joko käyttöliittymän kautta tai lukemalla ne tiedostosta jolla on jokin yksinkertainen muoto.
esim:
-------------------------
#SÄVELMÄ
nimi : Sepon humppa
tekijä : seppo
#NUOTTI
korkeus : C#
oktaavi : 0
aloitustahti : 5
aloitushetki : 4/32
kesto : 1/4
#NUOTTI
korkeus : D
...jne
#TAUKO
aloitustahti : 4
jne....
-------------------------
Tämä formaatti on tietenkin tekijän itse päätettävissä, ylläoleva on vain malli.
Tiedostosta lukemastaan tai ohjelman kautta syötetystä tiedosta ohjelma tulostaa allaolevien esimerkkien kaltaisia nuotteja.
esimerkkinuotteja :
-----------------------------------\----|----|------|------
|\ | | | ().
-----------------------------------|\---|---()------|------
====== | | () | |
-------------------------|----|---@@ ---|---()----|-|------
======= | @@ | | |
-----======----|-----|--@@--------------|--------()-|------
| | | @@ | |
-----|----|---@@------------------------|-----------|------
| # @@
b -@@-
-----------------
-----------------
===== /
---|--=|---\-----
| | /
--@@.-@@---\-----
-----------------
Jälleen kerran graafinen ulkoasu on tekijän vapaasti muokattavissa.
VAROITUS: Aiheessa vaadittava merkkigrafiikka ei ole aivan triviaalia piirtää, joten kannattaa miettiä suunnitelmaan perusteellisesti minkälaisia algoritmejä ja tietorakenteita piirtäminen vaatii.
Vaatimukset
Helppo
- merkkipohjainen käyttöliittymä jonka kautta voi lisätä ja poistaa nuotteja (Myös välistä) Keksi itse, miten nuotit annetaan kätevästi.
- Sävelmien lukeminen tiedostosta.
- Luotujen nuottien tallentaminen tiedostoon vaikkapa tulostusta varten.
Kaikkia nuottityyppejä ei tarvitse toteuttaa, aluksi riittävät kokonaiset puolikkaat ja neljäsosat sekä tauko. Vain yksi nuotti soi kerrallaan. Ei korotuksia/alennuksia
Keskivaikea
- kaikki helpon työn vaatimukset sekä
- Lisää nuottityyppejä
- Moniäänisyys : useampi ääni voi soida kerralla ("pallukat" liitetään samaan varteen)
- Taukojen automaattinen lisääminen tahtien käyttämättömään osaan.
Vaativa
- keskivaikean vaatimukset, sekä korotusten, alennusten, palautusten oikeaoppinen käsittely (sävel on korotettu tahdin loppuun asti.)
- Tahtirajan ylittävät nuotit.
- Mahdollisuus kirjoittaa sävelmään sanoitus.