GSequencer
Advanced Gtk+ Sequencer ist der generische Name eines Audio-Sequencer Framework ursprünglich entwickelt für GNU/Linux und dessen Ein-/Ausgabe-Bibliothek ALSA. Mittlerweilen enthält es Ausgabe-Schnittstellen für Open Sound System v4.0 und JACK Audio Connection Kit. GSequencer ist das Programm von dem folgende Bibliotheken abgeleited sind:
- libags.so
- libags_thread.so
- libags_server.so
- libags_audio.so
- libags_gui.so
- libgsequencer.so
Es beinhalted einen integrierten Notationseditor und Patterneditor, die Copy & Paste unterstützen und zudem Atk Schnittstellen implementieren. Mit GSequencer kann man mittels der GUI Netzwerke von Drum-, Matrix-Sequencern, Soundfont2-Players, Softsynths, Mixern und einem Ausgabe-Panels erstellen. Unterstützt werden offene Pluginformate wie LADSPA, DSSI und Lv2. Wobei für Synthesizer-Plugins der Notationseditor zur Verfügung steht. GSequencer bietet einen Automationseditor, mit dem man Ports automatisieren kann.
Ein weiteres Programm das mit GSequencer packetiert wird, ist midi2xml, das forwiegend von dem MIDI parser, der in libags_audio vorhanden ist, abhängt. Die Bibliotheken sind in einer Objekt-Orientierten Art programmiert. Dabei baut es auf dem GObject-Typsystem auf und verirbt forwiegend von GObject und erstellt Composite-Widgets für die GUI.
libags, libags_thread und libags_server[edit | edit source]
Diese Bibliotheken beinhalten den AgsApplicationContext und AgsThreadApplicationContext, welche die Grundlage für weitere Kontizen bilden. Funktionalität wird mittels Interfaces hinzugefügt und abgerufen. Diese lösen Schnittstellen für übliche Probleme, Parallelismus mittels AgsThread und Synchronisation auf das ::clock Signal, als auch mit dem AgsMainLoop Interface. Der Multi-Threaded Baum wird 1000 mal pro Sekunde synchronisiert, wobei das AgsMainLoop Interface vom Toplevel-Thread implementiert wird und den Takt angiebt. Persistierung kann mittels XML und XPath gelöst werden, dafür gibt es das AgsFile Objekt.
libags_audio[edit | edit source]
Beinhaltet die Audio Sequencer und Soundkarten Schnittstelle für die Audio-Baumstruktur, geformt durch AgsAudio, AgsChannel, AgsRecycling und AgsAudioSignal. Advanced Gtk+ Sequencer unterscheidet zwischen 3 Geltungsbereichen für paralleles Verarbeiten der Baumstruktur: Playback, Sequencer und Notation. Wobei es für jene jeweils eine AgsRecallID für playback oder recall gibt, die den AgsRecyclingContext bilden. Die AgsRecallID unterscheidet dies, um eine verfeinerte Kontrolle über die Rekursion zu erhalten.
libgsequencer[edit | edit source]
Ist die private Bibliothek für GSequencer.