Virtual Studio Technology: Introduction

There are people that play music and there are people that write code and there is a thin intersection between the two containing people like me: programming musicians.
Virtual Studio Technology is a SDK written by Steinberg just for us. This SDK allows programmers to create “plugins” from well-designed code base classes that can receive, manipulate, and output both audio and MIDI data. These plugins are easily compatible with almost every non-linear audio editor out there including Logic, Cubase, ProTools, Sonar and many more. Nice.
Anyway, I was thinking about purchasing a few plugins to use in my DAW (Logic Pro 9 is my choice) and I realized that some of them would probably be pretty simple to write if I had the right tools. Hence, I am hoping to write my own VST or AU plugin over the next few weeks.
Although it might be more difficult then I’m currently anticipating, my current plan is to write a drum replacement tool similar to Drumagog that I can use in my own recordings. As far as I can tell, this would require only a couple specific bits of logic for core functionality:
- Audio level monitoring. The sound of the drum would have to be replaced when a sample is processed that has a signal level greater than a certain (user-settable) threshold.
- Velocity-specific sample triggering. Once we have determined that a drum has been hit we need to trigger (perhaps via some MIDI interface) some sample for that drum. This requires that the user can somehow select which sound (or perhaps sound-generator or MIDI channel) to use, so we can replace a drum channel with the user-selected sound. We also will have to make sure that the velocity or volume of the sample we trigger is somehow related to the loudness of the original sound in order to maintain realism in the replacement.
Any suggestions? I’ll definitely be keeping you posted once I get started.
August 4th, 2010 at 10:18 pm
I didn’t know about half the words in that post. Which means it must be about something awesome.
Rock on.
August 5th, 2010 at 12:41 am
Er, something like that.
August 30th, 2010 at 1:12 am
Hey Ry, the overlap between musicians and programmers might not be as small as you think. I listen to the .NET Rocks podcast quite a bit, and Carl Franklin, one of the two main hosts of the show, is a great musician. He thinks that it’s actually quite common for programmers to be musicians or at least love music. Here’s a quote from him:
“Instrumentalists in particular (guitar players for example) make great programmers. It’s not just about math and music being similar, or the fundamentals vs the art. Instrumentalists have to zoom in to work with very repetitive technical details, and so become very focused – like a guitar player practicing a piece of music at a slow speed. But, the best programmers are able to then zoom out and see the big picture, and where their coding fits into the whole project, much like an artist has to step back from a painting and see the whole of it, or an instrumentalists has to produce something that communicates a complete work, not just the scales and technical aspects of it.”
By the way, it would be great fun to help you program that plugin, although some of what you said was definitely over my head too.