Obiecte muzicale
Se doreste realizarea unei aplicatii, care sa permita, atat specificarea unei partituri muzicale, cat si interpretarea ei. O partitura muzicala se specifica folosind urmatoarele notatii:
obiect_muzical = nota
| pauza
| obiect_muzical :+: obiect_muzical
| obiect_muzical :=: obiect_muzical
Unde:
Nota este o pereche formata din inatltimea notei (un intreg) si durata sa (un real);
Pauza are doar o durata (un real)
Operatorul :+: inseamna ca cele doua secvente (de note si pauze) se canta simultan;
Operatorul :=: inseamna ca cele doua secvente se canta secvential (una dupa alta)
Aplicatia trebuie sa permita citirea unei partituri muzicale, dintr-un fisier text si trebuie sa genereze o secventa de evenimente muzicale spre un player MIDI, fiecare eveniment musical specificand o inaltime a notei care se canta, volumul ei (in cazul in care sunt mai multe note cantate simultan), precum si durata.
Operatii cerute:
ı citirea partiturii dintr-un fisier text;
ı generarea secventei de evenimente muzicale pe ecran;
Cerinte de implementare:
ı Posibilitatea de stocare si restaurare a datelor;
ı Tratarea exceptiilor;
ı Utilizarea claselor iterator pentru parcurgerea listelor;
ı Dialogul cu utilizatorul prin intermediul unei interfete grafice