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