0

If you've ever used a Skype call, or really any software that has audio in it, it likely has a little display of some sort that rises and falls, or shrinks and enlarges depending on the frequency or volume of the receiving sound.

Like this: Audio Test

As you can see, when the sound is being played, there is some indicator that takes the volume/frequency of it, and turns that into a display.

I'm wondering these three things:

  1. What is the term for this?
  2. How is this done?
  3. How can I make something like this in WPF?

Please suggest.

Mikhail Kholodkov
  • 23,642
  • 17
  • 61
  • 78
  • Maybe "volume slider" is the term you're looking for? It looks like in WCF you could use a progress bar and style appropriately: https://stackoverflow.com/questions/13927017/wpf-custom-design-volume-control – awh112 May 31 '18 at 15:00
  • 1
    Possible duplicate of [Implementing a audio visualizer in WPF](https://stackoverflow.com/questions/1856681/implementing-a-audio-visualizer-in-wpf) – TheSoftwareJedi May 31 '18 at 15:03
  • @TheSoftwareJedi The problem with that page, is most of the links are broken. – Disfortunate May 31 '18 at 15:09
  • @Disfortunate See updated answer with link to open source library. You should be able to get what you need there! – TheSoftwareJedi Jun 01 '18 at 12:43
  • to visualize the audio as shown it must be in PCM format which is just a series of points on the audio curve ... once you have an array ( buffer ) in PCM you can plot it ... so first goal is to get your audio into PCM ... every audio library will have such an api call to translate the input audio codec into PCM – Scott Stensland Jun 02 '18 at 18:34

1 Answers1

0

The term you are looking for is "Audio Visualizer". See this question:

Implementing a audio visualizer in WPF

There is a great open source library here:

https://github.com/jacobjohnston/wpfsvl

The question is too vague to give code samples as writing an audio visualizer from scratch would be quite an effort.

TheSoftwareJedi
  • 34,421
  • 21
  • 109
  • 151