Skip to content

Latest commit

 

History

History
133 lines (105 loc) · 3.62 KB

INSTALL.md

File metadata and controls

133 lines (105 loc) · 3.62 KB

Overview

The suggested way to get Blitzloop running is to install it in a virtualenv and use and your operating system's package manager for libraries. If you want to do things your own way, here's a nonexhaustive list of dependencies:

  • Core:
    • Python 3
  • Libs and headers (for _audio.pyx):
    • JACK
  • Python modules/bindings:
    • Pillow
    • bottle
    • freetype-py
    • numpy
    • paste
    • pympv
    • pyopengl
  • Libraries
    • libfreetype
    • libjack
    • libmpv
    • librubberband

Installation

General instructions

First, install the required OS dependencies:

  • Python 3
  • JACK
  • freetype
  • OpenGL

Next, install libmpv. You need mpv built with librubberband support. This will pull in additional dependencies. If your platform has version 0.21.0 or later with rubberband compiled in, you may use that. Otherwise, compile it from source:

git clone https://github.com/mpv-player/mpv
cd mpv
./bootstrap.py
./waf --enable-libmpv-shared configure
./waf build
sudo ./waf install

Finally, make a virtualenv and install BlitzLoop:

python3 -m venv blitz
source blitz/bin/activate
pip install 'git+git://github.com/marcan/blitzloop.git'

Platform specific guides

Please report back any missing dependencies you may encounter while following these guides.

Arch Linux

Install the blitzloop-git package from AUR.

Debian

NOTE: not tested recently, please report back feedback and any problems/missing deps.

sudo apt-get install libjack-jackd2-dev librubberband-dev libfreetype6-dev libgl1-mesa-dev libavfilter-dev python3-dev
git clone https://github.com/mpv-player/mpv
cd mpv
./bootstrap.py
./waf --enable-libmpv-shared configure
./waf build
sudo ./waf install
python3 -m venv blitz
source blitz/bin/activate
pip install 'git+git://github.com/marcan/blitzloop.git'

Gentoo Linux

Under Gentoo, this should work (note: euse is in gentoolkit):

sudo euse -p media-video/mpv libmpv rubberband
sudo emerge -avN --noreplace virtual/jack media-libs/ffmpegsource media-libs/freetype media-video/mpv
python3 -m venv blitz
source blitz/bin/activate
pip install 'git+git://github.com/marcan/blitzloop.git'

macOS

Requires Xcode which can be installed by xcode-select --install or through the App Store. Remove older versions before updating. Also requires Homebrew.

Use brew doctor and brew update to update before running the commands below. If you have conflicting Python versions after installing Python 3: brew link --overwrite python3

brew install python3 jack jpeg rubberband libass freetype
brew install mpv --with-rubberband --with-jack
PIP_FLAGS=(--global-option=build_ext --global-option=-I$(brew --prefix)/include --global-option=-L$(brew --prefix)/lib)
python3 -m venv blitz
source blitz/bin/activate
pip install 'git+git://github.com/marcan/blitzloop.git' ${PIP_FLAGS}

Note: Non-empty PIP_FLAGS disables usage of wheels in pip, and makes the whole process slower. You might save time running this command twice, once without PIP_FLAGS to install all dependencies from wheels, and once with PIP_FLAGS to finish the installation - it's only blitzloop itself that needs these flags.

To run blitzloop without a dependency on JACK: blitzloop --no-audioengine --mpv-ao=coreaudio

Usage

Add songs

Stories tell about ancient caches of existing blitzloop songs. Find one, or make your own songs. By default, blitzloop expects songs in $XDG_DATA_HOME/blitzloop/songs (generally ~/.local/share/blitzloop/songs).

Sing!

source blitz/bin/activate
blitzloop -fs

Visit port 10111 on your computer in a web browser, and sing!