Source code from .NET Conf 2021 ML.NET presentation.
MAUI app code can be found in the transfer-app.
To run this application, you need .NET MAUI Preview 10+. See this .NET MAUI Preview 10 blog post for more information.
This application is a .NET MAUI application that uses an ML.NET machine learning model to repair missing / damaged notes in a song.
The dataset used for training the ML.NET model (chorales-modified.csv.txt) is based on the Bach Chorales Data Set from UCI Machine Learning Repository.
The training dataset has ~4.6K rows and 24 columns which represent single-line melodies of 100 Bach chorales (songs).
The following is a preview of the first 10 rows of the dataset:
- Chorale: Indicates the song in the current row (1 is song #1, 2 is song #2, ...)
- Key: Indicates if the note in the row has any sharps or flats
- Measure: Indicates the section of the song/chorale in the current row (1 is first section, 2 is second section, ...)
- Note: Indicates the letter note; this is the Label since we want to predict missing notes
- 60, 61, 62, ... 79: Indicates whether the note (number) is present in the same measure as the indicated note (letter); 0 = not present, 1 = present
- Manufaktura.Controls (Repo) - Musical symbol rendering.
- DryWetMIDI (Repo) - MIDI file generation. Generation is done outside of the MAUI app.
- Xam.Plugin.SimpleAudioPlayer (Repo) - MIDI playback