[LAU] the defacto host for lv2

Niels Mayer nielsmayer at gmail.com
Sat Jun 5 18:19:53 UTC 2010


I second Rui's plug of qtractor -- it is a great LV2 host and a nice
way of easily loading up whatever environmental configurations you
might need in association with a particular track. The "save your
config with a project" integration aspects might sound trivial "on
paper" but  it makes a huge difference if you don't like wasting lots
of time remembering how to get back to the configuration needed to
produce a given sound.

I look forward to trying out Ardour3's MIDI support; ardour2's
interface, though daunting at first, is very responsive&predictable
and refined.
Rosegarden, as well, has the feel of something that people have
actually worked with and refined for a long time. Qtractor does this
too, by virtue of "feeling" like Cakewalk Pro Audio, which is what I'm
used to in the first place.

What I don't understand is why there isn't more overt collaboration
and code-sharing between the different DAWs, because ultimately, I
find myself wishing I could mix-and-match a "module" of functionality
from qtractor with another module of functionality from ardour and
another from rosegarden. Some kind of abstract non-destructive-editing
core that can be "skinned" by Gtk, or Qt, or even in the browser (
http://news.cnet.com/8301-19882_3-10354268-250.html  ). Of course, the
"core" would all be with tight C/C++, thread-safe and smartly-locked,
locally-memory-managed; the "skinning" and "gluing" would be in a
STM-capable interpreted language that prevents you from needing to
think about GUI-update locking issues any more than you'd think about
using a predefined type declaration for a variable...

Potentially, multithread access to shared memory data-structures seems
to be the cause of hard-to-reproduce error messages coming out of
Qt-based apps (see also https://bugs.kde.org/show_bug.cgi?id=240391 ):

gnulem-109-~/Documents> qtractor
*** glibc detected *** qtractor: corrupted double-linked list:
0x00000000012ab6a0 ***
^C

You may never see these errors until you run these apps on a fast
quad-core machine. For Qtractor -- my hunch of the day -- check for
simultaneous access to the "inputs" and "outputs" configurations;
after loading several projects or activating "track->inputs"
"track->outputs" or the "outputs" and "inputs" buttons in the mixer
(all of which pop up the "Connections" window)...  do this a few times
and eventually your midi devices disappear in the gui. You have to go
to the "Connections" window's option-menu and select "(All)" or
reselect the current option in order to refresh the display.
Something's getting "clobbered" in the midi or audio connections
listings each time you load a new .qtr or .qtt file... and this is an
error that recurs more quickly on a fast quad-core than a slower
dual-core.

... makes me think i was right on track with all my comments about
clojure, garbage-collection, and software transactional management :-)
... i think i'll need a supercomputer to run "valgrind --tool=helgrind
qtractor" ...

Niels
http://nielsmayer.com

PS:  Just so that Rui doesn't feel like I'm picking on him, this is my
other favorite error message of the week (
https://bugzilla.redhat.com/show_bug.cgi?id=600713 )

gnulem-119-~/Documents> rosegarden
Setting graphics system for Qt 4.5+ to: raster
[...]
Warning: Composition::~Composition() with 3 observers still extant
Observers are: 0x29e1ac0 [N10Rosegarden19SegmentParameterBoxE]
0x2a34df0 [N10Rosegarden17TrackParameterBoxE] 0x2ed5f80
[N10Rosegarden20CompositionModelImplE]
*** glibc detected *** rosegarden: double free or corruption (out):
0x00007f829c223ba0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x38e7e74ac6]
/usr/lib64/dssi/calf.so(_ZN12calf_plugins14ladspa_wrapperINS_23compressor_audio_moduleEED1Ev+0x37)[0x7f82a4130d07]
/lib64/libc.so.6(exit+0xe2)[0x38e7e35b82]
/lib64/libc.so.6(__libc_start_main+0x104)[0x38e7e1eb24]
rosegarden[0x43cfd9]

PPS: Ardour's Gtk doesn't seem to be as fragile since quitting only
produces the following, without coredumping :-)
....
(ardour-2.8.7:29963): Gtk-CRITICAL **: gtk_box_pack: assertion
`child->parent == NULL' failed
Session writable based on /home/npm/Music/yoshimidoublearpeggiator/
(ardour-2.8.7:29963): Gtk-CRITICAL **: gtk_box_pack: assertion
`child->parent == NULL' failed
...


More information about the Linux-audio-user mailing list