Explainable AI (XAI) refers to the aim of making the underlying processes of AI-based systems more transparent and understandable to users (as opposed to a black box process).
Like visualization, real-time sonification (or musicalization) can be a way of helping humans understand complex processes, such as signal flows, or trends in data.
For this project you will be using JUCE to make a software application that generates real-time visualization and sonification of a machine learning model. The user will also be able to modify the model's parameters via the interface's controls (GUI-based knobs or faders). JUCE is the industry-standard tool for making software applications for digital synthesis and audio production.
Optionally, control data may be sent to other music production applications via MIDI or OSC control messages.
Make a software application which gets an audio file input and segments it into smaller sample fragments according to the "riffs" or sections of a song in the audio file, and then generates guitar tablature scores for each with tablature and audio synchronisation for a musician to learn different parts of a song.
This will involve audio segmentation, encoding pitch values into tablature positions, and exporting these into the proper rendering file for a score visualiser (e.g., MuseScore or Guitar Pro).
To explore "Good Old Fashion AI" approaches (e.g., rule-based systems, Markov chains, etc.) I have two project options:
Option 1) Developing an interface to learn Irish Traditional Music with LOERIC
LOERIC (Live perfOrmance rulE-system for iRish tradItional musiC) is a system that my PhD student, Marco Amerotti, has developed to program MIDI files to behave in particular ways depending on user input. Marco is keen to make a music learning tool that students can use to practice Irish Traditional Music with LOERIC
For more info about LOERIC see:
"Negotiating Autonomy and Trust when Performing with an AI Musician"
And the system's documentation here:
https://amerotz-loeric.readthedocs.io/en/stable/
Option 2) Developing a VCV Rack Module with AI-Powered Control
VCV Rack is the best Eurorack simulator in the market. It is open source and used by a worldwide community of users. Major Eurorack module manufacturers provide free or low-cost virtualisations of their modules in VCV rack.
For this project option you would make a VCV rack module that uses a GOFAI approach of your choice to control synthesis parameters and/or signal flow. The process to make your own modules is documented here:
For this project you will develop a musical game using Chunity (ChucK + Unity). The game will involve an intelligent agent which will procedurally generate rhythmic and melodic patterns which the user has to play. This AI improviser will respond musically and adaptively progress the game's difficulty based on user input.
Chunity tutorials are widely available, for example:
https://chuck.cs.princeton.edu/chunity/