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:
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:
Twinkle twinkle little star (student
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
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.