Wednesday, 2014-12-17

*** ricardocrudo has quit IRC00:00
falktxmore pugl changes?00:39
drobillaI guess if merging counts as "more pugl changes", then yes00:43
drobillaThe divergence needs to die and we all badly need to start working on actual git repos, or git is largely pointless00:47
drobillaRobin's is/was way out there.  Haven't converted yours yet, but from the looks of it most/all the changes are relatively old and already merged00:48
falktxI'll merge the current code and do some git diffs some time later00:50
drobillaThe changes to the internals themselves are pretty dramatic, but if you're already post puglInit stuff, actual code using it shouldn't be affected00:52
drobillaHopefully after this we can stick a 1.0.0 on it and start maintaining API guarantees properly00:52
HarryHaarendoes this include Robins Cairo -> GL stuff? With partial redraw?00:52
drobillaHarryHaaren: No.  He didn't do that in pugl00:55
HarryHaarenahhhright.00:55
drobillaI will figure out how to stick that in there, probably as the only way to get Cairo on OSX for the forseeable future because I'm lazy and GL is more reliable there anyway00:56
drobillaFor X11, I dunno, option or different context type or something, maybe00:56
HarryHaareni'm happy enough with the current state of my double-buffer implementation for a while00:57
HarryHaarenit seems to be holding up OK, and until it becomes a problem, i'm gonna use it instead00:57
HarryHaarendrobilla, question about /book example code for setting up Atom ports to write from DSP: http://pastebin.com/tA1gtUAa01:33
HarryHaarencontext: lv2_atom_forge_raw() is hanging until JACK zombifies. The    lv2_atom_forge_deref(forge, f->ref)->size += size;   loops until I C^c it, i put a counter in there, about 26716 in a second or so.01:38
HarryHaarenhelp appreciated01:38
HarryHaarenwriting code looks like so: URI's are mapped to numbers < 50, so is legit: http://pastebin.com/2WKNaNfc01:39
HarryHaarenone midi message per run() no problem; two or more and lv2_atom_forge_raw() hangs.01:40
HarryHaarenthe problem does *NOT* occur if I leave out the lv2_atom_forge_key() calls (aka, send a useless Atom)01:41
*** NickSB2 has joined #lv201:42
HarryHaarenok.. its non deterministic. Sometimes 2 values works too :/01:48
drobillaYou're pretty good at getting bizarre hangs out of things that "can't" possibly do so :)02:38
drobillaHarryHaaren: Which plugin is hanging?02:39
HarryHaarenFabla2 codebase02:40
HarryHaarendrobilla, i'm testing with eg-scope / sampler atm, refactoring the code02:40
drobillaWhat why are you dereve()->size += size ing  anything?02:40
drobilladeref*02:40
HarryHaarenand I know, I manage to make the strangest things happen in code. Wish it wasn't like that!02:40
HarryHaareni put a print in there just to see if that was actually the issue.02:40
HarryHaareni think i'm A) getting the frames wrong02:40
HarryHaarenor B) something else02:41
HarryHaarenim refactoring for a bit, might ping you later if I still can't get it.02:41
drobillaforge doesn't really care about the time stamps02:41
* drobilla needs to write a more type safe / foolproof C++ forge thingie02:41
HarryHaarendrobilla, what does the forge do when it runs out of space?02:41
drobillaJust doesn't write02:42
HarryHaarenfor output atom ports in the .ttl, what does lv2:designation lv2:control ; do?02:44
drobillaRTFM ;)02:46
*** NickSB2 has quit IRC02:47
HarryHaarenbeen there done that. This plugin is still crashing :)02:51
drobillavalgrind?02:52
drobillaI don't see any way any forge method could possibly "hang", unless maybe you're passing some absurdly massive (integer underflow) size, but even then, it should just bail out because the size check is bad02:54
drobillaThey're all just slightly glorified buffer writes at the end of the day02:54
HarryHaarenthere's something more fundamentally wrong with the Atom buffer stuff, its saying its size is 802:54
drobillaand you mentioning that you're derefing things and messing with their size is certainly a red flag...02:55
HarryHaareni'm not derefing things at all, its just forge_key() that' im calling02:55
drobillaDid you nuke the capacity as in the fifth setup?02:55
drobillaclearing it will do so02:55
* HarryHaaren checks02:55
drobilla(this pattern sucks)02:55
drobilla(it also sucks that you can't do offsets with sequence ports)02:56
drobilla(LV2 sucks etc)02:56
HarryHaarennope, not clearing. I'm reading eg-scope, it does way less Atom port stuff on init than eg-sampler..02:56
HarryHaarenand requests a size in the .ttl. I'm doing that too, but instead of it being the size it should be, its 802:57
drobillaIn what host?02:57
HarryHaarenjalv.gt02:57
HarryHaarenk02:57
drobillaand if you get the atom size as the very firstest firstiest seriously first ever ever thing in run(), it's 8?02:58
HarryHaarenno.. that was a  mistake on my part, printing the input port not the output port02:59
HarryHaarenok, i'm getting places.. leave it with me for a while. Thanks already though03:00
drobillakthxy/wetc03:00
HarryHaarenno idea what that means, but yeah sure :)03:02
* falktx decodes... ok thanks, you're welcome, etc03:02
falktxk thx y/w etc. joining all that hurts the brain...03:03
* drobilla internets to win03:04
HarryHaarendrobilla, paste this   http://pastebin.com/c3LdUy7k   just before    // Process audio data    in eg-scope.c03:10
HarryHaarenthen run in jalv.gtk -d03:10
HarryHaarenit jumps to 100% CPU on one core, and doesn't do anything here03:11
HarryHaarenalso when I close the UI, the DSP thing is still hanging03:12
falktxmaybe the buffer is corrupt?03:13
falktxlook for lv2_atom_forge_set_buffer03:14
drobillathat makes an unterminated object 5 levels deep, for starters03:14
HarryHaarenfalktx, did you try it? Does it have the same effect?03:14
HarryHaarenok.. i guess that's not good03:14
falktxit's missing a lv2_atom_forge_pop right?03:14
HarryHaarenbut still: this is my test case, i'm getting it when handling / writing MIDI => UI updates03:14
drobillaHarryHaaren: Forging a frame time inside an object is corrupt03:15
drobillaHarryHaaren: frame time is in sequence only03:15
HarryHaarenok03:15
drobillaIt should gracefully handle this (but I'm busy)03:15
falktxlv2_atom_forge_pop(&self->forge, &frame); missing in there03:15
HarryHaarenfix that falk thanks03:16
HarryHaarenfew.. at least i wasnt' going totallly insane there. Was worried for a bit03:16
HarryHaareni mean, stupid perhaps. But insane no :)03:16
* falktx can't find a single "lv2_atom_forge_frame_time" in carla's code03:16
falktxso yeah that frame_time needs to go03:17
HarryHaareni guess you don't write any messages with audio-frame timestamps?03:18
HarryHaarenfor UI control data it doesn't make a difference03:18
HarryHaarenfor MIDI on the other hand...03:18
HarryHaaren"drunk drummer effect" :D03:18
falktxI don't think you're thinking it correctly03:18
falktxthe forge buffer doesn't take a timestamp03:19
falktxwell, not directly03:19
falktxthe timestamp comes later when writing to the sequence port03:19
falktxie, this blank/object with time x has this buffer size x03:20
falktxI'm using some of Rui's code to help writing to lv2 atom ports, but my code is this:03:21
falktxuint8_t timeInfoBuf[256];03:21
falktxlv2_atom_forge_set_buffer(&fAtomForge, timeInfoBuf, sizeof(timeInfoBuf));03:21
drobillaHarryHaaren: forge_object opens a frame.  Like writing "[" in turtle03:21
drobillaHarryHaaren: "frame" as in stack frame03:22
falktx... forge object, keys+values here03:22
falktxthen pop03:22
falktxand finally03:22
falktxLV2_Atom* const atom((LV2_Atom*)timeInfoBuf);03:22
falktxlv2_atom_buffer_write(&evInAtomIters[i], 0, 0, CARLA_URI_MAP_ID_ATOM_BLANK, atom->size, LV2_ATOM_BODY_CONST(atom));03:22
drobillaHarryHaaren: So you're writing [ :name "suparobject", :awesome 42.0 RANDOM_TIME_STAMP_THAT_DOES_NOT_BELONG_HERE ...03:22
HarryHaarensure, i get it. I guess i get confused in the implementation details.03:22
drobillaThe forge knows the context, it should just fail to do so03:23
HarryHaarenits fixed now, and i learnt from it, thanks.03:23
drobillaNot that anyone checks the errors anyway, myself included, but y'know03:23
HarryHaarenhah true.03:23
HarryHaarenthrow in a good au'l assert(false); and they'll notice ;)03:23
falktxI had some test code in carla but had to remove it because plugins were not correct03:24
falktxprinting stuff during RT process is not funny03:24
HarryHaarenthat's when to A) log extension or B) ship it to an offline thread manually :)03:24
HarryHaarenand then spam the console03:25
* HarryHaaren refactors && sleep(8)03:27
*** HarryHaaren has quit IRC03:27
*** falktx has quit IRC03:41
*** falktx has joined #lv203:43
*** falktx has quit IRC03:48
*** LAbot has joined #lv205:42
*** edogawa has joined #lv207:05
*** edogawa_ has joined #lv208:04
*** edogawa has quit IRC08:08
*** NickSB2 has joined #lv210:16
*** ddom has joined #lv210:18
*** mlpug has joined #lv212:14
*** rncbc_jolla has joined #lv212:36
*** NickSB2 has quit IRC13:27
*** rncbc_jolla has quit IRC13:46
*** HarryHaaren has joined #lv213:57
*** mlpug has quit IRC14:09
*** gianMOD has quit IRC14:36
*** bazz has quit IRC15:07
*** bazz has joined #lv215:09
*** ricardocrudo has joined #lv215:10
*** edogawa_ is now known as edogawa15:19
*** ricardocrudo has quit IRC15:35
*** ricardocrudo has joined #lv215:47
*** gianMOD has joined #lv216:39
*** gianMOD has quit IRC16:44
*** zth has joined #lv216:45
*** mlpug has joined #lv216:59
*** gianMOD has joined #lv217:12
*** ddom has quit IRC17:24
*** falktx has joined #lv217:35
*** falktx has quit IRC17:48
*** ddom has joined #lv217:50
*** falktx has joined #lv217:52
*** ddom has quit IRC18:06
*** mlpug has quit IRC18:25
*** zth has quit IRC19:15
*** mlpug has joined #lv219:33
*** rncbc has joined #lv220:12
*** rncbc has quit IRC20:22
*** NickSB2 has joined #lv220:24
*** HarryHaaren has quit IRC21:45
*** falktx has quit IRC22:44
*** gianMOD has quit IRC22:51
*** HarryHaaren has joined #lv222:59
*** edogawa has quit IRC23:21

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