mike hodnick

Point your browser to www.hodnick.com for Mike's latest content.

Notice:

You are viewing Mike's old, archived site. For new content, navigate to hodnick.com

Latest From Twitter...

The Blog

Silverlight

I've been working on a fluent interface API for producing synthesized audio in Silverlight. Keith Dahlby originally suggested this idea to me, and as I've been testing my own complex signal chains in code I decided it was time to implement the idea. Setting up signal chains using a more conventional syntax was just getting too tedious. I've been using Charles Petzold's Simple Sequencer as a base and have tweaked and modified the code to include support for frequency modulation, amplitude modulation, and panning. To set up a simple signal chain with a mixer, here is what the...

I’ve been seeing many variants these days in high-level architecture diagrams concerning where Silverlight apps are placed.  Often they look something like this: Now, this is just a picture.  As they say in football, you can look at lineups and stats all you want, but football isn’t played on paper, it’s played on the field (or as I believe Don Cherry said of hockey, it’s not played on paper – it’s played on television sets [1]).  Similarly, the picture above is just a picture.  Anyone writing a Silverlight app knows that it does not execute on...

Here’s an example audio clip created from kSynth.b.  I just posted some demo audio recently of my kSynth.b progress but this new clip is a little more coherent and also demonstrates some features of the final app: kSynth.b.demo.mp3 [~3.5 MB] Enjoy.

I just completed work on another Silverlight audio project that I’ve named kSynth.b.  A short while back I released kSynth.  kSynth.b isn’t really a new version of kSynth – it’s just something a little different. Click here to try out kSynth.b Click here to read the help page Here is a screen shot: Some of the unique features of the app include: Polyphony (you can play more than one note at the same time) A drum sequencer that plays wave file drum samples.  Four...

I’ve been working on some new ideas for another Silverlight-based audio synthesizer and sequencer.  I’ve been able to achieve some key goals in my latest efforts: Make the sequencer polyphonic (e.g. play more than one note at the same time) Account for multiple notes played at the same time to prevent clipping or distortion – and do this dynamically rather than pre-load or hard-code a fixed possible number of notes that can be played simultaneously. Add the ability to play and sequence wave file samples. ...

Source Code: Sine.zip (12 kb) I haven’t really found a nuts-and-bolts explanation of how to produce (synthesize) sound with Silverlight 3.  Through trial and error and referencing other more complex examples I was able to finally figure it out.  My hope here is to lay things out so that folks can get their hands on the “boilerplate” Silverlight 3 code required to get an audio stream working and how to also assemble the audio stream bytes into something coherent (such as a sine wave). First, let’s talk about the definition of the audio stream.  The audio stream has...

For the past 1-2 weeks I’ve been working on an audio synthesizer in Silverlight 3.  The app is in enough of a stable state that I decided to throw it out into the world. Try it out:  http://kindohm.com/ksynth Source code: http://code.google.com/p/kindohm-ksynth/ kSynth is a synthesizer. I’ve been caught off guard when people ask me where I got the audio for the app.  I have to explain that the app is generating the audio from scratch (thus, a synthesizer). The app generates raw sound waves from sine, saw, square, and triangle wave calculations.  It then...

I introduce to you TANKS - a web-based game built on Silverlight with C# and the Farseer Physics engine: http://www.kindohm.com/tanks Here are a few screen shots: Some highlights and facts of the game: Single player, real-time.  The enemies shoot at you while you shoot at them. You score points by making hits and kills.  You get more points for shooting efficiently and flipping over enemies. You can shoot down powerups and increase your ability to destroy enemies or stay alive.  Powerups stay with you as you progress through the game. The game has...

This week I picked up the Farseer Physics Engine, which Neil showed me a while back.  In my efforts to create an interesting data visualization experience (e.g. Connectable Lines, Radial Network Graph), I've wanted a UI that could "distribute itself" on the screen.  I wanted something that looked natural that could space itself out.  I needed the ability to introduce forces (attraction and repulsion) between UI elements. By picking up Farseer I was able to accomplish what I wanted and created what looks like a "molecule" of UI elements: http://www.kindohm.com/sl/molecules/molecules.htm This may sound a little surprising - but...