Waveform

Introduction

Of the things that WPF misses it is probably of audio-related controls. I’ve had to craft some of them and I will present you a component that renders a wave form and a little more. It features a sample-level accuracy, a theme-able interface and ‘providers’ which analyzes audio and return information of interest such as sound features.

Showcase

waveform-onsets-128
Figure 1 : provider that detects onsets and color them according their frequency band

waveform-tempo-128
Figure 2 : provider that detects beats

waveform-coloring-128
Figure 3 : provider that colors audio content like Scratch Live or rekordbox

waveform-echonest-128
Figure 4 : provider that renders feature vectors returned by an EchoNest online analysis

waveform-direct3d-128
Figure 5 :  same provider but with a Direct3D renderer and a custom shader

How it works

The rendering process components are laid out below:

AudioStream -> Waveform -> WaveformRenderer

– AudioStream reads and converts audio samples
– Waveform builds the peak data and cache
– WaveformRenderer is an abstract renderer

Finally, providers are plugged to a renderer as needed.

Status

The version in GitHub is old, I yet have to upload the latest version featuring providers.

Leave a Reply

Your email address will not be published. Required fields are marked *

*