Three New WPF SVL Controls!


WPF SVL Has New Controls!

WPF SVL Has New Controls!

It’s been a long time since I’ve contributed anything to the code world, but this drought is coming to an end. Soon I will be launching a little application for musicians that I’ve been working on casually over the last year or so. As part of that effort (of which you will hear more soon), I’ve updated WPF SVL with a few new controls! As always, the controls are open source and free to use in your own projects (professional or personal)!

The Equalizer

The Equalizer Control

The Equalizer Control

The first new control is the equalizer. The equalizer is really just a fancy collection of vertical sliders with a few other niceties that are illustrated in the various theme files. The control’s value is an array of floating point numbers (with an element for each equalizer band) that allows you to simultaneously get and set all equalizer values.

The Digital Clock

The Digital Clock

The Digital Clock

Next up we have an LED-style digital clock display control. A lot of audio applications feature a running clock, so I thought I would introduce my own version of a fast-rendering digital clock to WPF.

The Time Editor

The Time Editor

The Time Editor

Finally, we have the TimeEditor control. One of the most obvious holes in WPF’s default control library is a numeric spinner control. This is a play on that control with fields for hours, minutes, and seconds (up t o 1/100th of a second). I’ve taken a stab at masking input and validating time logic (e.g., no more than 60-seconds per hour).

Grab the new controls on the WPF SVL CodePlex Site!

Phillip Givens on XAML

Phillip Givens' Blog

Phillip Givens' Blog

Hello, everyone. It’s been a while since I’ve posted anything. I have some great new stuff to reveal soon, including some nice updates to WPFSVL! However, for the time being, I’d like to redirect your attention to the blog of Phillip Givens. He’s started out with a nice article on XAML. Not XAML in the context of WPF, Silverlight, or any particular language – but XAML as a standalone language. Of course, most of us use XAML in the context of some sort of presentation framework, but it is a powerful markup language that should be evaluated for its own merits. Check it out!

WPFSVL and NAudio

WPFSVL Now Has NAudio Examples

WPFSVL Now Has NAudio Examples

By popular demand, I’ve added an example of how to use the WPFSVL with NAudio as the sound engine powering it. I’m still plugging away at the “getting started” documentation for both BASS and NAudio, but if you get the latest source for WPFSVL, you’ll now have an example application to work from. The way I do sample updates and stereo FFT updates is actually a bit different from anything included in the normal NAudio examples, so I encourage you NAudioers to check it out. The normal examples do FFT at every complete sampling. I have it set up to only do FFT on request from the spectrum analyzer, so my performance seems a bit snappier than other NAudio sample applications out there.

I haven’t had as much time to work out the kinks in the NAudio example, so let me know if you’re seeing anything odd. I know I’m still struggling with certain MP3 files returning strange level data on the waveform. Also, since NAudio is managed code, the performance isn’t quite as snappy as the BASS examples (but still quite decent).

Get the WPF Sound Visualization Library at CodePlex

WPF Sound Visualization Library

WPF SVL supports themes/templating!

WPF SVL supports themes/templating!

I’ve just launched my first CodePlex project, The WPF Sound Visualization Library. This thing is actually an extension of the Spectrum Analyzer control I made and part of a much larger secret project. Essentially, I’m taking all the WPF controls I’m creating in my other big project, dumping them out to their own project, slapping an MIT license on it, and releasing it to the public. They all have the common theme of being controls related to sound visualization/playback. Everything was designed so the look could be customized. I’m always looking for ways to improve their flexibility, so if you have ideas, let me know.

 

Stereo Waveform Timeline

Introducing The Waveform Timeline

Introducing The Waveform Timeline

First up is a Waveform. I’ve seen a few people struggling to create these on the BASS forums, so I hope this is useful to the community. Right now, it only has stereo support. I hope to support Mono, Quad, and 5.1 channel displays soon. Aside from displaying a Waveform, this thing has the ability to set track position and a repeat section in the audio stream it is rendering.

One of the challenges in displaying a Waveform in WPF is making sure that it doesn’t kill performance while not appearing blurry. I’ve taken advantage of BitmapCache and some special scaling code so that this is handled well. The Waveform Timeline is broken down into four template parts: the waveform canvas, the timeline canvas, the progress indicator canvas, and the repeat region overlay canvas.

Spectrum Analyzer

Our Old Friend - The Spectrum Analyzer

Our Old Friend - The Spectrum Analyzer

Next is my old friend the Spectrum Analyzer. Nothing really new to report here. I have lots of detail on this in my previous blog posts. I should note, however, there are a few minor fixes and an added property or two since the last time I posted Spectrum Analyzer source code to this blog.

Album Art Display

Album Art Display - For Those Who Bought Music Before iTunes

Album Art Display - For Those Who Bought Music Before iTunes

Finally, we have an album art display. Basically, it’ll take the album art image (presumably from MP3/AAC tags) and display it in a jewel case. I don’t know how much longer the kids will even remember jewel cases, but I still think they look cool in media applications. I’ve had the Album Art Display in a few of my example applications already, but I’ve refactored it a bit so it was a Control rather than a UserControl.

Check Out The CodePlex Project!