a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Go to file
2016-06-25 13:49:48 -07:00
src Cleaned up a race condition in PlaybackService that could result in the wrong track being selected in the UI if the playlist has really short tracks, or the user is advancing through tracks very quickly. 2016-06-25 13:49:48 -07:00
static/screenshots Added a couple screenshots. 2016-05-30 21:31:19 -07:00
.gitignore Fixed directory browsing to work properly in Windows. 2016-06-23 01:42:53 -07:00
bootstrap.sh A couple small fixes that should allow things to (almost) compile in Linux. 2016-05-29 18:20:48 -07:00
CMakeLists.txt Build taglib from source, using CMake's ExternalProject_Add. Now builds easier on Ubuntu. 2016-06-09 22:31:27 -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-06-25 11:40:24 -07:00

musikcube

a cross-platform audio engine 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

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 taglib
  • 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 taglib
  • 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)
  • 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:

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