[linux-audio-dev] Smurf Sound Font Editor stuff

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] Smurf Sound Font Editor stuff
From: Josh Green (jgreen_AT_users.sourceforge.net)
Date: Wed Mar 27 2002 - 06:46:46 EET


Hello again to all Linux Audio Developers. I just subscribed to the list
again after a while of being off of it, I've been busy traveling and
working on projects :)
Its been a while since I got back from the last LinuxTag and ever since
then I have been working diligently on overhauling the Smurf Sound Font
Editor.

Quite a lot has changed and I'm finding myself wishing I had some help,
or at least others actively interested in the same project :)

The first thing that I have done is rename the project. It is now called
"Swami" which stands for "Sample Waveforms and Audio for Magical
Instruments". This name change has helped give the project new vigor and
fits better with the overall purpose, to create Magical Instruments :)
It also avoids any possible copyright infringement with the Smurf theme,
which I felt might come into play if I allow monetary donations for my
part in the development. Would be nice to not have to worry so much
about how I'm going to get money :)

Swami consists of an entirely re-worked architecture that I am finding
to be much easier to work with. Here is an overview of the current
architecture:

- libsoundfont: A stand alone soundfont based library for loading/saving
and manipulating sound fonts. Provides an object oriented interface to
sound font objects with "inheritance" from a common type and reference
counting a la GTK.

- libswami: A GObject based library to handle all non GUI related Swami
operations. Including:
  1. Wrapper functions for libsoundfont to provide a generic
     parameter interface as well as signals for changes that occur.
  2. Driver objects for wavetable (only iiwusynth working
     currently, hey thats all we need :), PCM (not yet actually)
     and MIDI devices (uhh currently just iiwusynth).
  3. A plugin architecture for drivers and add on functionality
     (actually not yet).

- swami GUI: The GTK based GUI that is also object oriented, but
  based on GtkObject instead of GObject.

- iiwusynth support is currently working and will be the
  default and most commonly used wavetable device and will give us
  software wavetable synthesis. This will solve a lot of problems
  encountered with hardware based wavetable devices,
  such as poor Linux support, complications in routing synth audio
  stream to other programs, user space versus kernel space code,
  and make it easier to get modulators and other real time effects!

All the source is C code and rather heavily commented in doxygen style
(at least for libsoundfont. libswami and the GUI still have some
documentation holes).

I have big plans for this project and I'm beginning to realize that I
can in no way accomplish this all myself, and besides I started this
project to be able to meet other people with common interests: composing
computer music, Linux and programming. Here is what I see in Swami's
future:

- Make libsoundfont more generic (perhaps call it libmidipatch) and
  add support for other formats (DLS, Gravis, etc)

- A database like protocol for synchronizing instrument patches between
  clients (across internet links, between programs, etc). To aid in
  shared sound font editing sessions, just add MIDI and you have
  internet based jamming in semi-realtime :) Also could make sound
  font diff files.

- Python scripting support to allow scripting of editing tasks.

- Neat features like an FFT based auto sample tuning plugin, an
  open sound font compression standard based on FLAC, a waveform
  modeler (segments of lines, curves and free hand to create and edit a
  wave form), SwamiJam server for jamming with a/some friend(s)..

- Web CGI based sound font databases. Query for instruments by name and
  select which ones you want, custom sound font created on the fly.

If you have read this far and are interested in being a part of this
project I would really appreciate the help. Examples of things I could
use help with: API design, Python wrapper, web site, C programming,
alpha/beta testers, etc.

http://swami.sourceforge.net
Subscribe to the sourceforge swami-devel list. Just follow the
SourceForge Swami project summary link.

Cheers!
        Josh Green


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Mar 27 2002 - 06:42:23 EET