We are always looking for students to collaborate with, routinely supervising Master’s theses at the intersection of musicology and computing. We also offer for-credit semester projects and, occasionally, part-time employment opportunities in the shape of internships or assistantships.
- If you are inquiring about semester or thesis projects, please read the following list and contact either Dr. Yannis Rammos, or the designated project researcher, laying out your relevant background. You are also welcome to send us your own research proposal in a few sentences.
- If you are interested in a remunerated opportunity (internship or assistantship), please follow the instructions on this page (unless instructed otherwise in the project description).
Web development for graphic music analysis app
Semester project Bachelor's project Internship
Our lab’s reductive music analysis app is a serverless web interface which enables researchers to express music analyses in the form of mathematical graphs, and embed these graphs within music scores according to an XML-based standard (MEI). Originally published in 2022, the app has been under development in discontinuous fashion, resulting in a cluttered code base and an accumulation of feature requests and bug reports, which altogether hinder its adoption in actual research. We are seeking two (2) students with strong academic and professional interest in software engineering to undertake, respectively:
- a complete rewrite of the web app in type-safe code and a modern, event-driven JavaScript framework;
- feature development and bug fixes in the existing (“legacy”) code base.
Prerequisites:
- expertise and experience in front-end web technologies;
- commitment to code quality and maintainability;
- experience or strong interest in automated tests and CI;
- expertise in Vue.js, React, Svelte, TypeScript and/or other modern JavaScript paradigms;
- collaborative mindset.
Contact: Yannis Rammos
Perceptual abilities of musical experts
Semester project Bachelor's project Internship
Empirical research in music perception frequently compares the abilities of participants with no musical training to those with musical training. However, the definition of ‘musician’ used varies greatly across studies, and it is extremely rare to include participants with the very top levels of musical expertise. Using the DCML’s collaborations with world-class performing artists, we aim to test how the perceptual abilities of top experts differ from previous participants by replicating several existing (often inconclusive) behavioural experiments.
We are looking for semester or internship projects that could form a part of this larger endeavour of the lab. We expect such a project would involve the replication of an existing study of music perception, critically evaluating and updating its methods, implementing an online version, and analysing data.
Prerequisites:
- Familiarity with scientific method and experimental design
- Knowledge of statistics for experiment data analysis (frequentist or Bayesian)
- Expertise with JavaScript or online experiment frameworks such as
jsPsych,lab.jsorPsychoPy
Contact: Edward Hall
Software Engineering – LARS – 5 positions
Semester project Bachelor's project Master's project
Context: The LARS System
LARS (Listen, Act, React, Silence) is an ongoing research and artistic project developed in the DCML Lab.
It is a real-time interactive music system designed to collaborate with human musicians in live performance contexts. You can see an example of a recording here.
The core objective of LARS is to:
- Listen to a performer’s musical input,
- Analyze it in real time,
- Generate musically coherent and novel responses,
- Adapt dynamically to the performer’s style and intent.
Originally designed for interaction with a single musician, LARS is scalable and can be extended to support multiple performers.
Technical Overview
- Input/output via MIDI (at least one MIDI keyboard).
- Core architecture built around four actions: Listen, Act, React, Silence.
- Designed for rapid experimentation, even by non-programmers.
- Implemented in Python and C++, with nanobind bindings to balance flexibility and real-time performance.
- Modular plugin-based architecture.
Students will contribute directly to a real, evolving research system used in artistic and experimental contexts.
Proposed Projects (5 Positions)
1. Testing & Quality Assurance (C++ & Python)
Goal: Improve the reliability and long-term maintainability of LARS.
Tasks
- Design and implement a comprehensive test suite for both C++ and Python components.
- Write unit tests, integration tests, regression tests, load tests
- Set up automated testing workflows (CI).
- Help define testing standards for plugins and musical components.
- Collaborate with other students to ensure new features are testable.
- Open to alternatives like Formal verification of the C++ part.
Expected Prerequisites
- Solid programming experience in C++ and Python
- Familiarity with software testing concepts (unit testing, test coverage).
- Good knowledge of version control (Git) and collaborative programming.
- Interest in code quality, robustness, and maintainability.
- No prior experience in music systems required.
2. User Interface & Interaction Design
Goal: Improve usability, clarity, and creative control for musicians and researchers.
Tasks
- Redesign and improve the graphical user interface (GUI).
- Add new UI features for controlling musical behaviors, plugins, and parameters.
- Improve visualization of musical processes.
- Ensure usability for non-programmers and musicians.
- Prototype new interaction paradigms for live performance.
Expected Prerequisites
- Experience with UI development (desktop or web-based).
- Familiarity with ImGUI and/or ImGui node editor
- Sensitivity to usability and user-centered design.
- Interest in creative tools or music-related applications.
- Good programming experience in Python and C++
- No prior experience in music systems required.
3. Python Utilities → C++ Core Migration
Goal: Strengthen performance and structure by moving key utilities from Python to C++.
Tasks
- Identify existing Python utilities suitable for C++ reimplementation.
- Translate and optimize these utilities in modern C++.
- Ensure correctness through testing and benchmarking.
- Modularize the codebase for better reuse.
- Contribute to building a C++ version of the pattern language used by LARS (A set of modules that handle algorithmic composition)
- Maintain Python bindings via nanobind.
Expected Prerequisites
- Strong programming skills in C++.
- Working knowledge of Python.
- Familiarity with object-oriented design and modular code.
- Interest in performance, low-level implementation, and software architecture.
- Basic understanding of bindings or cross-language interfaces is a plus, more specifically nanobind.
- Comfortable reading and improving existing codebases.
- Musical knowledge is a plus.
4. Performance Optimization & Benchmarking
Goal: Improve real-time performance and scalability.
Tasks
- Profile the system to identify bottlenecks.
- Optimize C++ code paths critical for real-time interaction.
- Investigate and improve threading and concurrency issues.
- Design and implement benchmarking tools for plugins and core components.
- Automate performance tests to detect regressions.
- Optionally assist with Python-side performance optimizations.
Expected Prerequisites
- Very good knowledge of C++.
- Good understanding of multithreading and concurrency.
- Familiarity with performance profiling tools (Notably Tracy)
- Interest in real-time systems and low-latency constraints.
- Comfortable reading and improving existing codebases.
5. Core Features & System Extensions (C++ & Python)
Goal: Extend LARS with new musical and architectural capabilities.
Tasks
- Implement new core features (mainly in C++, with Python support when relevant).
- Design and integrate new musical behaviors, plugins, or interaction modes.
- Write documentation and examples for new features.
- Ensure new features are tested and maintainable.
- Collaborate closely with researchers and musicians to refine functionality.
Expected Prerequisites
- Programming experience in C++ and/or Python.
- Good Knowledge in music theory.
- Ability to design and implement new features in an existing system.
- Willingness to document and maintain code.
- Prior experience with MIDI or music systems is a plus, but not required.
Notes for Applicants
- These projects are suitable for Bachelor or Master-level students, depending on background and scope.
- Students will work closely with the DCML Lab team and receive technical and artistic guidance.
- Interest in music, creativity, and experimental systems is highly encouraged, but musical expertise is not mandatory for all projects
If you are interested by one of these projects please send an email with a CV at Joris Monnet ([email protected])