Architecture

From Buzztard

Jump to: navigation, search

Image:Buzztard-arch.png

[edit] Components

Currently the project consists of these modules:

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

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:

  • libbt-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)
  • libbt-ic - interaction controller support
    (API docs)
  • bt-cmd - a commandline tool for playing, showing song info, etc.
    (API docs)
  • bt-edit - the graphical editor application
    (API docs)

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

  • bt-live - a live playback application
  • bt-session - a live sequencing / composing application
  • bt-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, GtkVUMeter. We still need a good Waveform widget (for the wavetable view).

Personal tools
collaboration

SourceForge Logo

GStreamer Logo

Linux Sound Logo

MediaWiki

Valgrind

GNU Library Public Licence

GNU Free Documentation License 1.2