Bachelor Thesis
Basic Information
- Student: Oleksandr Piskovyi
- Thesis title: Composition and reconstruction of music with a help of an evolutionary algorithm
- Supervisor: doc. RNDr. Mária Markošová, PhD.
- Contact: piskovyi1@uniba.sk
Thesis Assignment
Annotation
This thesis focuses on reconstructing and generating short musical compositions using evolutionary algorithms. The topic requires both algorithmic work and some musical intuition, since the student must choose what kind of musical material will be generated. The solution may use, for example, a genetic algorithm with a suitably defined fitness function. The student is expected to implement the algorithm and evaluate its results.
Aim
The aim of the thesis is to create a short musical composition using an evolutionary algorithm, and optionally to reconstruct a section of an existing piece of music.
Short Description
This thesis deals with the generation and reconstruction of short musical fragments using an evolutionary algorithm. The implemented system creates candidate musical pieces, modifies them through evolutionary operators, and selects better candidates according to a chosen fitness function.
The experiments are divided into two main tasks:
- reconstruction of a known musical excerpt,
- generation of a new musical fragment without one exact target recording.
The main focus of the thesis is the comparison of different fitness functions and their influence on search speed, computational cost, and the character of the resulting music.
Work Diary / Weekly Progress
| Week | Work | Output |
|---|---|---|
| Nov 2025 | Started the first experimental implementation in Rust. The early work focused on representing musical material and testing whether an evolutionary approach was practical for the thesis topic. | Initial Rust prototype. |
| Dec 2025 – Jan 2026 | Worked mainly with fitness-function ideas in the Rust implementation. The symbolic/statistical fitness approach became the most stable direction and was preserved in the later version of the work. | Rust implementation of the statistical fitness idea. |
| Feb – Mar 2026 | Tried an additional MFCC-based fitness direction, but this approach was later abandoned. Around the same period, the plan formed to rewrite the implementation in Python to make the work easier to inspect, reproduce, and extend by the wider community. | Abandoned MFCC-based prototype and decision to move toward Python. |
| 2026-W13 | Created the repository for the experimental part of the thesis and began the rewrite from Rust to Python. This period also included discussion about increasing the scope of the work from a single approach to simultaneous implementations based on different fitness approaches and their comparison. | Commit |
| 2026-W14 | Researched methods used in the thesis work by reading selected papers and collecting relevant references for evolutionary music generation and fitness-function design. | Literature review notes and source selection. |
| 2026-W15 | Continued looking for additional papers and comparing possible evaluation strategies, especially for symbolic and audio-based approaches. | Expanded list of sources and candidate evaluation methods. |
| 2026-W16 | Refined the methodological direction of the thesis and clarified which fitness functions and experiment variants should be implemented and compared. | Method-selection notes for the experiment plan. |
| 2026-W17 | Stabilized the experiment code after refactoring. Added the shared library for musical tree representation, compilation to symbolic score, MIDI export, audio rendering, evolutionary operators, and the evolutionary search loop. Added the first experiment scripts for the baseline, global CLAP similarity, chunk-wise CLAP distance, symbolic statistics, and CLaMP evaluation. | Commit |
| Current state, to be dated after commit | Ongoing work on experiment scripts and utilities for running the thesis experiment matrix, writing run summaries, and aggregating results. In parallel, ongoing work on the thesis text itself: describing the implemented methods, experiment design, and interpretation of results. | Files such as |
Current List of Sources and Links
Evolutionary Algorithms and Genetic Programming
-
Bartz-Beielstein, T., Branke, J., Mehnen, J., Mersmann, O. — Evolutionary Algorithms, Wiley Interdisciplinary Reviews, 2014. DOI: 10.1002/widm.1124
-
Poli, R., Langdon, W. B., McPhee, N. F. — A Field Guide to Genetic Programming, 2008. gp-field-guide.org.uk
Algorithmic Composition and Evolutionary Music
-
Nierhaus, G. — Algorithmic Composition: Paradigms of Automated Music Generation, Springer, 2009. DOI: 10.1007/978-3-211-75540-2
-
Biles, J. A. — GenJam: A Genetic Algorithm for Generating Jazz Solos, 1994.
-
Marques, M., Oliveira, V., Vieira, S., Rosa, A. C. — Music Composition Using Genetic Evolutionary Algorithms, 2000. DOI: 10.1109/CEC.2000.870368
-
Manaris, B. et al. — A Corpus-Based Hybrid Approach to Music Analysis and Composition, AAAI, 2007.
Models and Metrics for Music/Audio Evaluation
-
Elizalde, B. et al. — CLAP: Learning Audio Concepts from Natural Language Supervision, ICASSP, 2023. DOI: 10.1109/ICASSP49357.2023.10095889
-
Wu, Y. et al. — Large-Scale Contrastive Language-Audio Pretraining, ICASSP, 2023. DOI: 10.1109/ICASSP49357.2023.10095969
-
Wu, S. et al. — CLaMP: Contrastive Language-Music Pre-Training for Cross-Modal Symbolic Music Information Retrieval, ISMIR, 2023.
-
Wu, S. et al. — CLaMP 3: Universal Music Information Retrieval Across Unaligned Modalities and Unseen Languages, ACL Findings, 2025. DOI: 10.18653/v1/2025.findings-acl.133
-
Kilgour, K. et al. — Fréchet Audio Distance, Interspeech, 2019. DOI: 10.21437/Interspeech.2019-2219
-
Chung, Y. et al. — KAD: No More FAD! An Effective and Efficient Evaluation Metric for Audio Generation, 2025. arXiv:2502.15602
Technical Sources
-
MIDI Manufacturers Association — MIDI 1.0 Detailed Specification. midi.org/midi-1-0-detailed-specification
-
SuperCollider — audio synthesis programming language and sound server. supercollider.github.io
-
Supriya — Python API for SuperCollider. github.com/supriya-project/supriya
Current Texts and Outputs
- Current thesis draft: link
- Experiment implementation: link
- Experimental results and figures:
- reconstruction convergence plots,
- generation convergence plots,
- runtime comparison,
- comparison of CLaMP 3 variants by runtime and structural variability.
- Examples of generated musical fragments: link
Note: The commercial target recording used in the reconstruction experiments is not published on this page.