Byzantine Notation
Autor: Petru Dimitriu
Problem: Recognition of Neume Sequences in Byzantine Music 🎵
🌟 Problem Description
Byzantine music is a genre with ancient origins widespread in the Balkan area, with a history of over a millennium. Its specific notation consists of a series of signs called neumes.
Implement an AI model that classifies the neumes in a sequence stored in an image and produces a sequence representing, for each encountered neume, the number of steps accumulated up to the current neume relative to the initial step (considered at the beginning of the sequence).
Each sample image has a size of 48x48 pixels and represents a single sign.
🔹 Features
The training dataset (train.csv) contains the following fields:
-
Path– the relative path to the sample image. -
Effect– the label applied to the image. It can be:- an integer, representing the pitch change associated with it,
- an uppercase letter (
AorB) for neumes without pitch value (the pitch remains unchanged).
📘 Structure of the Training Dataset
- The samples come from multiple typographic works and manuscripts.
- There are groups of neumes with different shapes but the same tonal effect.
Example (CSV):
| Path | Effect |
|---|---|
| images/neuma1.png | 1 |
| images/neuma2.png | -2 |
| images/neuma3.png | A |
📝 Evaluation Dataset
The evaluation dataset (test.csv) contains two fields:
subtaskID– always 1datapointID– the relative path to the image representing the neume sequence
Details:
- Neume sequences have lengths between 1 and 15 signs.
- All neumes in the sequences are found in the training set.
- Images may contain visual artifacts; preprocessing is recommended.
📤 Output File Format
The output file (submission.csv) must contain 3 fields:
subtaskID– always 1datapointID– the relative path to the sequence imageanswer– the recognized sequence, as integers separated by|, each number representing the accumulated relative distance from the initial step
Example:
Neume sequence:

Individual tonal meaning: 1, -2, 1, 1, 1, -1, none, 1, -1, -1
Output file:
| subtaskID | datapointID | answer |
|---|---|---|
| 1 | images/seq1.png | 1|-1|0|1|2|1|1|2|1|0 |
🏆 Scoring
- 1 point for correctly determining the number of neumes.
- 1 additional point for each correctly classified neume.
Example:
- Expected output:
1|2|0|0|1 - Actual output:
1|2|0|2|3 - Score obtained: 5 out of 6
Final score: the ratio between the total score obtained and the maximum possible score (3354), expressed as a percentage, rounded up to the nearest whole number.