a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Go to file
casey c1e21abad5 Added support for focusable shortcuts bar, aka "dedicated command mode"
- Added ITopLevelLayout, implemented by ConsoleLayout, LibraryLayout,
  SettingsLayout
- Removed individual ShortcutsWindows from all layouts, use a single one
  in MainLayout
- Fixed a super old bug where ConsoleLayout was continuing to update even
  when invisible.
- Added a call to set_escdelay() to reduce latency in Linux/OS X when
  pressing ESC.
- Fixed up botched key handling in App.cpp
- Added IsFocused(), IsVisible() to IWindow
- Added a new blue color in Colors.cpp (currently unused)

Fixed a bug where the search field may get refocused even if the shortcuts bar is active.
2016-07-17 17:14:38 -07:00
src Added support for focusable shortcuts bar, aka "dedicated command mode" 2016-07-17 17:14:38 -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-07-11 21:34:16 -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
  • 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