Artifastring 1.2I'm happy to announce the release of Artifastring 1.2, a highly optimized physical simulation of a violin for sound synthesis. http://percival-music.ca/artifastring/
This release has a few minor cleanups, but much more importantly, it has updated values for some physical constants! Matthias Demoucron, the author of the PhD thesis which describes the algorithm used in Artifastring, was kind enough to reply to my questions and provide some additional information.
Some example files are in the
music/ directory; if
you have no clue what kind of physical values might produce decent
sounds, try looking in there. The resulting audio will not sound
like a professional violinist, but it should be enough to give you
a rough idea and get started.
Note, however, that those files are for a purely mechanical reproduction of actions; my actual "teaching a computer to play violin" work is not part of Artifastring itself. Due to my personal vacation plans (I only get to see my family once a year!), I've decided to submit papers to the Sound and Music Conference instead of the International Computer Music Conference. This will let me spend more time in Vancouver. :)
I should be posting updated examples for the violin playing (rather than the physical simulation code) later this week. I might even do a "screen-cast" and produce a video! If I don't post anything by Friday, then I'm probably making a video and fumbling through a bunch of unfamiliar software.
Beginning violinI'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:
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.