flipotronics.com electronic music instruments

Step 1 - Build a box

Wood and color: The Homedepot
Eurorack brackets 19 inch Synthrotek
Eurorack specifications: module height: 3U = 128mm, width: 84HP = 426.72 mm (1HP = 5.08 mm)
CAD software: OpenSCAD
Model: Flipotronics_A1_box.scad
Keyboard: Akai LPK25

Wood and Eurorack brackets

Painted

OpenSCAD Model

Synthrotek Euro Brackets

Open Source - DIY - Maker - Builder - Open Hardware

DIY Synthesizer - Digital - Analog - Modular


Alsa - Jack - FluidSynth - Curtis CEM3340 - Raspberry Pi - Linux Preempt_RT Kernel - OTA updates - Community

Step 2 - OS for Raspberry Pi 3 Model B+

Base image: 2019-04-08-raspbian-stretch.img raspberrypi.org

32Gb (or 64Gb) Micro SD - Use balenaEtcher to transfer to Micro SD

Setup:

run raspi-config in a terminal and update rasp-config to latest version.

use rapsi-config and setup:

Encoding: America UTF-8

Timezone: Los Angeles

enable VNC, SPI, I2C

sudo rpi-update -y

sudo reboot

sudo apt-get update -y

sudo apt-get upgrade -y

sudo reboot

!!

To achieve low audio latency build a PREEMPT kernel:

Use PREEMPT_RT patched kernel for Raspberry Pi Model 3 B+

Raspberry Pi
wiki.linuxaudio.org/wiki/raspberrypi
AlsaProject
Jack Audio Connection Kit
real-time-linux-on Raspberry Pi
Install Preempt-RT Kernel
Cross Compiling For Raspbian
rt-kernel.tgz

Step 3 - TFT Display

PiScreen2 by ozzmaker.com/

Install TFT

cd ~

wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/adafruit-pitft.sh

chmod +x adafruit-pitft.sh

sudo ./adafruit-pitft.sh

Use option 4 (480) and 1 for Landscape

Make the TFT mirror the HDMI display

sudo nano /boot/config.txt

Change to: dtoverlay=piscreen2r

reboot PI, the PI desktop should appear on the TFT and on a screen connected to HDMI.


For help visit these sites:

ozzmaker

adafruit

Step 4 - Python Libraries

PyGame

pygame.org

pre-installed in Raspberrian Stretch


PyAudio

people.csail.mit.edu/hubert/pyaudio

sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev -y

sudo apt-get install python3-pip

pip3 install PyAudio


PyMidi

github.com/mik3y/pymidi

pip3 install PyMidi


PyFluidSynth

git clone https://github.com/nwhitehead/pyfluidsynth

cd pyfluidsynth

sudo python3 setup.py install


Adafruit GPIO Expander

www.adafruit.com/product/4132

sudo pip3 install adafruit-circuitpython-mcp230xx


Adafruit 7 Segment Display

www.adafruit.com/product/4132

sudo apt-get install -y git build-essential python-dev python-smbus python-imaging python-pip python-pil

git clone https://github.com/adafruit/Adafruit_Python_LED_Backpack.git

cd Adafruit_Python_LED_Backpack

sudo python3 setup.py install

JackD

jackaudio.org

sudo apt-get install jack-tools fftw3 qjackctl

QSynth

qsynth.sourceforge.io

sudo apt-get install fluidsynth -y

sudo apt-get install qsynth -y

sudo apt-get install fluid-soundfont-gm -y

sudo apt-get install fluid-soundfont-gs -y

flipotronics dependencies

sudo apt-get install build-essential -y

sudo apt-get install nginx -y

sudo pip3 install flask uwsgi -y

sudo apt-get install vmpk -y

sudo apt-get install patchage -y

pip3 install cython

pip3 install python-rtmidi

sudo python3 -m pip install coverage

set CONF_SWAPSIZE=0 in /etc/dphys-swapfile

pip3 install wheel

pip3 install uwsgi flask

sudo apt-get install mariadb-server

pip3 install mysql-connector-python

ttymidi

p>

sudo apt-get install libasound2-dev

wget http://www.varal.org/ttymidi/ttymidi.tar.gz

tar -zxvf ttymidi.tar.gz

cd ttymidi/

add -pthread to the Makefile as in: gcc src/ttymidi.c -o ttymidi -lasound -pthread

make

sudo make install

monitor midi messages: ttymidi -s /dev/serial0 -b 38400 -v

aconnect -iol // find the ttymidi iand the fluidsynth id

aconnect 128:0 129:0

Step 5 Backup

Backup the Raspberry PI micro SD card:

Boot Partition Backup

On Mac: Open Disk Utility from Applications/Utilities and create image from Boot.

Full Backup

On Mac: brew install pv dialog

in a terminal run diskutil list. Find the micro SD card, for example: /dev/disk2

sudo dd if=/dev/disk2 bs=1m of=~/flipotronics.iso

monitor in a second terminal: while pgrep ^dd; do sudo pkill -INFO dd; sleep 20; done

To restore rename to iso and use balenaEtcher to write a micro SD card.

Step 6 - Eurorack Power Supply

Eurorack specification: +12V, -12V, +5V

Design by benguru: Eurorack Synthesizer Power Supply
PCB PCBWay
Schema: PowerSupply.pdf
Gerber files: gerber.zip
Mouser card: MouserCart.pdf

Step 5 - Midi

Open Source - DIY - Maker - Builder - Open Hardware

DIY Synthesizer - Digital - Analog - Modular


Alsa - Jack - FluidSynth - Curtis CEM3340 - Raspberry Pi - Linux Preempt_RT Kernel - OTA updates - Community

flipotronics synth A1 architecture

flipotronics synth A1 architecture

flipotronics synth A1 software architecture

flipotronics synth A1 software architecture

Debug Commands

Check if I2C is enabled:

ls /dev/*i2c* should show: /dev/i2c-1

List I2C devices:

i2cdetect -y 1

Redis:

Get all Redis keys: redis-cli keys "*"

Get Redis value [example prog]: redis-cli get prog

Set Redis value [example prog]: redis-cli set prog 15


roadmap:


hardware

Power Supply - GPIO Expander - Push Buttons - Rotary Encoders - TFT Display - 7Segement Display
Midi Optocopler - DAC audio - DAC CV - ADC - Headhphone Amp


eurorack modules

Curtis CEM 3340 VCO - VCF - VCA - LFO


software synth

FluidSynth - Hydrogen - Dexed - Guitarix - Synth1 - Bristol - setBfree


patch management

fliptronics Synth Archive Manager - NodeJS - React - Redis - MongoDB - Docker - Cloud Connector


online

OSCTouch remote - Intranet admin screens - OTA update - Community Portal - GCP Firebase


Repositories
Raspberry PI B+ Pins