File YampaSynth.spec of Package YampaSynth

#
# spec file for package YampaSynth
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           YampaSynth
Version:        0.2
Release:        0
Summary:        Software synthesizer
License:        BSD-3-Clause
Group:          Development/Libraries/Haskell
URL:            https://hackage.haskell.org/package/%{name}
Source0:        https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz
BuildRequires:  ghc-Cabal-devel
BuildRequires:  ghc-HCodecs-devel
BuildRequires:  ghc-Yampa-devel
BuildRequires:  ghc-array-devel
BuildRequires:  ghc-bytestring-devel
BuildRequires:  ghc-containers-devel
BuildRequires:  ghc-rpm-macros

%description
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:

* "yampasynth-wav" is an application which synthesizes a MIDI music and writes
result into a WAVE audio file.

* "yampasynth-openal" is an application which synthesizes a 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.

* "yampasynth-gtk" is an application with the simple graphical user interface
which allows you to play a music with various instruments in real-time using
the 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.

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
(<http://www.cs.nott.ac.uk/~ggg/publications/padl2008.pdf>), 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.

%prep
%setup -q

%build
%ghc_bin_build

%install
%ghc_bin_install

%files
%doc LICENSE
%{_bindir}/yampasynth-wav
%dir %{_datadir}/%{name}-%{version}
%dir %{_datadir}/%{name}-%{version}/gui
%{_datadir}/%{name}-%{version}/gui/YampaSynth.glade
%{_datadir}/%{name}-%{version}/README

%changelog
openSUSE Build Service is sponsored by