Architecture

From Buzztard

Jump to: navigation, search

Image:Buzztard-arch.png

[edit] Components

Currently the project consists of these source modules:

  • buzztard - the applications and their shared libraries
  • bml - the buzz machine loader (wrapper), also provides a sanitized API to the buzz-machines
  • bsl - the buzz song loader
  • gst-buzztard - experimental code, that might go into [gstreamer]
    (API docs) and plugins like gstbml, simsynth, ...

This reflects the goal, to have a stand-alone application and sub-modules for buzz migration. The buzztard applications will not require the bml, gstbml and bsl components.

[edit] Buzztard modules

The buzztard module has several components as well:

  • libbuzztard-core - all the gobjects to model a song, to construct the gstreamer network, to handle configuration data and to use song im/export
    (API docs)
  • libbuzztard-ic - interaction controller support
    (API docs)
  • buzztard-cmd - a commandline tool for playing, showing song info, etc.
    (API docs)
  • buzztard-edit - the graphical editor application
    (API docs)

In the future we might have more apps based on the framework. On our list currently are

  • buzztard-live - a live playback application
  • buzztard-session - a live sequencing / composing application
  • buzztard-bin - a gstreamer bin element + a typefinder, so that buzztard songs can be played in playbin based applications

We might also add more libs. Once we have more GUI apps, we should move alls gtk-widgets to a separate lib (libbt-ui).

[edit] Technology

Buzztard is using the glib GObject framework (a good introduction to GObject). GStreamer is the media framework we use.

The graphical editor application is using the gtk+ toolkit only, and GnomeCanvas (no gnome dependencies), so that porting to other platforms is easier (see Portability). We use some custom widgets like GtkVUMeter, the patterneditor and waveform view.

Personal tools
collaboration

SourceForge Logo

GStreamer Logo

Become a Friend of GNOME

Linux Sound Logo

MediaWiki

Valgrind

GNU Library Public Licence

GNU Free Documentation License 1.2