Skip to main content

Vivi Introduction

I have a daughter now! Ok, by "daughter", I mean "a computer program which plays violin at approximately the level of a student with one year of experience". But hey, that's the closest that I'm likely to get to having children of my own!

You can read about "Vivi, the virtual violinist" on my revised website:

I should have said everything that needs to be said on the website, so I won't blather on about her right now.

Oh, the name? Well, "Virtual Violinist" is pretty obvious. But also because I created her with the vi text editor. And she plays music created by Lilypond. All in all, I thought that Vivi was a great name for her! BTW, for any non-English speakers -- "Vivi" rhymes with "Lily".

My apologies for not uploading the Artifastring 1.2 announcement until just now -- it was waiting in my "beta" queue, but I forgot to run the final "upload" command.

Also apologies for my sheet music not being accessible on the new website yet. I'm in such a rush to show off Vivi that I left a few "rough edges" on the new website. I'll fix them over the next week. :)

Artifastring 1.2

I'm happy to announce the release of Artifastring 1.2, a highly optimized physical simulation of a violin for sound synthesis.

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 violin

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:

a two-octave G major scale with some staccato and slurs

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:

Jingle bells Twinkle twinkle little star (student version)

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.