a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Go to file
casey langen 3ba692d20a Added back some old files I deleted a long time ago, just so we can do
some platform-specific testing easily.
2017-01-06 12:37:08 -08:00
src Added back some old files I deleted a long time ago, just so we can do 2017-01-06 12:37:08 -08:00
.gitignore Added a Win32 GDI visualizer. 2016-12-02 01:12:49 -08:00
archive-win32.sh Added a very simple shell script used to archive builds for distribution. 2016-12-19 22:50:37 -08:00
CHANGELOG.txt Version bump -- we're getting close to release. 2016-12-29 16:06:18 -08:00
CMakeLists.txt Removed some unnecessary dependencies from CMakeLists and fixed compile on older versions of clang. 2017-01-01 13:59:22 -08:00
CONTRIBUTORS.txt Added Gunnar -- hopefully I didn't forget anyone else. 2016-06-11 18:13:05 -07:00
LICENSE.txt Updated LICENSE.txt 2016-06-11 18:22:59 -07:00
musikcube.sln Added back some old files I deleted a long time ago, just so we can do 2017-01-06 12:37:08 -08:00
README.md Removed mpg123 references from README.md -- if all goes well with this 2016-12-13 22:28:56 -08:00

musikcube

a cross-platform audio engine and player written in C++.

musikbox

a curses frontend to musikcube.

musicbox compiles and runs easily on Windows, OSX and Linux.

it looks something like this on windows:

windows screenshot

and this on osx:

osx screenshot

and linux:

linux screenshot

compiling

windows

  • grab the Visual Studio 2015 Community Edition and install the C++ compiler and tools. the 32-bit compiler is currently used.
  • clone the musikcube sources: git clone https://github.com/clangen/musikcube.git
  • install the 32 bit version of boost 1.60. ensure it shares the same parent directory with musikcube. e.g: c:\src\musikcube and c:\src\boost_1_60_0 -- the project's solution will reference it via relative path.
  • open musikcube.sln and build/run.

mac

you'll need homebrew to install the required dependencies.

automatic

  • brew tap clangen/musikbox
  • brew install musikbox
  • musikbox

manual

  • brew install cmake boost libogg libvorbis flac faad2
  • git clone https://github.com/clangen/musikcube.git
  • cd musikcube
  • cmake .
  • make
  • cd bin
  • ./musikbox

linux

  • install the following libraries and their development packages: cmake boost libogg vorbis flac faad2 ncurses zlib asound pulse
  • git clone https://github.com/clangen/musikcube.git
  • cd musikcube
  • cmake .
  • make
  • sudo make install
  • musikbox

keyboard shortcuts

the hotkeys listed below can generally be used at any time; however, if an input field is focused some may not work. you can enter command mode by pressing ESC, which will highlight the bottom command bar and accept all hotkeys. command mode may be deactivated by pressing ESC again.

you may also change hotkeys by editing ~/.mC2/hotkeys.json and restarting the app. a hotkey tester is provided in the settings screen.

  • TAB select next window
  • SHIFT+TAB select previous window
  • ~ switch to console view
  • a switch to library view
  • s switch to settings view
  • i volume up 5%
  • k volume down 5%
  • m toggle volume mute
  • j previous track
  • l next track
  • u back 10 seconds
  • o forward 10 seconds
  • v show / hide visualizer
  • r repaint the screen
  • . toggle repeat mode (off/track/list)
  • , (un)shuffle play queue
  • CTRL+p pause/resume (globally)
  • CTRL+x stop (unload streams, free resources)
  • CTRL+d quit

and a couple hotkeys that are specific to the library view:

  • b show browse view
  • n show play queue
  • f show album/artist/genre search
  • t show track search
  • 1 browse by artist
  • 2 browse by album
  • 3 browse by genre
  • x jump to playing artist/album/genre in browse view
  • SPACE pause/resume

important: on OSX make sure you configure your terminal emulator to treat your left alt key as "+Esc" or "Meta".

sdk

musikcube is built around its own SDK interfaces. they're still in the process of being cleaned up and slimmed down. you can see what they look like here: https://github.com/clangen/musikcube/tree/master/src/core/sdk