SilverSynth: a Silverlight Audio Synth Library

Introducing SilverSynth, a digital audio synthesis library for Silverlight. http://silversynth.codeplex.com Straight from the project description:

Quite simply, SilverSynth is a Silverlight library used to create awesome sounds in a web browser. It can be used as a core library for developing music-based applications or for just generating noise that annoys your co-workers. It supports synthesis of sine, saw, square and triangle wave forms, frequency modulation, amplitude modulation, panning, volume control, and dynamic envelopes.

Much of the core wave form generation code is based off of Charles Petzold’s work.

Silverlight developers can use the library to create a wide spectrum of custom sounds and attach a custom StereoPcmStreamSource to a MediaElement:

Perhaps the coolest feature of the library is the ability to create signal chains using a fluent API syntax:

The source code also includes a demo app so you can see how the library is used.

Happy noise-making! Well - before I conclude I should say that aside from noise that annoys your co-workers, you can create some cool musical applications with this stuff too.


[Flash 9 is required to listen to audio.]

With every breath you become less human…


Automated Azure Deployments with TFS Build

I recently had the pain pleasure of setting up automatic Azure deployments as part of our TFS build process for an ASP.NET MVC app. There is a fair amount of documentation out there already on the tasks required to get this working, but you have to connect a few dots and correct a few problems along the way.

First read Dominic Green’s post on the topic: http://blogs.msdn.com/domgreen/archive/2009/09/29/deploying-to-the-cloud-as-part-of-your-daily-build.aspx. For the most part, his post covers about 90% of what you need to know.

One “gotcha” is with certificates and the TFS build server. You will need to create a certificate on the build machine and upload it to Azure management API certificate area. However you will likely run into an “Anonymous” scheme error and will need to follow the guidelines that Alexander Strauss lays out in his post http://blogs.msdn.com/astrauss/archive/2010/01/28/tales-about-working-with-the-azure-service-management-api-chapter-i.aspx:

…in my first try I run into an error that I was not able to get my Service Management API requests authenticated. The service always returned:

Error 403 (Forbidden): The HTTP request was forbidden with client authentication scheme ‘Anonymous’.

In order to have the requests working you need to meet two prerequisites for your certificate:

  1. The certificate needs to be installed in the certificate store of the client machine from where you send the requests to the Service Management API.
  2. The certificate must have an associated private key.

Certificates in Windows are kind of magical to me and I’m glad there are folks out there who have already dug in to that stuff.

Last, you will need to modify the source code of the csmanage.exe tool referenced by Dominic. You can get the csmanage.exe tool here: http://code.msdn.microsoft.com/Wiki/View.aspx?ProjectName=windowsazuresamples. The problem with csmanage.exe at the time of this writing is that it incorrectly returns an exit code of “1” when the operations run successfully and an exit code of “0” when there are errors. In the Main() method of csmanage.exe you can find this code:

The problem is that Program.ExecuteActions() returns a bool that represents a “hasErrors” value internally. Thus, if “hasErrors” is false, then the program should return “0”. You can simply modify the source code and change the condition to deal with this:

Happy deploying!


ready whip.

ready whip.


TC SLUG - Silverlight Audio Synthesis Slides/Code

My slides and code samples from today’s presentation at the Twin Cities Silverlight User Group have been posted:

Hodnick.SLDigitalAudioSynth.zip (1.26 MB)

The other apps I showed are listed below:

Finally, check out Charles Petzold’s Simple Music Sequencer for Silverlight as well as his Programming Windows book.