src | ||
.gitignore | ||
archive-macos.sh | ||
archive-win32.sh | ||
CHANGELOG.txt | ||
CMakeLists.txt | ||
CONTRIBUTORS.txt | ||
LICENSE.txt | ||
musikcube.sln | ||
README.md |
musikcube
a cross-platform audio engine and player written in C++.
musikbox
a curses frontend to musikcube.
musicbox compiles and runs easily on Windows, macOS and Linux.
it looks something like this on windows:
and this on macOS:
and linux:
you can also remote control musikbox using the musikdroid
android app, which can be downloaded in the releases
section above. it looks like this:
raspberry pi
interested in running musikbox on a raspberry pi, connected to you home stereo? see here!
compiling
windows
- grab the Visual Studio 2017 Community Edition and install the 32-bit c++ compiler.
- clone the musikcube sources:
git clone https://github.com/clangen/musikcube.git
- install the 32 bit version of boost 1.64. ensure it shares the same parent directory with musikcube. e.g:
c:\src\musikcube
andc:\src\boost_1_64_0_b2
-- 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 ~/.musikcube/hotkeys.json
and restarting the app. a hotkey tester is provided in the settings screen.
TAB
select next windowSHIFT+TAB
select previous window~
switch to console viewa
switch to library views
switch to settings viewi
volume up 5%k
volume down 5%m
toggle volume mutej
previous trackl
next tracku
back 10 secondso
forward 10 secondsv
show / hide visualizerr
repaint the screen.
toggle repeat mode (off/track/list),
(un)shuffle play queueCTRL+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 viewn
show play queuef
show album/artist/genre searcht
show track search1
browse by artist2
browse by album3
browse by genrex
jump to playing artist/album/genre in browse viewSPACE
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 refined. you can see what they look like here: https://github.com/clangen/musikcube/tree/master/src/core/sdk
dependencies
musikcube would not be possible without the following excellent free, open source, and non-free (in the case of macOS and win32 APIs) projects and libraries:
core:
ui:
decoders:
outputs:
metadata-related:
networking: