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. 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.

Install

The following command install's development dependencies on debian GNU/Linux and related.

apt-get install make gcc autoconf automake pkg-config libgtk2.0-dev libinstpatch-dev libsndfile-dev libsamplerate-dev libxml2-dev libgmp-dev ladspa-sdk dssi-dev lv2-dev oss4-dev libasound2-dev libjack-jackd2-dev uuid-dev libcunit1-dev

To compile Advanced Gtk+ Sequencer issue the following in the source directory:

./configure --prefix=/usr
make
make install

Using with Systemd or PulseAudio

Most annoying is when don't get desired performance. To maximise throughput you might be interestend in running GSequencer using systemd-run and disable accounting:

systemd-run -p CPUAccounting=false -p MemoryAccounting=false -p TasksAccounting=false -p IOAccounting=false -p BlockIOAccounting=false --scope gsequencer

PulseAudio may have it's disadvantages, too. It's alsa emulation should work thought but to disable pulseaudio temporally invoke.

pasuspender -- gsequencer

ALSA issues

You probably want to modify preallocated buffer size of your audio device. Card0 is your very first soundcard within your system and pcm0p is first playback device. This one-liner modifies the preallocated buffer size by echoeing 8192 to the virtual file prealloc.

echo 8192 > /proc/asound/card0/pcm0p/sub0/prealloc

Realtime-Kernel with full dyn-ticks and performance governor

It is recommended to use a realtime kernel in order to get most out of GSequencer. Below I show you how to compile linux-4.6.5-rt10 from source code. But first install some build dependencies:

apt-get install cpio zlib1g-dev libssl-dev libncurses-dev

Now we are ready to download kernel source, patch it and run `make menuconfig` once.

cd /usr/src
wget -c http://www.nongnu.org/gsequencer/config-4.6.5-rt10      
wget -c https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.5.tar.gz
wget -c https://www.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.5-rt10.patch.gz
gunzip patch-4.6.5-rt10.patch.gz
tar -xzf linux-4.6.5.tar.gz
cd linux-4.6.5
cat ../patch-4.6.5-rt10.patch | patch -p1
make mrproper

Copy the modular kernel configuration in place.

cp -v ../config-4.6.5-rt10 .config
make menuconfig

Alternatively you might want to get an optimized kernel configuration (recommended) instead above. Note you have to enable real-time configuration yourself.

make localmodconfig
make menuconfig

We have patched and a working kernel configuration so far. We are able to build the kernel, yet. Then we are ready build the debian package. Alternatively you may consider this build procedure using kernel-package to do a debian package.

The mkinitramfs script can be optained from beyond linux from scratch

export MAKEFLAGS="-j 5"
make
make modules_install
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.6.5-rt10
cp .config /boot/config-4.6.5-rt10
cp System.map /boot/System.map-4.6.5-rt10
cd /boot
mkinitramfs 4.6.5-rt10

Congratulations! You're done and ready to reboot. Note might be you have to update your bootloader.

AgsConfig

Here's an example how actual config might look like. Note it changes from time to time and should be manually updated. You may use the preferences dialog to do so.

[generic]
autosave-thread=false
simple-file=true
disable-feature=experimental
segmentation=4/4

[thread]
model=super-threaded
super-threaded-scope=channel
lock-global=ags-thread
lock-parent=ags-recycling-thread

[recall]
auto-sense=true

[soundcard-0]
backend=jack
samplerate=48000
buffer-size=512
pcm-channels=2
device=ags-jack-devout-0
format=16      

Last modified: Mon Jun 17:56:09 UTC 2017 by joelkraehemann