Я пропоную представити нотацію ритму, використовуючи наступну об'єктну модель.
Базовим класом є клас Ритм, який містить кількість тактів і позначення смуги. Є два можливі шляхи:
1. Два числа (кількість ритмічних одиниць на такт і значення ритмічної одиниці)
2. Перерахування можливих підписів часу
Етикетки, які ми будемо підтримувати, будуть
Вони щедро покриють наші вимоги, хоча можливих набагато більше тактів. Якщо ми хотіли б зробити це простіше, найважливішими є 3/4 та 4/4.
Далі в класі є масив нотаток. Базовим класом для них є RhytmNote, який містить дані
· Довжина - довжина: ціла, половина, чверть, восьма, шістнадцята
Він успадковує класи SingleNote і NoteGroup.
· IsRest - вірно, якщо є дефіс, інакше помилково
· Крапка - чи є після ноти крапка (крапка збільшує значення ноти наполовину)
· NoteCount - кількість нот, на які буде поділено задану довжину
· IsRest [] - для кожної ноти в групі, чи є дефіс
NoteGroup є в пропозиції завдяки т.зв. нерегулярні розподіли, коли, наприклад, чверть ноти ділиться, наприклад, на три чи п’ять значень (тріоли, квінтолі), і неможливо записати її, використовуючи класичні значення довжини. Ця область є великою частиною трохи більш досконалої речовини, і я думаю, що якби ми не ввели її, ми втратили б багато можливостей.
Обмеження
Щоб не ускладнювати написання, у ньому є певні обмеження, тому не всі ритми в ньому можна писати. З іншого боку, немає припущення, що хтось би ними користувався, особливо не навчаючи дітей.
Зокрема, мова йде про
· Прив’язати ноти неможливо - але можна обійти дефіс (лише у випадку ритму, у разі можливого розширення шляхом запису мелодії, це потрібно вирішити іншим способом)
· Неможливо розділити ноти групи (наприклад, середню ноту тріоли не можна розділити на квінтоли)
Примітки
· Під час збереження у файл я пропоную двійкову серіалізацію або серіалізацію XML, якщо потрібна сумісність
· Неможливо було використовувати формат MIDI, який має запис лише тоді, коли нота починається і закінчується, оскільки її значення буде важче знайти. Це чітко написано у запропонованому форматі.
· Є два варіанти візуалізації
x - x-x- | xxx-x-x 3 Три x і три під ними представляють триол.
2. Значення довжин нот (порожні заголовки, ноги, тире). Особисто мені подобається другий спосіб, оскільки діти також вчаться писати довжини нот, і це також виглядає естетичніше краще.
· Потрібно буде перевірити, чи не поділяється нотатка такою мірою (тобто вона не впишеться в міру, в якій вона почалася). Якщо ви пишете ритм, вам потрібно лише написати ноту до кінця міри, а решту виконати в новій мірі у вигляді дефіса. Однак у більш загальному плані ноти, що перевищують смугу, пов’язані спеціальним знаком - лігатурою, яка має форму дуги, що з’єднує частини ноти.
· Може бути доречним розширити цю модель, щоб записати мелодію на початку і використовувати її для запису ритму.
Документ містить специфікацію системи .
Документальний фільм описує опис музичного квесту та деякі завдання, пов’язані з ним
Ось трохи впорядкований список імен, створений з нагоди мозкового штурму 23 жовтня 2006 року
Якщо є 3 придатні для використання, то це, мабуть, багато, але можливо це когось надихає.