2016-05-30 08:26:08 +00:00
# musikcube
2016-07-09 08:40:31 +00:00
a cross-platform audio engine and player written in C++.
2016-05-30 08:26:08 +00:00
# musikbox
2016-09-20 20:30:49 +00:00
a curses frontend to musikcube.
2016-05-30 08:26:43 +00:00
2016-06-10 05:54:39 +00:00
musicbox compiles and runs easily on Windows, OSX and Linux.
2016-05-30 08:32:37 +00:00
2016-05-31 04:33:58 +00:00
it looks something like this on windows:
2016-08-10 07:02:39 +00:00
![windows screenshot ](https://raw.githubusercontent.com/clangen/clangen-projects-static/master/musikcube/screenshots/windows.png )
2016-05-31 04:33:58 +00:00
and this on osx:
2016-08-10 07:02:39 +00:00
![osx screenshot ](https://raw.githubusercontent.com/clangen/clangen-projects-static/master/musikcube/screenshots/osx.png )
2016-05-31 04:33:58 +00:00
2016-06-27 02:18:26 +00:00
and linux:
2016-08-10 07:02:39 +00:00
![linux screenshot ](https://raw.githubusercontent.com/clangen/clangen-projects-static/master/musikcube/screenshots/linux.png )
2016-06-27 02:18:26 +00:00
2016-05-31 01:36:41 +00:00
# compiling
## windows
2016-11-25 21:11:31 +00:00
- grab the [Visual Studio 2017 Community Edition ](https://www.visualstudio.com/vs/visual-studio-2017-rc/ ) and install the C++ compiler and tools. the 32-bit compiler is currently used.
2016-05-31 01:36:41 +00:00
- clone the musikcube sources: `git clone https://github.com/clangen/musikcube.git`
2016-05-31 05:17:23 +00:00
- install the [32 bit version of boost 1.60 ](https://sourceforge.net/projects/boost/files/boost-binaries/1.60.0/boost_1_60_0-msvc-14.0-32.exe/download ). 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.
2016-05-31 04:38:10 +00:00
- open `musikcube.sln` and build/run.
2016-05-31 01:36:41 +00:00
## mac
2016-05-31 04:38:54 +00:00
you'll need [homebrew ](http://brew.sh/ ) to install the required dependencies.
2016-05-31 01:36:41 +00:00
2016-08-28 20:16:09 +00:00
### automatic
2016-08-28 21:59:51 +00:00
- `brew tap clangen/musikbox`
- `brew install musikbox`
2016-08-28 20:16:09 +00:00
- `musikbox`
### manual
2016-11-06 06:41:14 +00:00
- `brew install cmake boost libogg libvorbis flac mpg123 faad2 fftw`
2016-05-31 01:36:41 +00:00
- `git clone https://github.com/clangen/musikcube.git`
- `cd musikcube`
- `cmake .`
- `make`
- `cd bin`
2016-05-31 03:09:38 +00:00
- `./musikbox`
2016-05-31 01:36:41 +00:00
2016-06-10 05:54:39 +00:00
## linux
2016-11-06 06:41:14 +00:00
- install the following libraries and their development packages: `cmake boost libfftw3 libogg vorbis flac mpg123 faad2 ncurses zlib asound`
2016-06-10 05:54:39 +00:00
- `git clone https://github.com/clangen/musikcube.git`
- `cd musikcube`
- `cmake .`
- `make`
2016-08-28 20:16:09 +00:00
- `sudo make install`
- `musikbox`
2016-06-10 05:54:39 +00:00
2016-05-31 04:45:13 +00:00
## keyboard shortcuts
2016-08-23 04:28:56 +00:00
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.
2016-05-31 04:45:13 +00:00
2016-06-24 05:22:26 +00:00
- `TAB` select next window
- `SHIFT+TAB` select previous window
2016-08-23 04:28:56 +00:00
- `~` switch to console view
- `a` switch to library view
- `s` switch to settings view
- `i` volume up 5%
- `k` volume down 5%
2016-11-20 05:41:43 +00:00
- `m` toggle volume mute
2016-08-23 04:28:56 +00:00
- `j` previous track
- `l` next track
- `u` back 10 seconds
- `o` forward 10 seconds
2016-11-09 00:10:24 +00:00
- `v` show / hide visualizer
2016-08-23 04:28:56 +00:00
- `r` repaint the screen
2016-09-20 19:17:15 +00:00
- `.` toggle repeat mode (off/track/list)
- `,` (un)shuffle play queue
2016-05-31 04:45:13 +00:00
- `CTRL+p` pause/resume (globally)
2016-06-25 18:40:24 +00:00
- `CTRL+x` stop (unload streams, free resources)
2016-05-31 04:45:13 +00:00
- `CTRL+d` quit
2016-06-04 05:29:01 +00:00
and a couple hotkeys that are specific to the library view:
2016-08-23 04:28:56 +00:00
- `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
2016-11-20 05:41:43 +00:00
- `x` jump to playing artist/album/genre in browse view
2016-06-04 05:29:01 +00:00
- `SPACE` pause/resume
2016-05-31 05:03:36 +00:00
*important*: on OSX make sure you configure your terminal emulator to treat your left alt key as "+Esc" or "Meta".
2016-05-30 08:32:37 +00:00
# sdk
2016-05-31 04:45:13 +00:00
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