Simple audio synthesis library
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
soundio-src
src
README.md
TODO
ada_synth_lib.gpr
ada_synth_lib_soundio.gpr
gnat.adc
setup.makefile

README.md

Ada synth lib

Ada synth lib is a very simple synthethizer library with a mostly recreative purpose. The design goal is to make a library from which you can make synthesis musical instruments that can run on bareboard devices such as the STM32F4 board or the Rpi.

Here is a small demo of the library (youtube video)

Setup

You'll need AdaCore's latest GPL release, that you can get through Adacore libre site, or you can use the FSF compiler available on most Linux distributions. It has been tested to work with Debian Stable and Ubuntu 15.04, with the ada_synth_lib_soundio.gpr project. The regular project file uses Runtime attribute, which is not yet supported by the gprbuild FSF version.

Preparing for the soundio build

You need to checkout the ada-soundio repo at the root of ada-synth-lib:

git clone https://github.com/raph-amiard/ada-soundio/

This repo contains a script that will build libsoundio and ada-soundio at the same time, that you can use if you have bash.

cd ada-soundio && ./build.script && cd -

Build

For native:

$ gprbuild -p ada_synth_lib.gpr

For native with libsoundio support:

$ gprbuild -p ada_synth_lib_soundio.gpr

For bareboard/sfp:

$ gprbuild -p -f -Xtarget=bareboard

If you want to build the examples, run

$ gprbuild -p examples/asl_examples.gpr

Producing sound from the examples will require you to have some command line program that you can pipe sound into and that will play it on your speakers. Here is how you'd do it with aplay:

$ examples/obj/audio | aplay -f S16_LE -c1 -r44100