[ANN] Qtractor 0.5.6 - The Golf Tango release!

Discuss anything new and newsworthy! See http://planet.linuxaudio.org and https://libreav.org/news for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.


Moderators: raboof, MattKingUSA, khz

brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

I've just check out qtractor from svn, ...
but still I get
No maximum buffer size given.
unsupported block-size: 0
No maximum buffer size given.
unsupported block-size: 0
for the case it helps, here is my code were I ask for the bufsize in instantiate ,
this works in jalv:

Code: Select all

  const LV2_Options_Option* options  = NULL;
  LV2_URID_Map*             map      = NULL;
  uint32_t bufsize = 0;

  for (int i = 0; features[i]; ++i) {
    if (!strcmp(features[i]->URI, LV2_URID__map)) {
      map = (LV2_URID_Map*)features[i]->data;
    } else if (!strcmp(features[i]->URI, LV2_OPTIONS__options)) {
      options = (const LV2_Options_Option*)features[i]->data;
    }
  }

  if (!map) {
    fprintf(stderr, "Missing feature uri:map.\n");
  } else if (!options) {
    fprintf(stderr, "Missing feature options.\n");
  } else {
    LV2_URID bufsz_max = map->map(map->handle, LV2_BUF_SIZE__maxBlockLength);
    LV2_URID atom_Int = map->map(map->handle, LV2_ATOM__Int);
  
    for (const LV2_Options_Option* o = options; o->key; ++o) {
      if (o->context == LV2_OPTIONS_INSTANCE &&
        o->key == bufsz_max &&
        o->type == atom_Int) {
        bufsize = *(const int32_t*)o->value;
      }
    }

    if (bufsize == 0) {
      fprintf(stderr, "No maximum buffer size given.\n");
    }

    if (bufsize < 64 || bufsize > 8192 ) {
      fprintf(stderr, "unsupported block-size: %d\n", bufsize);
      bufsize = 0;
    }
    printf("using block size: %d\n", bufsize);
  }
jack is running here with 256 Frames/Periode.
So this output means, the bufsize option is supported, but I didn't receive a value.

greets
hermann

here is my ./configure output:
Qtractor 0.5.6.28

Build target . . . . . . . . . . . . . . . . . . .: release

Code: Select all

  JACK Audio Connection Kit support  . . . . . . . .: yes
  ALSA MIDI Sequencer support  . . . . . . . . . . .: yes
  General audio file support (libsndfile)  . . . . .: yes
  Ogg Vorbis audio file support (libvorbis)  . . . .: yes
  MPEG-1 Audio Layer 3 file support (libmad) . . . .: yes
  Sample-rate conversion support (libsamplerate) . .: yes
  Pitch-shifting support (librubberband) . . . . . .: yes
  OSC service support (liblo)  . . . . . . . . . . .: yes
  Archive/Zip file support (zlib)  . . . . . . . . .: yes
  IEEE 32bit float optimizations . . . . . . . . . .: yes
  SSE optimization support (x86) . . . . . . . . . .: yes
  LADSPA plug-in support . . . . . . . . . . . . . .: yes
  DSSI plug-in support . . . . . . . . . . . . . . .: yes
  VST plug-in support  . . . . . . . . . . . . . . .: yes
  LV2 plug-in support  . . . . . . . . . . . . . . .: yes
  LV2 plug-in support (liblilv)  . . . . . . . . . .: yes
  LV2 plug-in UI instantiation (libsuil) . . . . . .: yes
  LV2 plug-in QT4 UI support . . . . . . . . . . . .: yes
  LV2 plug-in GTK UI support . . . . . . . . . . . .: yes
  LV2 plug-in External UI support  . . . . . . . . .: yes
  LV2 plug-in MIDI/Event support . . . . . . . . . .: yes
  LV2 plug-in MIDI/Atom support  . . . . . . . . . .: yes
  LV2 plug-in Worker/Schedule support  . . . . . . .: yes
  LV2 plug-in State support  . . . . . . . . . . . .: yes
  LV2 plug-in State Files support (EXPERIMENTAL) . .: yes
  LV2 plug-in Programs support . . . . . . . . . . .: yes
  LV2 plug-in Presets support  . . . . . . . . . . .: yes
  LV2 plug-in Time support . . . . . . . . . . . . .: yes
  LV2 plug-in Options support  . . . . . . . . . . .: yes
  LV2 plug-in Buf-size support . . . . . . . . . . .: yes

  JACK Session support . . . . . . . . . . . . . . .: yes
  JACK Latency support . . . . . . . . . . . . . . .: yes

  X11 Unique/Single instance . . . . . . . . . . . .: no
  VeSTige header support . . . . . . . . . . . . . .: yes
  Gradient eye-candy . . . . . . . . . . . . . . . .: yes
  Debugger stack-trace (gdb) . . . . . . . . . . . .: no

  Install prefix . . . . . . . . . . . . . . . . . .: /usr
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by rncbc »

brummer wrote:No maximum buffer size given.
unsupported block-size: 0
No maximum buffer size given.
unsupported block-size: 0
oops. forgot to map the new buf-size uris.

try again with svn trunk rev.3094+ (qtractor 0.5.6.29+)

cheers
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

rncbc wrote:try again with svn trunk rev.3094+ (qtractor 0.5.6.29+)
Thanks, works well now. :)
using block size: 256
Only I have trouble, on reload the plug in session after remove it. GUI reload works,only after remove the complete plug I get.
GLib-GObject-WARNING **: cannot register existing type
I use gtkmm, I know that isn't yours, :lol: .
I guess I need to rework the ui and switch to use gtk+ for it, even if I prefer the mm style. :|
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by rncbc »

brummer wrote:
GLib-GObject-WARNING **: cannot register existing type
I use gtkmm, I know that isn't yours, :lol: .
I guess I need to rework the ui and switch to use gtk+ for it, even if I prefer the mm style. :|
op, op, oppa gtkmm style....
Image
scnr :lol:
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

ola :lol:
Image
np

well, I found the solution in the linking flags, just added '-Wl,-z,nodelete' to the gui linking, and now my gtkmm plug works like a charm in your qt-host. :D
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

Hi

I have a question regarding the worker thread and multiple instances in qtractor.
as far I can see, there are loaded 2 instances from a mono plug, into a stereo track. Now, they are controlled by a single instance of the UI.
If, the UI now call a worker thread, this is just running in one instance of the plug, are am I right?
So, processing s which depend one non realtime work done in a worker thread be out of control from the UI.
Do you think there is a way to let the worker thread run for every loaded instance of the plug, if it get controlled by just one UI?

greets
hermann
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by rncbc »

brummer wrote:Hi

I have a question regarding the worker thread and multiple instances in qtractor.
as far I can see, there are loaded 2 instances from a mono plug, into a stereo track. Now, they are controlled by a single instance of the UI.
If, the UI now call a worker thread, this is just running in one instance of the plug, are am I right?
right.
brummer wrote:So, processing s which depend one non realtime work done in a worker thread be out of control from the UI.
correct.
brummer wrote:Do you think there is a way to let the worker thread run for every loaded instance of the plug, if it get controlled by just one UI?
yes :) maybe fixed on svn trunk rev.3098+ (aka. qtractor 0.5.6.31+)

cheers
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

rncbc wrote: yes :) maybe fixed on svn trunk rev.3098+ (aka. qtractor 0.5.6.31+)

cheers
Thanks, works fine here. :)
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

Well, the worker threads works fine now, but I've found another issue with the buffer-size.
When I load a saved session with plugs included, the plugs didn't get the buffer-size.
No maximum buffer size given.
unsupported block-size: 0
using block size: 0
convolver disabled
I need to unload the plug and reload it in order to get it work.

greets
hermann
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by rncbc »

brummer wrote:Well, the worker threads works fine now, but I've found another issue with the buffer-size.
When I load a saved session with plugs included, the plugs didn't get the buffer-size.
No maximum buffer size given.
unsupported block-size: 0
using block size: 0
convolver disabled
I need to unload the plug and reload it in order to get it work.
aha. on some circumstances, plugins might get instantiated before the jack client gets created and before all audio/midi infrastructure gets up and running which in turn means that there isn't any buffer-size nor sample-rate known yet as legal quantities--probably reported as zero if the session is being loaded from the command line.

no sweat

qtractor session (re)start sequence has been reformulated on svn trunk rev.3101+ (v0.5.6.32+)

please try && tell :)
cheers
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

Hi

Well, it receive now the buffersize when a session is loaded, . .

Code: Select all

qtractorPluginFile::createPlugin(0x99b3910, "http://guitarix.sourceforge.net/plugins/gxamp", 0, 4)
qtractorLv2PluginType[0xa480070]::open() uri="http://guitarix.sourceforge.net/plugins/gxamp"
qtractorLv2Plugin[0xaa1b000] uri="http://guitarix.sourceforge.net/plugins/gxamp"
qtractorLv2Plugin[0xaa1b000]::setChannels(2) instances=2
using block size: 128
qtractorLv2Plugin[0xaa1b000]::setChannels(2) instance[0]=0xaa172a8
using block size: 128
qtractorLv2Plugin[0xaa1b000]::setChannels(2) instance[1]=0xa69ca70
qtractorMainForm::updateSessionPost()
qtractorMainForm::viewRefresh()
qtractorMidiControl::sendAllControllers(0)
qtractorLv2Plugin[0xaa1b000]::openEditor()
I can open the GUI and I can start the plug-in engine, but, there are no jack-ports available for qtractor, and as soon I select a track to play, qtractor crashed.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".

Code: Select all

[New Thread 0xa817fb70 (LWP 13955)]
[New Thread 0xa9b3fb70 (LWP 13954)]
[New Thread 0xb06d7b70 (LWP 13948)]
[New Thread 0xa933eb70 (LWP 13947)]
[New Thread 0xaa3c1b70 (LWP 13945)]
[New Thread 0xaa340b70 (LWP 13944)]
[New Thread 0xaf2ceb70 (LWP 13943)]
[New Thread 0xaf34fb70 (LWP 13942)]
0xb77d5424 in __kernel_vsyscall ()

Thread 9 (Thread 0xaf34fb70 (LWP 13942)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d420a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb779a122 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#3  0xb77966ac in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#4  0xb7798c79 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#5  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#6  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 8 (Thread 0xaf2ceb70 (LWP 13943)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d733b in read () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb779b07a in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#3  0xb779e206 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#4  0xb779df53 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#5  0xb7798c79 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#6  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#7  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 7 (Thread 0xaa340b70 (LWP 13944)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d420a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb6352470 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#3  0x08072c60 in ?? ()
#4  0xb6351f00 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#5  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#6  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 6 (Thread 0xaa3c1b70 (LWP 13945)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d81eb in waitpid () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0x08071611 in ?? ()
#3  <signal handler called>
#4  0x08090102 in ?? ()
#5  0x0807e8d7 in ?? ()
#6  0x0807d46a in ?? ()
#7  0xb777d3da in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#8  0xb777d310 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#9  0xb777b52e in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#10 0xb7798c79 in ?? () from /usr/lib/i386-linux-gnu/libjack.so.0
#11 0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#12 0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 5 (Thread 0xa933eb70 (LWP 13947)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb6100846 in poll () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
#2  0x08110199 in ?? ()
#3  0xb6351f00 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#4  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#5  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 4 (Thread 0xb06d7b70 (LWP 13948)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d420a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb6352470 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#3  0x08110539 in ?? ()
#4  0xb6351f00 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#5  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#6  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 3 (Thread 0xa9b3fb70 (LWP 13954)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d420a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb6352470 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#3  0x080e26f1 in ?? ()
#4  0xb6351f00 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#5  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#6  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 2 (Thread 0xa817fb70 (LWP 13955)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d420a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb6352470 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#3  0x080d561e in ?? ()
#4  0xb6351f00 in ?? () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#5  0xb62cfc39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#6  0xb610e23e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

Thread 1 (Thread 0xb5a53ad0 (LWP 13825)):
#0  0xb77d5424 in __kernel_vsyscall ()
#1  0xb62d7648 in recv () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
#2  0xb5de8652 in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
#3  0xb5de8ccb in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
#4  0xb712be4a in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6
#5  0xb712bf6f in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6
#6  0xb712c59f in _XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6
#7  0xb711d138 in XPending () from /usr/lib/i386-linux-gnu/libX11.so.6
#8  0xa702c1be in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0
#9  0xb5cd8092 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb5cd87df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#11 0xb5cd8a41 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#12 0xb6495841 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#13 0xb67ca1fa in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#14 0xb646202c in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#15 0xb6462321 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#16 0xb6467a9a in QCoreApplication::exec() () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#17 0xb67152f4 in QApplication::exec() () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#18 0x08071ade in ?? ()
#19 0xb6054e46 in __libc_start_main () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
#20 0x08071491 in ?? ()
here is a screen-shoot from before the crash:
http://img42.imageshack.us/img42/5647/b ... 01212i.png
seems the jack ports are not registered ?

greets
hermann
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by rncbc »

brummer wrote: Well, it receive now the buffersize when a session is loaded, . .
excellent...
brummer wrote: I can open the GUI and I can start the plug-in engine, but, there are no jack-ports available for qtractor, and as soon I select a track to play, qtractor crashed.
holy crap. that's exactly what happens when the uber-procrastinator lets it go so easily. :((

i'll get to it asap. meanwhile current qtractor svn trunk revision is a dang complete CRASHWARE :!: you've been advised :roll:

[UPDATE:] svn trunk rev.3105+ might do better. but, as always on every move one makes, beware of the short-blanket syndrome :x

seeya
brummer

Re: [ANN] Qtractor 0.5.6 - The Golf Tango release!

Post by brummer »

Great work :D
Well, it works like a charm now,
I wasn't able to crash qtractor any more, but be aware, I will try it hard. :twisted:
:lol: :lol:

many thanks for your quick feature additions and fixes.
greets
hermann
Post Reply