The work on the new project continued; however, slow-paced. Experimentation and gathering data was the highlight of the whole week, as I started working with a new audio processing library “Essentia”. Essentia is a C++ library used for the purpose of analyzing and processing audio signals and files. It has a wide reach over the set of algorithms it contains, which made for an interesting exploration over the course of the week.
Since our testing of the tempo deviation last week showed some type of a trend, I moved to working on extracting new features to train a machine learning model on. Going back to analyzing pitch and melody, I tested a state-of-the-art melody detection algorithm called Melodia, written by Justin Salamon. The algorithm detects the predominant melodic line in a music piece – which includes both polyphonic and homophonic pieces. The algorithm seemed to yield more accurate results when it comes to correctly identifying the fundamental frequencies of playing notes, compared to Yin from last week.
The key detection algorithm provided by Essentia, was also tested to find the most dominant key in every music track. This was done with the intention of helping with the pitch analysis, to detect mistakes and erroneous notes in the performances of the players. Nonetheless, taking into consideration that in a lot of the pieces analyzed key shifting occurs, the code will have to be rewritten to test the key of clips of each musical tracks and analyze them individually.
Lastly, we gathered some data on the changes in the loudness of the musical pieces by using the dynamic complexity algorithm provided by Essentia. The algorithm finds a dominant average loudness and measures the divergence from it in the level of loudness, and gives a numerical value that increases with the greater difference in loudness. This could well give an idea of the range, and expressiveness of performances, which might help in the training.
Most of this week was put towards searching, testing, and experimenting with ways to extract more features for the training of our machine learning model. The flow and progress of the work seemed to have been quite slow, but I hope I will pick up the pace this Tuesday.