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.
- Features:
- 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:
- User's handbook
- Developer's handbook
- OSC handbook
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.
- AgsAudio
- AgsChannel
- AgsRecycling
- AgsAudioSignal
There data structures available for musical notation representation:
- AgsNotation
- AgsNote
And the same for automating audio ports of audio processors recalls:
- AgsAutomation
- AgsAcceleration
An experimental MIDI structure:
- AgsMidi
- AgsTrack
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:
- AgsCartesian
- AgsPiano
- AgsRuler
- AgsLed
- AgsLedArray
- AgsIndicator
- AgsDial
And finally the gsequencer and midi2xml binaries.
`gsequencer` is a highly modular UI application, providing 2 step sequencers:
- AgsDrum
- AgsMatrix
Builtin samplers for Soundfont2 and SFZ audio containers:
- AgsFFPlayer
- AgsSampler
Supporting free plugin formats like LADSPA, DSSI and Lv2, use it as AgsLineMember in common machines:
- AgsMixer
Or within a bridge:
- AgsLadspaBridge
- AgsDssiBridge
- AgsLv2Bridge
Edit notes within piano roll, edit automation or wave form. All with accessibility interfaces.
`midi2xml` converts SMF files to XML.
----
Joël
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 sourceforge.net 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 github.com. 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
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.