An audio visualizer made with C++. I used Fmod as the audio library. The program can visualize audio through input like volume, frequency, pitch and beats per minute.

sitelink_audiovisualizer

You can download it by clicking the image below.

What did I do?

  • Dove deep into Fmod – sound loading, sound, pitch, DSP, …
  • Created my own user interface with buttons, sliders, checkboxes, lists, textboxes and displays that can be dragged and minimized
  • Visualized audio
  • Loading and saving files with Windows
  • Saving and loading settings in appdata

Code snippet

UPDATE 04/04

Changes since last update:

  • Library interface (add songs from file to library, saves library to file and loads up library on startup)
  • Add and remove tracks from library
  • Shuffle/repeat/repeat one options for (automatically) playing songs after one another
  • Visualizer now keeps going even when the window is unfocused.
  • Keeps track of “listening history” (return with “<<” button and skip to next song with “>>”)
  • Some small visual changes (shape speed, rotation, amount, size, …)
  • Interfaces are automatically docked to specific corners of the screen on startup

LOGO: 05/04

Made a quick ‘lil logo in Adobe Illustrator for the program, no real name yet though.

audiovisualizer_logo

UPDATE 12/06: v0.05 and BETA RELEASE

I think it’s fair to say Audio Visualizer is now ready for (beta) release.

CHANGELOG:

  • There is now a scroll bar for the library list. A green line shows where the currently playing track is located.
  • The buttons are now slightly rounded to make them look nicer.
  • The shapes are now less frequent, but rely on the highest registered volume since the last shape was added.
    This is done so short louder parts of a song never go unnoticed.
  • The volume effect now appears on the top and bottom of the screen instead of the middle. It also has rounded corners.
  • Added “NOIRE” (5) and “SHADOW” (6) theme.
  • Settings (checkboxes, sliders, interface layout, theme) are now saved.
  • Added search function to library
  • Added library loading and creating new library files. Library files are now .avl (Audio Visualizer Library) files instead of .dat files. This feature provides a way of loading in different libraries from files. It also provides an elaborate way of making playlists.
  • Program now continues even when minimized.
  • Solved some problems caused by removing tracks.
  • The ID3 tag (title/artist/album) reading has been improved, and now avoids most (if not all) cases of weird character sequences (like “UUUUUUUUUUUU…” or a series of nonsensical symbols, letters and/or numbers).
    Note that some songs will still not have artist and album available since they don’t have an ID3 tag.
  • Info now displays both the file name (sans file type, like .mp3) and the title.
    e.g. name = “01 – Burn The Witch” | title = “Burn The Witch”
  • Adjusted the slider’s “snap to middle” property (see pitch slider).
    The slider used to snap any value between 45% and 55% of the slider to 50%; instead, now the slider snaps when the mouse drags the slider within a (horizontal) range of 3 pixels of the middle pixel.
    This resulted in the pitch to always be in the range of [0.0;0.90] + 1.0 + [1.10;2.0], regardless of the width of the slider.