Vă sugerez să reprezentați notația ritmică folosind următorul model de obiect.

imagine

Clasa de bază este clasa Rhythm, care conține numărul de măsuri și denumirea barei. Există două moduri posibile:

1. Două numere (numărul de unități ritmice pe măsură și valoarea unității ritmice)

2. Enumerarea posibilelor semnături temporale

Etichetele pe care le vom susține vor fi

Acestea vor acoperi bogat cerințele noastre, deși există mult mai multe tacturi posibile. În cazul în care ne-ar plăcea să fie mai ușor, cele mai importante sunt 3/4 și 4/4.

Apoi, există o serie de note în clasă. Clasa de bază pentru ei este RhytmNote, care conține date

· Lungime - lungime: întreg, jumătate, sfert, opt, șaisprezece

Moștenește clasele SingleNote și NoteGroup.

· IsRest - adevărat dacă există o cratimă, altfel fals

· Punct - dacă există un punct după notă (punctul extinde valoarea notei la jumătate)

· NoteCount - numărul de note în care lungimea dată va fi împărțită

· IsRest [] - pentru fiecare notă din grup, dacă există o cratimă

NoteGroup se află în propunere din cauza așa-numitului distribuții neregulate, atunci când, de exemplu, o notă de sfert este împărțită în, de exemplu, trei sau cinci valori (trioli, chintoli) și nu este posibil să o scrieți folosind valori de lungime clasice. Această zonă este o mare parte a unei substanțe puțin mai avansate și cred că, dacă nu am introduce-o, am pierde o mulțime de oportunități.

Restricții

Pentru a nu complica scrierea, există anumite limitări în ea, deci nu toate ritmurile pot fi scrise în ea. Pe de altă parte, nu există nici o prezumție că cineva le-ar folosi, mai ales că nu învață copii.

Mai exact, este vorba despre

· Nu este posibil să legați note - dar este posibil să ocoliți cratima (numai în cazul unui ritm, în cazul unei eventuale prelungiri prin înregistrarea unei melodii, acest lucru trebuie rezolvat în alt mod)

· Nu este posibil să împărțiți notele grupului (de exemplu, nota de mijloc a unei triole nu poate fi împărțită în chintole)

Note

· Când salvați într-un fișier, sugerez serializarea binară sau serializarea XML, dacă a fost necesară interoperabilitatea

· Nu a fost posibil să se utilizeze formatul MIDI, care are o înregistrare numai atunci când nota începe și se termină, deoarece valoarea acesteia ar fi mai greu de găsit. Este scris explicit în formatul propus.

· Există două opțiuni de vizualizare

x - x-x- | xxx-x-x 3 Trei x și trei sub ele reprezintă un triol.

2. Valorile lungimilor notelor (anteturi goale, picioare, liniuțe). Personal, îmi place a doua modalitate, deoarece și copiii învață să scrie lungimea notelor și, de asemenea, arată mai bine din punct de vedere estetic.

· Va fi necesar să verificați dacă o notă nu este împărțită la o astfel de măsură (adică nu se va încadra în măsura în care a început). Dacă scrieți un ritm, trebuie doar să scrieți nota la sfârșitul măsurii și să efectuați restul într-o nouă măsură sub formă de cratimă. Mai general, însă, notele care depășesc bara sunt legate de o marcă specială - o ligatură, care are forma unui arc care leagă părțile notei.

· Ar putea fi adecvat să extindeți acest model pentru a înregistra o melodie la început și să o utilizați pentru a înregistra un ritm.

Documentul conține o specificație cadru a sistemului .

Documentarul descrie descrierea căutării muzicale și câteva sarcini legate de aceasta

Iată o listă ușor reordonată a numelor create cu ocazia brainstorming-ului din 23 octombrie 2006

Dacă există 3 utilizabile, atunci este probabil mult, dar poate inspiră pe cineva.