The YampaSynth package

[Tags: bsd3]

YampaSynth is a software synthesizer implemented in Yampa, domain specific language embedded in Haskell. It contains a little framework of sound generating and sound shaping modules (e.g. oscillator, amplifier, mixer, envelope generator, filter, etc.) and example applications:

Software synthesizer uses the MIDI standard as a music description and the SoundFont standard as an instrument description.

Implementation is based on the paper Switched-on Yampa: Declarative Programming of Modular Synthesizers, by George Giorgidze and Henrik Nilsson (, In Proceedings of 10th International Symposium on Practical Aspects of Declarative Languages, San Francisco, CA, USA, January 7-8, 2008.

This is mainly a proof of concept, but already useful to some extent.


Versions0.0.1, 0.0.2, 0.1, 0.1.1, 0.1.2, 0.2
Change logNone available
Dependenciesarray, base, bytestring, containers, glade, gtk, HCodecs, OpenAL, Yampa
Copyright(c) 2007-2008 George Giorgidze and Henrik Nilsson
AuthorGeorge Giorgidze and Henrik Nilsson
MaintainerGeorge Giorgidze (GGG at CS dot NOTT dot AC dot UK)
CategorySound, Music
Home page
Executablesyampasynth-gtk, yampasynth-openal, yampasynth-wav
UploadedMon Apr 7 05:42:02 UTC 2008 by GeorgeGiorgidze
DistributionsLTSHaskell:0.2, NixOS:0.2, Stackage:0.2
Downloads1208 total (79 in last 30 days)
StatusDocs not available [build log]
All reported builds failed as of 2015-05-22 [all 2 reports]


wavBuilds yampasynth-wav executable which synthesizes a MIDI music and writes result into a WAVE audio file.Enabled
openalBuilds yampasynth-openal executable which synthesizes MIDI music and sends audio data in real-time to a sound card. We use Haskell binding of OpenAL library as an interface to audio hardware.Enabled
gtkBuilds yampasynth-gtk executable with simple graphical user interface which allows you to play music with various instruments in real-time using keyboard of your computer. We use Haskell binding of GTK library for GUI programming and Haskell binding of OpenAL library as an interface to audio hardware.Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees