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.
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
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
Made a quick ‘lil logo in Adobe Illustrator for the program, no real name yet though.
UPDATE 12/06: v0.05 and BETA RELEASE
I think it’s fair to say Audio Visualizer is now ready for (beta) release.
– 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.