Advanced Gtk+ Sequencer

Advanced GTK+ Sequencer is intended to use for music composition. It features a piano roll, as well a synth, matrix editor, drum machine, soundfont2 player, mixer and an output panel. More sequencers or effect processors can be provided by LADSPA, DSSI or Lv2 plugins.

It's designed to be highly configurable, you may add effects to its effect chain, add or remove audio channels/pads. You may set up a fully functional network of engines, therefore exists a link editor for linking audio lines. Configuring multiple soundcards and assign them to output panels. ALSA, OSS4 and JACK Audio Connection Kit output is supported by now.

save or open Advanced Gtk+ Sequencer XML files with XPath support
add or remove audio engines with adjustable audio channels and pads
link channels with property dialog
output panel, mixer, drum and matrix sequencer, soft synth and audio file player
piano roll with basic notation editing supporting copy & paste
adjustable BPM
LADSPA, DSSI and Lv2 support
export to WAV, FLAC, OGG, MP3, MP4, MKV and WEBM
multiple sinks/sources like JACK, ALSA, OSSv4, Pulseaudio, WASAPI and Core-Audio
automation editor with automation control and hide them to bypass
waveform editor with one track per audio channel
MIDI instrument playback
Standard MIDI File import/export
envelope editor per step sequencer or instrument
OSC content format support and listening server using IPv4/IPv6 over UDP/TCP
AGS-OSC-OVER-XMLRPC with libsoup-2.4 builtin XML login module for basic HTTP authentication
tic based system default max sync-rate upto 1000 Hz
allowing you to do either a deterministic (supporting intersections) or performance (rt-safe option) mode

Why Advanced Gtk+ Sequencer?

It is free as in freedom. GNU GPLv3+ and GNU AGPLv3+ licensed, there are various documentation manuals available in Docbook XML format GNU FDL-1.3 without invariant sections. Like:

It is a multi-purpose framework for audio processing. It provides various routines to solve common problems. Like multi-threaded synchronizing tree to a given rate in Herz. Running tasks in a thread-safe context with complete silence within tree. An exception would be worker threads which may run completely asynchronous.

Providing an abstract XMLRPC server allowing you to basic HTTP authentication by XML backend and configuration files.

The audio tree structure has got a unique nested tree, to shorten audio data access through channels and audio objects.

There data structures available for musical notation representation:

And the same for automating audio ports of audio processors recalls:

An experimental MIDI structure:

Further it contains utility functions to handle MIDI messages or SMF Files:

#include <ags/audio/midi/*.h>

An OSC server to listen OSC Content Format SLIP encoded over IPv4/IPv6 and TCP/UDP. Or capsulated as XMLRPC server doing AGS-OSC-OVER-XMLRPC.

Some Gtk+-3.0 widgets like:

And finally the gsequencer and midi2xml binaries.

`gsequencer` is a highly modular UI application, providing 2 step sequencers:

Builtin samplers for Soundfont2 and SFZ audio containers:

Supporting free plugin formats like LADSPA, DSSI and Lv2, use it as AgsLineMember in common machines:

Or within a bridge:

Edit notes within piano roll, edit automation or wave form. All with accessibility interfaces.

`midi2xml` converts SMF files to XML.



Origins of Advanced Gtk+ Sequencer

During summer of 2005 I have decided to start a fresh source code tree based on prior attempts to do a sequencer application. I did a lot of C during college and first the project was hosted on freshmeat in 2003. It was known as AGM - A Gnu MusicMaker but the name was discarded later. In 2004 I decided to use AGS for Advanced Gtk+ Sequencer. Then it was published on using subversion in 2009 the first time as version control system. In 2013 I migrated to git and imported subversion history for this time the project was residing on Finally, I wanted to move to GNU savannah where it is located, now.

During my efforts to get into the Debian distributions repository the application got renamed to gsequencer as version 0.5.9. But AGS sustained within the library name libags, libags_audio and libags_gui as in version 0.7.62.

First major 1.0.0 release as of Fri Sep 29 23:11:23 2017.

Getting help

Best place getting help on GSequencer would be one of the mailing-lists on GNU Savannah.

Providing Feedback and Reporting Bugs

GSequencer-Devel mailing list is the right place for providing feedback or reporting bugs.

Contributing to Advanced Gtk+ Sequencer

A good place to start would be to introduce yourself on the development mailing list and sending a patch. Extending the test-suite of GSequencer is always welcome. GSequencer-Devel is the right place to do so. Read coding guide-lines.

Last modified: Tue Nov 22:57:32 UTC 2020 by joelkraehemann