a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Go to file
2016-08-10 00:02:39 -07:00
src Reduced NOTIFY_INTERVAL back to something more reasonable in Indexer.cpp. 2016-07-29 21:03:04 -07:00
.gitignore Updated .gitignore. 2016-07-08 16:40:20 -07:00
CMakeLists.txt Dropped minimum required boost version to 1.55. 2016-07-13 22:36:33 -07: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 Renamed "aacdecoder" to "m4adecoder", because that's what it actually 2016-06-04 21:27:02 -07:00
README.md Update README.md 2016-08-10 00:02:39 -07:00

musikcube

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

musikbox

an ncurses 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.

  • brew install cmake boost libogg libvorbis flac mpg123 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 mpg123 faad2 ncurses zlib asound
  • git clone https://github.com/clangen/musikcube.git
  • cd musikcube
  • cmake .
  • make
  • cd bin
  • ./musikbox

keyboard shortcuts

the current hotkeys are generally based around holding the alt/meta key with your left thumb, and using the home row with your right hand.

  • TAB select next window
  • SHIFT+TAB select previous window
  • ALT+~ switch to console view
  • ALT+a switch to library view
  • ALT+s switch to settings view
  • ALT+i volume up 5%
  • ALT+k volume down 5%
  • ALT+j previous track
  • ALT+l next track
  • ALT+u back 10 seconds
  • ALT+o forward 10 seconds
  • ALT+r repaint the screen
  • ALT+, toggle repeat mode (off/track/list)
  • ALT+. (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:

  • ESC toggle between browse and play queue
  • ALT+b show browse view
  • ALT+n show play queue
  • ALT+f show album/artist/genre search
  • ALT+t show track search
  • ALT+1 browse by artist
  • ALT+2 browse by album
  • ALT+3 browse by genre
  • ALT+m 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