2020-22 cAmp2 ▶️

    • Biggest💥, C++➕, Featured⭐️, Newest🆕, Open Source, Programs📈

⏱️Overview

New implementation of my audio player, based on my older cAmp.
Works on GNU/Linux (and should on Windows).
Now using SFML for graphics, and ImGui for the new GUI. Still using (not FOSS) bass for audio.

📂Sources

Available here.
Now with CMake and newer C++17 syntax.

📷Gallery

Screenshots here.
Starts with normal playlist, find, track backgrounds explanation with time coloring, tabs adjust, later 3 visualizations, their themes, and rest of Gui windows.

✍️Motivation

Old cAmp was WinAPI and DirectX only and had bad style, old C++03 too. It was still one of my last college projects.
I did once try moving it to SFML, and almost succeeded. I had no pressing motivation until I started moving to Debian GNU/Linux instead of Windows which required this new version. I made things differently this time and with more experience, hence the Gui and visible options.

Missing Features

The old cAmp was using GPU shaders and cAmp2 doesn’t use them yet. Seems not that needed. And it doesn’t even have hotkeys or threads implemented here. Well there is always something on my “to do” list for this project, like for any other.

📊New Features

Apart from most of the old features (with few important missing) it has some new ones too.

Most notable addition is the Gui with few windows having controls for changing view parameters, adjusting with sliders or showing info. Since ImGui is such a joy to use it was also easy to implement bindable all program keys list and move all options to Gui.

Other new features:

  • Colored tabs, sliders for their background and text brightness. Empty tabs as separators.
    Can be seen on screens. I find it quite useful, e.g. for now I have 4 rows, first is for Trance style, 2nd for older trance, 3rd for rock, 4th for metal genres (about 31 playlists total).
  • In between markers. E.g. if I filter tracks so that playing cursor or find matches become not visible then it draws a shorter marker still, to show they are between those visible. (It’s best shown on 2nd screenshot also 3rd and this).
  • New visualization type (screens, parameters): FFT above and spectrogram below.
  • Visualization themes and sliders for adjusting colors.
  • Rebindable all key shortcuts list with filtering. And help for mouse actions.
  • Queue tab(s). Any tab can be set as queue. It will be marked in 4 corners. Then you can add tracks with one key (E) to queue end. Good for temporary playlists or “best of” ones.

⌛Conclusions

Well it is definitely useful. It’s one of those key programs I need to have at start of any OS (first is my DoubleCmd fork, then this player, 3rd is Firefox with many add-ons).
Yet it’s still missing one crucial feature like moving (reordering) tracks. Kind of funny, but I still don’t need it that much. I just delete whole playlist and add its main folder again to refresh once a while, and keep order in my filenames and subdirs. There are few other features missing too from previous version. But if I’m doing bigger projects (like Stunt Rally 3) or smaller and more interesting ones, then I don’t have time for this nice useful program which I still use every day. If we count the older one too, made in 2009, this would be the longest used program I made.