Re: [LAD] DrMr: a new lv2 sampler/drum machine plugin

From: Nick Lanham <nick@email-addr-hidden>
Date: Tue Feb 14 2012 - 13:52:15 EET

Good to hear that there's something in the pipeline to address this.
I'll certainly add support for it once it's stable and supported in the
major hosts.

BTW, trying to run the example sampler in qtractor and it segfaults (see
gdb output below). Not sure if qtractor is doing some wrong, or me, or
the plugin :)

The other thing I'd love to be able to do is somehow change the # of
control ports dynamically (so I can expose exactly the right # of
gain/pan ports for the # of samples). dynamic-manifest seems like a
promising way to do this, but I haven't seen a way to ask the host to
re-poll for a new manifest, so that makes it pretty much useless if you
ever want to change kits. Any thoughts on this?

Thanks!

-Nick

GDB Output:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3c2b708 in main_arena () from /lib/libc.so.6
(gdb) up
#1 0x00007fffe4681db9 in map_uri (plugin=0x294e540, uri=0x7fffe4682228
"http://lv2plug.in/plugins/eg-sampler#filename") at ../sampler.c:354
354 return plugin->map->map(plugin->map->handle, uri);
(gdb) print plugin
$1 = (Sampler *) 0x294e540
(gdb) print *plugin
$2 = {map = 0x7ffff3c2b718, samp = 0x29cd720, pending_samp = 0x29e6300,
pending_samp_mutex = {__data = {__lock = 0, __count = 0, __owner = 0,
__nusers = 1, __kind = 0, __spins = 0,
       __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats
12 times>, "\001", '\000' <repeats 26 times>, __align = 0},
pending_samp_cond = {__data = {__lock = 0, __futex = 1,
       __total_seq = 1, __wakeup_seq = 0, __woken_seq = 0, __mutex =
0x294e558, __nwaiters = 2, __broadcast_seq = 0},
     __size = "\000\000\000\000\001\000\000\000\001", '\000' <repeats 23
times>, "X\345\224\002\000\000\000\000\002\000\000\000\000\000\000",
__align = 4294967296}, pending_sample_ready = 1,
   output_port = 0x0, event_port = 0x0, uris = {midi_event = 0,
atom_message = 0, set_message = 0, state_path = 0, filename_key = 0},
play = false, frame = 43818880,
   worker_thread = 140736974575360}
(gdb) print *(plugin->map)
$3 = {handle = 0x7ffff3c2b708, map = 0x7ffff3c2b708 <main_arena+264>}
(gdb) print (plugin->map->map)
$4 = (LV2_URID (*)(LV2_URID_Map_Handle, const char *)) 0x7ffff3c2b708
<main_arena+264>
(gdb) print *(plugin->map->map)
$5 = {LV2_URID (LV2_URID_Map_Handle, const char *)} 0x7ffff3c2b708
<main_arena+264>

On 02/13/2012 10:04 PM, David Robillard wrote:
> On Mon, 2012-02-13 at 17:02 +0000, Filipe Lopes wrote:
>> Very nice plugin, I tested it in my host and works great in a small
>> test (will give it more attention later).
>> (Sad thing about no string-port or some other way to
>> provide compatibility)
> string-port (which is not implemented by much at all) isn't a very good
> way to gain compatibility.
>
> For the curious, plugin control beyond beyond floats is where the most
> work has been going on lately and should be released soon, and is
> working in LV2 svn as well as my simple test host jalv[1]. The relevant
> stuff is the atom[2] and message[3] extensions. The example sampler
> plugin[4] uses this to talk between the UI and plugin to load sample
> files.
>
> High level overview/rationale documentation is still nonexistent, but
> particularly since there's a working example it should be pretty
> figure-out-able.
>
> This work, in conjunction with the state[5] extension, should remove all
> need for control port kludges and plugins accessing the file system.
>
> Cheers,
>
> -dr
>
> [1] http://svn.drobilla.net/lad/trunk/jalv/
> [2] http://lv2plug.in/ns/ext/atom
> [3] http://lv2plug.in/ns/ext/message
> [4] http://lv2plug.in/repo/trunk/plugins/eg-sampler.lv2/
> [5] http://lv2plug.in/ns/ext/state
>
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@email-addr-hidden
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue Feb 14 16:15:02 2012

This archive was generated by hypermail 2.1.8 : Tue Feb 14 2012 - 16:15:02 EET