Thursday, 2014-08-21

*** edogawa_ has quit IRC00:02
*** falktx has quit IRC05:27
*** edogawa has joined #lv208:59
*** ddom has joined #lv209:28
*** grejppi has quit IRC12:27
*** grejppi has joined #lv212:33
*** ricardocrudo has joined #lv212:54
*** ricardocrudo has quit IRC12:59
*** ricardocrudo has joined #lv213:00
*** NickSB2 has quit IRC13:21
*** falktx has joined #lv215:13
*** edogawa_ has joined #lv215:14
*** edogawa has quit IRC15:17
*** ddom has quit IRC16:14
*** mlpug has joined #lv216:39
*** falktx_ has joined #lv216:45
*** falktx has quit IRC16:45
*** ddom has joined #lv218:39
*** rncbc has joined #lv219:14
*** mlpug has quit IRC19:24
*** zth has joined #lv219:27
*** NickSB2 has joined #lv219:50
*** ricardocrudo has quit IRC21:29
*** ricardocrudo has joined #lv221:44
*** ricardocrudo has quit IRC22:24
*** ricardocrudo has joined #lv222:25
*** rncbc has quit IRC22:25
*** unclechu has joined #lv222:55
unclechuhi there, where I can found ladspa channgel?22:56
unclechu#ladspa is empty22:56
*** ricardocrudo has quit IRC23:02
rgareusunclechu: LV2 is LADSPA Version 2.23:04
unclechurgareus, ok then23:05
rgareuswht bother about LADSPA version 1 ?23:05
rgareuss/wht/why/23:05
unclechurgareus, i try to write my first ladspa plugn, but i'm confused by error: "multiple definition of `_init'"23:05
unclechui wrote initialization of descriptor in _init, like in example in ladspa sdk23:06
rgareusunclechu: smells like a compiler flag problem23:08
unclechurgareus, `gcc -shared -fPIC -DPIC src/bit-crusher.c src/ladspa.c -o ladspa/bit-crusher.so`23:08
rgareus_init is usually reserved for library intialization and should not be explicityly defined in code.23:09
unclechurgareus, then why it has in example from sdk?23:09
unclechurgareus, legacy way?23:09
unclechurgareus, any way, how i can init descriptor right?23:10
rgareusdon't know. It's been years since I wrote my last LADSPA plugin.23:10
rgareuswith gcc,   static __attribute__((constructor)) void my_init() {};  should work23:14
rgareusor simply       void __attribute__((constructor)) my_init {}23:16
rgareusreplace     void _init {}    function by thta23:17
rgareussame with _fini , if you have one.23:17
rgareus  void __attribute__((destructor))  my_fini() {}23:17
unclechurgareus, it looks like i can init descriptor in "ladspa_descriptor"23:20
unclechurgareus, but i'm afraid of memory leaks, do i need to destroy descriptors?23:20
rgareusunclechu: no, they're not allocated in the first place, but static23:21
falktx_I need to clear a doubt23:21
falktx_jalv is only sending the initial time position and never updates it23:22
falktx_ie, time:Bar is set to a value but never refreshed when playing23:22
falktx_am I suppose to calculate the next bar value myself?23:23
falktx_cause that might be a bit tricky or even impossible with jack transport...23:24
rgareusfalktx_: I'm pretty sure it sends updates when there's a change23:25
falktx_not here23:25
falktx_was this fixed recently?23:25
falktx_rgareus: I have a printf when I receive an atom object, and while the transport is  rolling I only receive 123:26
rgareusfalktx_: there was a bug in earlier versions, but it was fixed at least a year ago (when I wrote the midifilters)23:26
rgareusfalktx_: see http://svn.drobilla.net/lad/trunk/jalv/src/jalv.c   search for 'xport_changed'23:28
rgareusfalktx_: when transport is rolling...  (pos.frame != jalv->position) in every jack cycle and you'll get a message23:29
falktx_I don't think that's true23:30
falktx_see23:30
falktx_jalv->position = rolling ? pos.frame + nframes : pos.frame;23:30
falktx_when it's rolling, jalv->position will get the next frame pos23:30
falktx_which matches the next process callback23:30
falktx_thus no new data sent23:30
rgareusfalktx_: do you have an  atom:supports time:Position  ?23:31
falktx_yes, I get the transport info correctly23:32
falktx_the issue is that I only get that once23:32
falktx_that line "jalv->position = rolling ? pos.frame + nframes : pos.frame;" has to be the issue23:33
rgareusfalktx_: you were right. yes  you ned to calc the new BBT position yourself.23:39
rgareusfalktx_: https://github.com/x42/midifilter.lv2/blob/master/midifilter.c#L208 does this in one of my plugins.23:39
falktx_that seems seriously wrong23:39
rgareusfalktx_: what seems wrong?23:40
falktx_jack transport can change at anytime23:40
rgareusfalktx_: can it?23:40
falktx_yes23:41
falktx_does jalv register a transport info callback?23:41
falktx_the timeSignature can change and afaik current jalv will not react to it23:41
rgareusfalktx_: with locate and start/stop. it takes at least 2 cycle to take effect and it's in sync. see http://jackaudio.org/api/group__TransportControl.html23:42
rgareusfalktx_: transport info callback ?23:45
falktx_slow sync I think it's called23:45
rgareusaah.23:45
falktx_anyway, I don't think it's fair to expect the plugins to do all sorts of calculations just to get timing right23:45
rgareusno that's different.23:45
falktx_current jalv is broken to me23:46
rgareusfalktx_: probably all other plugin hosts as well, then23:46
falktx_carla is not23:46
rgareusexcept Carla if you implemented it diffeently23:46
falktx_I send message about any detail that changed23:46
falktx_I even implement all time position as control ports23:47
rgareusfalktx_: IMHO it makes no sense to TX all those bytes every cycles, it's a very simple calc after all23:47
falktx_you don't23:47
falktx_you just send the ones that changed23:47
rgareusfalktx_: the function to update the BBT should be in the LV2 util headers though23:47
falktx_I'm not sure what's the official thing to do here23:49
rgareusI suppose, opening a bug ticket or email to lv2-devel is the right way forward23:49
falktx_if lv2 hosts only send time info once and expect plugins to update accordindly, jalv needs to adjust for time-signature changes and a few other things23:49
falktx_I'd be more happy if hosts sent every little change when it happens23:50
falktx_the plugin will cache the values and update what's received23:50
rgareusfalktx_: your plugin will need to update internally anyway e.g. if the cycle spans multiple beats23:51
rgareusfalktx_: or do you expect the host to send a message for every tick?23:51
falktx_every run()23:51
rgareusfalktx_: I don't think that makes sense, mainly since you need to calc it anyway.23:52
falktx_I do?23:52
rgareussending it every run would only encourage plugin-authors to negect sub-cycle BBT changes inside the plugin23:52
rgareusand it's like "you have this information already, but do I tell it to you again (and again)" overhead23:53
falktx_no, the plugin is only telling the new data23:54
falktx_*the host23:54
falktx_ie, frame changed23:54
rgareusfalktx_: how does plugin get simpler? you get this during run already and no need to parse an Atom.23:55
falktx_just seems a bit overcomplex for the plugin to do this23:55
falktx_oh, and since playing speed is a float, I'd have to adjust the values even more carefully23:56
rgareusfalktx_: I think it should become part of some LV2 SDK utility header23:56

Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!