Skip to content

dozencrows/pithesiser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction
------------
The Pithesiser is a prototype software synthesiser written for the Raspberry Pi. It provides basic emulation of analogue synthesis.

It is Pi-specific in that it uses some of the Pi libraries for rendering a simple UI via OpenVG, and that it provides support for the PiGlow. Other than that, the majority of the code is written in C, with some inner loop ARM assembly targeted at ARMv6.

For instructions on how to build, see BUILD-HOWTO.

For information on how to configure the Pithesiser, see comments in the config files inside the resources folder. For details on planned work, inner workings, problems encountered and solutions tried, see docs/notes.txt.

For more information, see my blog on this project at http://pithesiser.wordpress.com/

WARNING: this is very much a prototype, so documentation is thin on the ground.

Hardware
--------
In addition to a Pi, you'll need some sort of MIDI controller that can generate note and continuous controller events. I have an Akai LPK-25 mini keyboard, Behringer BCR-2000 controller and a Novation Launchpad all plugged into my Pi.

It is also recommended that you use a USB audio device rather than the Pi's built-in audio - as the latter isn't great quality, and there have been driver issues.

USB audio devices known to work are the Behringer U-Control UCA222 and this kind of cheap one: http://www.amazon.co.uk/dp/B0069L9PZA/ref=pe_217191_31005151_dp_1.

A powered USB hub is probably a very good idea also, e.g. the Pi hub - http://shop.pimoroni.com/products/pihub.

Configuration
-------------
The Pithesiser uses ALSA for audio output; it is recommended that you install the 'alsa-utils' package to help you configure it.

Configuration files are in the resources folder. Relevant files are:
* devices.cfg: 		config of audio output and MIDI input.
* matrix.cfg:  		config of the modulation matrix control.
* bcr2000.cfg: 		config file for Behringer BCR 2000 MIDI controller.
* synth.cfg:   		config file for Korg NanoControl (out of date).
* code_timing.cfg:	config file used to drive timing tests.

The Pithesiser also uses two files to save on exit and restore state on startup:
* .pithesiser.cfg:		binary file used to save synth controller settings.
* .pithesiser.patch:	text file used to save settings; currently has the modulation matrix state.

State saving is gradually being moved out of the binary file into the text file.

Running the Pithesiser
----------------------
The Pithesiser is run by typing "pithesiser X.cfg" where X.cfg is the configuration file to load. 

Note, if you have the PiGlow feature enabled, make sure you have set up gpio via "gpio load i2c 400" first.

Typically this is a file for a specific MIDI controller or controllers to use, which includes devices.cfg and matrix.cfg then goes on to define the mapping of MIDI control codes to the synth's controllers (see bcr2000.cfg).

On launch, the Pithesiser will display a basic UI on your Pi, showing the envelopes, a few basic settings (volume and waveform) and an oscilloscope display of the current waveform output.

To exit the Pithesiser, activate the MIDI control you have bound to the "exit" controller.

About

Prototype software synth for Raspberry Pi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages