Skip to content

Getting started

daviderovell0 edited this page May 5, 2021 · 13 revisions

Pre-requisites

bzzzbz is a self-contained video-synthesizer prototype that runs on a Raspberry Pi 3B+ with additional custom hardware to interface with external inputs. All the code and the information in this repository is adapted for this specific prototype. Check out the hardware section to build your own "box"!

However, some of the functionalities should also work on most Linux distributions (tested on Ubuntu and Linux Mint) without the need for the hardware. You can:

  • Run simple visuals without any control or audio input.
  • Run audio-reactive visuals with you computer microphone. bzzzbz uses JACK audio server that is cross platform and uses the first input port that it "finds" on the system. This is however system dependent and you might have to modify the audio processing code to pick the right input (for example, your computer might be connected to an audio interface and have multiple input channels). On most cases, it should pick up the microphone.

All the examples and guides in this documentation will refer to the bzzzbz prototype, with commands issued from the Raspberry Pi shell. Everything that can be also implemented on a Linux machine will be explicitly specified with the following block quote at the beginning of the section:

Desktop compatible

Installation

Environment set-up

Desktop compatible

Clone this repository in your local environment:

foo@bar:~$ git clone https://github.com/daviderovell0/bzzzbz
foo@bar:~$ cd bzzzbz

A number of packages need to be installed prior installation. The quickest way is through the dependencies.sh script in the repository (make sure to delete raspberrypi-kernel-headers if running on desktop). Make sure to update the package manager first:

foo@bar:~$ sudo apt-get update
foo@bar:~$ sudo sh dependencies.sh

If you want to install package dependencies manually, the list below provides information on the external packages:

  • OpenGL libraries for graphics generation: freeglut3, freeglut3-dev, libgl1-mesa-dev, mesa-common-dev, libglew-dev, raspberrypi-kernel-headers
  • JACK audio for audio acquisition and processing: jackd2, libjack-jackd2-dev
  • Xorg windowing system to interface with the display hardware: xorg
  • Unit test framework: libboost-all-dev Add the FFT library to your system (original repo: kiss-fft, credits to Dr. Bernd Porr):
foo@bar:~$ cd src/kiss-fft
foo@bar:~$ cmake . 
foo@bar:~$ make
foo@bar:~$ sudo make install

Raspberry Pi only: enable GPU accelerated openGL graphics

Run the following:

foo@bar:~$ sudo raspi-config

Navigate to Advanced Options - GL Driver - GL (Fake KMS), select Enable. In the same way, make sure that the SPI interface is also enabled. Reboot to apply changes.


You are now ready to bzzzbz! Check out the user guide to run and play with visuals.