Linux Audio Monthly Round-Up #7 - February 2011

Dear all,

More than a month overdue... It's getting busier at work (we're in the middle of a reorganization) and also I've spent quite some time on making music. And LAC2011 is coming closer, I'm going to do two workshops so I had to prepare my abstracts. Hope you have a nice read anyway, next time I'll try to publish the round-up a bit earlier (well, have to hurry up then already...).



PS. Thanks again to the LinuxMAOists!

1. Linux audio news
2. Music made with Linux
3. New versions, new projects

Linux audio news

January was the month of LV2 plug-ins, 6 new plug-ins were released: IR LV2, Foo YC-20, abGate and the So-synth-LV2 bundle with three softsynth LV2 plug-ins. IR LV2 caused the most commotion as this impulse response convolution reverb plug-in featured high on many wish-lists. No wonder as this plug-in makes working with convolution reverb so much easier. Foo-YC20 (a combo organ emulator) was already available as a standalone application but now you can also use it as a plug-in in your favorite DAW. Same for the So-synth-LV2 bundle. That bundle is most definitely worth a try, the SO-666 Feedback Drone plug-in alone got me isolated from reality for quite a while. abGate, a noise gate plug-in, on the other hand is a completely new plug-in.

Talking about drones, another drone synth saw the light this month: din. This one caused quite a stir, mainly because it uses a completely different approach compared to other softsynths available and also because for now it's a Linux only piece of software and apparently quite some users of other platforms would love to play around with this softsynth. But as din got 'discovered' in the beginning of February I will go into it more deeply in the next round-up. This also allows me to play around with it myself some more.

A big topic on the mailing lists this month was the release of OpenOctaveMidi2. I won't elaborate on that topic over here as basically everything's been said already.

Music made with Linux

Disclaimer: only properly licensed, easily available tracks, preferably in ogg format, will be discussed here. There's simply a lot of music made with Linux being released and I've imposed this rule upon myself to make it a bit easier to sift through all the releases.

Davy – Demo 0.3
A Jamendo album with 6 nice tracks that remind me a lot of Encre. Maybe it has something to do with the fact both Davy and Encre are French? Who knows. All in all, very, very enjoyable tracks.

Ouch, and that was it, maybe I imposed myself too strict rules? Well, January didn't see as much tracks as December so that's a cause too. Next time better.

New versions, new projects

January 1: SooperLooper 1.6.16
* Fixes several issues with the AudioUnit version and certain hosts.

January 1: Schism Tracker 20110101
* Fixed a MASSIVE problem with file saving code that destroyed any files it wrote! (because of the stupid distinction between binary and text files, argh!!)
* Fixed another tangentially related bug which stuffed increasing numbers of newlines in the config file when saving. As a side effect the config file will appear trashed in Notepad; just use something more competent (such as Wordpad) and it'll be fine.
* Default directory if you haven't saved your config is now "My Documents" rather than "Application Data". The config file / fonts / etc. are still in the same place.
* Packages are now bundled with a different sdl.dll, which should fix some strange bugs, such as producing "ding" noises when alt-keys are pressed

* The --diskwrite flag wasn't mentioned anywhere in the manpage. Now it is!
* Fixed "stacking up" on Ctrl-F2 dialog with multiple keypresses

January 2: So-synth-LV2 NEW!
* SO-666 Feedback Drone Synthesizer (
* SO-KL5 Piano Synthesizer (
* SO-404 Bassline Synthesizer (

January 5: QmidiArp 0.3.9
New Features
* Arpeggio pattern preset infrastructure
* Synchronized MIDI LFO modules added LFOs have calculated and drawable waveforms, selectable frequency, amplitude, offset, time resolution and length
* Synchronized step sequencer modules added Step sequencer can be transposed and velocity-modulated by received notes, sequence can be drawn on the fly
* Pianoroll-type display of arp patterns and cursor line
* Envelope function for chord arpeggios with high polyphony
* Latch mode or Footswitch for holding notes in arpeggio buffer
* Keyboard-triggered or -restarted arpeggiator mode
* Input note delay strongly reduced making QMidiArp suitable for live play
* MIDI-learnable control of many live-relevant functions
* MIDI realtime clock slave synchronization
* JACK transport client synchronization
* Event log entries are color-coded, optional MIDI Clock event display
* Re-designed graphical user interface: all modules and dialogs are dockable floatable windows, main and file icon toolbars added
* New .qmidiarprc file containing GUI settings, user arp patterns and last file path
* Save and SaveAs functions with modification monitoring
* All relevant session parameters stored in new .qmax XML session file
* Manual pages in English, French and German
* Handler for SIGINT added to handle unsaved or changed files more carefully at program termination.
* Handler for SIGUSR1 added to provide support for LADISH level 1.
* Separate threads for ALSA Sequencer Queue handler and arpeggio engine

General Changes
* Port form Qt3 to Qt4 library.
* MIDI Channels and ALSA port id's displayed from 1...16
* On-the-fly tempo changes are disabled

January 9: Argotlunar 2.0
* Completely rewritten. Uses approximately 30% less CPU.
* "Correlation Matrix".
* Time and pitch quanitization.
* Comb filter.
* Freeze delay buffer.
* Glissando now works correctly.
* Raised-Cosine-Bell and Triangle envelopes, with adjustable shape.

January 9: Ladish 0.3
* Visual notifications about errors and studio/project state changes
* ladish specific settings
* lists of recently used studios and projects
* connections of stopped apps are persisted
* a2j ports are now clearly marked on gladish canvas
* app start/stop by double clicking in the app list
* you can save a text comment and description as part of the project
* Russian, French and German l10n of gladish

January 10: din 1.4 NEW! (first public release)
If Puredata and Supercollider are two synths,
din is a synth of a 3rd kind.

It forgets history,
To not repeat it.

It doesnt hide analog music hardware,
In digital music software.

You had pulse, sine, triangle and sawtooth,
And went forth and made electronic music.

Now there is just the Bezier curve.
Go make your pulse, sine, triangle and sawtooths.
Or this, this, this and this.

This is nothing new.
Some old men did it in the 60s!
Punched numbers into cards.

Now you edit waveforms in a GUI,
And watch the sound change before your very ears.

Has it got ADSR?

Infinite length delay lines.
With Bezier envelope for feedback and volume.

Bezier on Carrier and Modulator.
Eat that Chowning.

Notes! Notes! Notes!
Infinite microtones between two tones.

In Tcl.
Like LISP, but no ((((:-))))


I want two!
Get it while it's free.

January 11: Patchage 0.5.0, Raul 0.8.0 and FlowCanvas 0.7.1
* Auto-arrange interface modules sanely (align corresponding inputs/outputs)
* Add -J (--no-jack) command line option
* Add proper --help output and man page
* Improve performance (dramatically for large setups)
* Fancy console info/warning/error logging
* Fix minor memory leaks and reduce memory consumption
* Fix handling of ALSA duplex ports
* Hide "split" module menu item when it is useless
* Fix Jack D-Bus support
* Mac OS X .app bundle port
* Bump FlowCanvas dependency to 0.7.0
* Add more/larger icons
* Add missing COPYING file to distribution
* Build system and code quality improvements

* Implement Semaphore for Darwin
* Remove unused/trivial/inappropriate Command and Stateful
* Remove pointless templateification of RingBuffer
* Use uint32_t consistently for sizes in RingBuffer
* Fix off-by-one allocation of Atom strings
* Add all classes to 'raul' doxygen group
* Make single-argument constructors explicit
* Fix incorrect TimeSlice::beats_to_ticks
* Fix crash bug in List::chop_front
* Fix TimeStamp comparison operators
* Rename LOG_* defines RAUL_LOG_*
* Remove "using namespace" declarations
* Add missing #includes
* Add missing COPYING file to distribution
* Upgrade to waf 1.6.2
* Fix accidental build system dependency on glibmm (now glib only)
* Better documentation generation via waf tool

* Reduce memory consumption and improve alignment
* Eliminate port control "gauge" overhead for non-control ports
* Add "partner" concept for aligning related but unconnected nodes
* Add missing #includes
* Expand README
* Add missing COPYING file to distribution
* Upgrade to waf 1.6.2

January 13: IR 1.1 NEW!
* Realtime convolution of impulse responses with stereo audio
* Supports Mono, Stereo and 'True Stereo' (4-channel) impulses
* Very reasonable CPU consumption
* Maximum impulse length: 1M samples (~22 seconds @ 48kHz)
* Loads a large number of audio file formats
* High quality sample rate conversion of impulse responses
* Stretch control (via high quality SRC in one step integrated with impulse loading)
* Pre-delay control (0-2000 ms)
* Stereo width control of input signal & impulse response (0-150%)
* Envelope alteration with immediate visual feedback: Attack time/percent, Envelope, Length
* Reverse impulse response
* Autogain: change impulses without having to adjust 'Wet gain'
* Impulse response visualization (linear/logarithmic scale, peak & RMS)
* Easy interface for fast browsing and loading impulse responses
* Free software released under the GNU GPL v2

January 14: IR 1.2
* really use the user's homedir for storing the .ir_save file
* proper GType and GThread initialization, at the proper place (loading of the plugin shared library)
* fix ir.ttl: add missing namespace prefix "rdf"
* fix usage of zita-convolver (proper stopping and deallocating of Convproc instances). Thank you Fons for checking out my code and instructing me.
* fix crash when removing a never-unbypassed plugin instance

January 14: gx_head 0.12.0 NEW!
* 8 tonestack models
* 3 tube models
* cabinet impulse response module
* bass booster
* easy Impulse Response file support via zita-convolver
* on the fly IR-file resampling via zita-resampler
* Oscilloscope and tuner
* multi band distortion model
* scalable EQ
* phaser, flanger, stereo delay, stereo echo,
* overdrive, compressor, freeverb, reverb,
* chorus, moog filter, low/high pass filter, . .
* MIDI learn
* Patch Info widget
* Preset File Load/Export option
* factory settings
* language support
* shining User Interface via GTK/gtkmm

January 16: a2jmidid 7 "Paisius of Hilendar"
* MIDI processing improvements
* Use the JACK limit for max port name size (sr #2526)
* Adopt to shared library policy changes in some distros (sr #2547)
* dbus support can now be disabled at configure stage
* fix build on not so common platforms (LP: #556351)
* man pages (from Debian)
* reopen log file when it is deleted or replaced

January 16: gst123-0.1.4
* Fixed crash for "dumb" terminals. [Siddhesh Poyarekar]

January 17: Csound 5.13.0
New Opcodes:
* fare sequence opcodes
* median opcode
* filevalid opcode
* Real random number generators using /dev/random (Linux only)
* pvstanal opcode -- phase vocoder analysis by reading function tables
* mincer opcode -- Phase-locked vocoder processing
* temposcal opcode -- Phase-locked vocoder processing with onset detection/processing
* pvswarp opcode -- Warp the spectral envelope of a PVS signal
* pvslock opcode -- Frequency lock an input fsig

New Gen and Macros:
* INF macro added to orchestras; z read as infinity in scores
* GEN for support of farey sequences

Modified Opcodes and Gens:
* init changed to allow multiple inits in on statement
* maxalloc, cpuperc, instcount now accept named instruments
* If normalisation in pow opcodes is zero treat as 1
* inch can take upto 20 inputs and outputs
* pvscale and pvsmix now have very good spectral envelope preservation modes (1 = filtered cepstrum, 2 = true envelope).
* oscil1 could be static if the duration was long; now there is a positive minimum increment.
* GEN49 now uses search paths
* pvsvoc enhanced with new spectral envelope preservation code.

Bugs fixed:
* Count of lines fixed in orchestras, and \ inside strings
* Fast tab opcodes made safe from crashes
* % in formated printing could crash
* Double free in fgen fixed
* sndwarp quietened (gave too many messages)
* gen41 deals with positive probabilities
* adsynt reworked removing many bugs
* adsynt2 phase error fixed
* atonex/tonex did wrong operation
* Bug in max number of gens fixed
* mp3in could repeat sound at end of file
* Better checking in grain4
* modulus was wrong in new parser
* Better checking in adsyn
* changed opcode initialised to zero
* Serious bug in tabmorphia fixed
* GEN49 has serious bug removed, so no longer incorrect silences.
* Partikkel opcode: fixed bug in sub-sample grain placement when using grain rate FM
* nchnls_i working correctly

System Changes:
* In the new parser only there are operator @ and @@ to round up the next integer to a power of 2 or powerof2+1
* Score sorting made much faster
* lineto improved
* Named gens allowed
* Various printing include instrument name if available
* Command option to omit loading a library
* Number of out channels no longer constrained to be number of in
* Many fixes to new parser
* More use of Warnings than Messages (allows for them to be switched off)

* csoundSetMessageCallback reset if callback set to null

* usual collection of gratuitous minor changes, layout and comments

January 16: Argotlunar 2.0.1
* Fixed bug where VST parameter automation wouldn't update GUI.

January 18: Argotlunar 2.0.2
* Fixed the remaining parameter automation bugs. This version is considered "stable".

January 18: Qtractor 0.4.8 (Fiery Demigodess)
* MIDI controller mapping/learn is now possible on all mixer controls (monitor, gain, panning, record, mute, solo).
* An internal rewrite (aka. refactoring) have been carried out, making sure that all track state action buttons (R, M, S) are now all under the observer pattern umbrella.
* Single track range selection is now available on main menu (Edit/Select/Track Range; default keyboard shortcut: Ctrl+Shift+R); additionally to vertical range and horizontal track actions (Edit/Select/Range, Track) all these operations can now toggle over the previous selection.
* Direct clip selection from Files list item has been brute-forcefully implemented (after being challenged by Jiri Prochaszka aka Anchakor:).
* Files tree widget sticky "New Group" item fixed.
* A new menu option has been added (View/Tool Tips) to show/hide a floating tool-tip while dragging, moving, resizing or pasting selected clips or events over the main tracks view and MIDI clip editor (piano-roll) respectively, displaying current target position and status.
* Attempt to reset audio/MIDI time drift compensator on every engine start and loop turnaround.
* Moving the punch-out marker over the main track time ruler was failing to shrink the punch-in/out range, now it does (not).
* MIDI clip tools (quantize, transpose, normalize, randomize, resize, rescale and the new timeshift) are now all accessible from the main tracks view (Edit/Clip/Tools menu) and apply to all events on current selected clip(s).
* LV2 Persist extension support is being introduced.
* A new timeshift MIDI tool has been added, after an awesome patch by Jiri Prochaszka aka Anchakor; applies to selected events between edit markers, distorting their time and duration (optionally), either slowing down and accelerating, based on a given parameter P value.
* Audio clip/buffer pitch-shifting fixes with regard to latency correction due on the RubberBand library one-pass (real-time) processing mode.
* New Send Gain and Dry/Wet control parameters have been implemented for audio Inserts pseudo-plugins.
* MIDI channel/master volume enqueued events are now affected by the current track/bus volume (0-100%).
* Prevent old rounding error when resetting to plugin parameter default value with the mouse middle-button click while hovering a slider widget (observer).
* A quantize percentage has been added to MIDI clip editor quantize tool (Tool/Quantize...) for time and duration quantization (0% for none; 100% for full regular quantization).
* Metronome bus/ports are now created at engine start and not when user switches it on anymore.
* Make sure all audio clip buffers are in sync upon smooth-ramping going off and playback is rolling.
* Copy-pasting across controller event types is now possible on the MIDI clip editor (aka piano-roll).
* Finally indulged, the genuine transport stop button makes its appearance on main toolbar and menu.
* Main tracks grid visibility option (View/Snap/Grid).
* Yet another off-by-one (frame) audio buffer bug got squashed away: rare symptom was that some audio clips were being left dead silent right after playback of their first looping period.
* Plugin parameter name/label now a proper attribute of its respective MIDI Controller observer instance, allowing to be shown on dialog title (MIDI learn).
* Default session file format saved on JACK session demand is now the bundle archive/zip one (.qtz).
* Plugin selection dialog now shows whether a plugin features its own editor (GUI) and/or external state configuration (EXT).
* Help/Shortcuts... window positioning and sizing are now preserved.
* All plugin chain changes over the track properties dialog now sure counts as a dirty action (possibly fixing bug #3104129).
* Newly extracted archive/zip session directories are now removed automatically from the file-system on session close, prompting the user for confirmation (cf. View/Options.../Display/Confirm Removals).
* Ctrl+mouse-wheel is now set for zooming in/out, on main track-view and all applicable MIDI clip editor views (piano-roll), according to current zoom mode (see View/Zoom Horizontal, Vertical or All for both ways simultaneously).
* New MIDI clip editor (piano-roll) mouse hovering effect (eye-candy++).
* After too many a user request, a brand new session archive file type is being introduced (.qtz) which tries to bundle in one single zip archive all the media and contents of a session.
* Add that to eye-candy: either loop or punch-in/out outer ranges are now shaded on the main track-view, thumb-view and MIDI clip editor (piano-roll) views.
* LV2 GTK UI plug-in hosting is now roaring its ugly head (EXPERIMENTAL).
* Ignore all initial and decremental notifications of audio engine's buffer-size changes.
* Internal audio buffer loop points were not being set properly for non-zero clip offsets, leaving some as severely out-of-sync while rolling over loop turns. Now fixed again, hopefully.
* Avoid audio peak file clashing when deriving from audio sample files with distinct absolute paths but the very same file (base)name.
* A new MIDI editor (piano-roll) tool has been added: Rescale event times, durations and/or values by a percentage between 1 and 1000% (adapted thanks to patch #3081954, by Jesse Lucas).
* Attempt to mitigate audio clip sequencing glitches on single-core/single-thread machines.

January 20: Foo YC-20 1.2.0
* LV2 plugin
* VSTi plugin (and standalone Jack client) for Windows
* OS X build (standalone Jack client)
* Improved volume control curve
* Fixed bug with 4' drawbar bleed
* More subtle hover highlights
* Switch GUI to use GTK directly without GTKmm

January 21: Foo YC-20 1.2.1
* Fix denormals in LV2 and VSTi

January 22: GStreamer Core 0.10.32, Base Plugins 0.10.32, Good Plugins 0.10.27, Ugly Plugins 0.10.17, Bad Plugins 0.10.21, GNonLin 0.10.17, gst-python 0.10.21 stable releases
* Changelog GStreamer 0.10.32 “Take Me to the Bonus Level”

January 25: Open Octave Midi 2
* Our inhouse designed and built, user defined, automated Patch Sequencer, for fast input of bank and program changes. This exciting and powerful feature will take much of the data processing work out of working in large projects. Users can change sequenced patch sets quickly, and add single patches without changing any previously set automated patch sets. User who add extensive bank and patch changes to their project on a regular basis will enjoy the power of the Patch sequencer.
* Our new OOM2 team designed and built TrackView Manager, in which trackviews can be defined by the user in any track type combination, including a working view function enabling the user to view only the tracks and parts he or she is currently working on. The Trackview Manager takes the hard work out of using, and writing to, a lot of tracks, giving the user the power and flexibility to customize their project as they want.
* Midi sequencing in a traditional timeline format, with full jack transport sync and MTC and MMC sync options, making it easy for users of other sequencers to migrate to OOM2.
* Realtime record/playback for midi and audio.
* Midi part import/export, as used in the arranger window, enabling the user to swap parts between projects, invaluable for when version of the same project are being used, or a section written in one project fits better in another.
* Midi Input filters, including a dedicated transform editor, giving users the power of selective midi input from a device.
* Midi editing with Piano roll, Drum editor or List view editors, with an extensive set of tools to speed up workflow, and do as much as possible as you work, in a single edit pass.
* Internal synth plugins including Soundfont (sf2) capable softsynth (please note this is still in progress)
* Standardized synth plugin formats: DSSI, VST
* External synth support both hardware and software
* The stability and sample accurate timing of Jackmidi.
* Instrument Set file format with a complete user defined set of midi tools, including bank, patch, sysex and controller designation
* RTC, MIDI, and GUI adjustable resolution rate.

* Audio sequencing
* Full jackserver sync capability, enabling accurate timing with other jack capable applications.
* A full selection of Audio Wave, Input, Output, Aux, Group and Synth track and buss options, giving the user a potentially unlimited range of project design options to choose from and build.
* Standard Ladspa and DSSI plugin options, with additional DSSI/VST capability. (The DSSI/VST is a work in progress)
* External synth hardware and software support. OOM2 already contains an extensive list of patch sets for many popular external devices.
* 2 mixers, which can be individually set with user defined views for track type. Here at OOP HQ we use 2 at once, in different desktops, displaying different tracks, and it makes simple work of monitoring all input and output of any project.
* Audio automation. Audio automation can be displayed on the track itself, and users can decide which automation they want to see at any time. Automation can be recorded with the mousewheel, ensuring a smooth transition between changing values as written, or touched. You can also add automation to mixer strips, and display the output by adding the strip to a view in your arranger. The strip will display as a track, and you can record and edit the automation from there, giving you full control.
* Drag and drop plugin copying. The user can open a plugin in one mixer strip, and simply copy/drag it to others, quickly creating plugin sets for multiple tracks. This feature is particularly useful for those who prefer to add EQ to each instrument, or instrument section, and enables building a big template in less time.
* A detailed Audio Bounce function to track, or external file. OOM2 Audio can be jack freewheeling mode enabled (if available in your version of jack) with a simply checkbox tick, speeding up bounce actions considerably.
* A much improved and enhanced shortcut set, which is user configurable, for users who prefer using the qwerty keyboard for workflow. Experienced and professional users can add their own shortcut maps quickly and easily, in organised sections for easy management.

January 26: abGate 1.0.0 NEW!
* LV2 noise gate
* initial public release

January 26: abGate 1.0.1
* updated default installation directory
* added plugin_configuration.h file for easier png files management when changing the default directory

January 27: abGate 1.1.0
* re-released under LGPL v3
* lv2-c++-tools removed from dependencies
* presets removed due to licence change

January 27: NtEd 1.10.18
No changelog.

January 28: Foo YC-20 1.3.0
* Graphical user interface for the GUI
* OSX VST (Thanks Robin!)
* Refactor UI codebase

January 28: fmit 0.99.2
* fix portaudio compilation
* ALSA and PortAudio seems to be exclusive now: avoid them to meet each other by stopping the capture when inside the configuration panel.
* Update texts and french translations
* Apply Qt4 patch of Florian Maier
* Adopt new spinbox layout proposed by Florian Maier
* tagged REALEASE-0-99-0
* fix jack_error_callback bug (Damian Wrobel)
* add an icon!

January 29: abGate 1.1.1
* new presets feature using xml file

January 31: ALSA 1.0.24
Changelog can be found here.