I've been teaching my computer how to play violin for the past month or so. I'm quite happy with the results, but bear in mind -- I'm a cello and viola teacher. I know what beginners sound like. Those professional string quartets you listen to in the car? There's more than 50 years of training between those four people.
Anyway, I'm happy with the progress, but I expect that most listeners will be distinctly underwhelmed. That's fine; this isn't the final version. I'm mainly making a status update for my family.
The overall task I've set myself is to perform a piece of sheet music on Artifastring (my physical violin model). In other words, given music like this:
produce a sound file something like this: scale.wav.mp3 with no human intervention. Previous training is allowed, but the computer must produce music based on the sheet music.
In case you're wondering, that was completely "artificial" rather than recorded music. My computer program(s) looked at the music, figured out what physical actions would be required to produce the sounds, began synthesizing the sound with Artifastring, and adjusted the physical actions based on qualities of the sound.
I reached this stage less than a week ago, so I'm still working out major things. I got slurs working for the first time a few hours ago, and certain major things (like dynamics) are completely ignored at the moment. But it certainly feels great to be looking at some sheet music and listening to my baby playing violin. :)
I've been working on the scale for past two days, so that's the most "impressive" thing I have. I have some earlier works:
The "student version" was deliberately made out of tune, because I thought it would be cute. It certainly brings tears to my eyes! Unfortunately the rhythm is still perfect; I need to program my computer to deliberately screw up the rhythm in order to really imitate a beginning violinist.
Now that I've finally reached the stage of actual musical training (instead of lurking around in the depths of marsyas and academic papers on nonlinear control theory), I'm hopeful that I can force myself to only spend 1 hour a day on this (just like a real violin student), and get back to my human-oritented educational software.