Композиция музыкальных партий

Описание

В данном задании предлагается реализовать программную библиотеку, представляющую встроенный язык программирования для композиции музыкальных партий.

Основными сущностями этого языка являются:

Библиотека должна предоставлять возможности для создания мелодий, заготовок партий и средства объединения этих базовых кусочков в более сложные партии, партитуры и композиции.

Английская народная песня «Зелёные рукава».

Минимальные требования (базовая часть)

Базовая реализация проекта, в которой должны разбираться все участники, должна:

Расширенная библиотека (индивидуальная часть)

Библиотека для композиции музыкальных партий должна быть расширена как минимум двумя различными возможностями:

Генерация композиции (индивидуальная часть)

Возможна генерации композиции в любом из следующих форматов:

Графический интерфейс (индивидуальная часть)

Графический интерфейс должен предоставлять визуальное представление партии, а также возможности редактирования (которые могут быть реализованы исключительно «горячими клавишами»).

Графический интерфейс должен реализовывать как минимум ввод отдельных нот/пауз с разными длительностями, а также выделение и удаление нот/пауз. Дополнительно должна быть реализована как минимум одна возможность: