Friday, 2015-02-20

badosuHi drobilla, thanks for answering about my ttl concern from some days ago00:36
badosuSo if I understand it correctly I just need to create an URI for each GUI implementation00:37
*** falktx has quit IRC00:37
badosuAnd then include multiple ui:ui declarations on the dsp URI?00:37
badosue.g.: ui:ui plugin#gtk;\n ui:ui plugin#qt4;\n ui:ui plugin#ntk;00:38
*** edogawa has quit IRC00:40
drobillabadosu: yes.00:45
drobillaI always remember that triple as the other way around (<ui> ui:forPlugin <plugin>) but it's not.  I wonder why...00:45
badosunice, I didn't find this in the documentation, so you helped me a lot, thanks00:46
*** falktx has joined #lv200:46
badosuI thought multiple declarations would be ignored00:47
badosuAnyway, simple hosts will probably ignore it and use the first or the last attribute00:47
badosuI guess...00:47
falktxhosts will try to use the best option00:47
falktxa qt host will try to use a qt ui if available, then the others00:48
badosuA intelligent host I guess, right? Or does wrappers like lilv already do this?00:48
badosuI am sorry if I am being pedant, it's that I am amazed by lv2 and I want to really understand it00:49
*** falktx has quit IRC00:54
*** falktx has joined #lv200:54
drobillaBasically things will choose the first one they can use01:01
drobillaNothing really supports multiple distinct UIs right now01:01
badosuLet's see if jalv.qt chooses the QT version and jalv.gtk the GTK one :-)01:02
badosuAs soon as I fix it01:02
badosuThis question is of special interest for me as I want to make LMMS be able to host lv2 plugins01:03
badosuSo if a wrapper like lilv chooses the UI before I am able to assess whether there is a QT interface is available that's pretty bad01:03
drobillaSuil lets you pass a callback to choose01:03
drobillaObviously there's some mechanism for this or nothing would work :)01:04
badosuI still did not mess around with the hosting part, I am still learning the basics01:04
badosuBut I guess i'll probably get the qt widget handled to LV2_Handle and if it's not qt i'll have to sort out some kind of embedding01:05
falktxsuil does that for you01:09
badosuThat looks great, thanks for all the help01:14
drobillaI think you mean LV2UI_Handle, but that's distinct from the widget.01:14
drobillaBut yes, use suil.01:14
drobillaUnless you feel like duplicating 5 years of effort getting that nightmare rightish :)01:15
badosuI was mainly considering lilv, but since both of you recommended I'll take suil more seriously01:15
drobilla?  They are completely different things.01:15
badosuYeah, I meant LV2UI_Handle01:15
badosuOh, ok. I did not know about it before this conversation, so that's why I confused both01:16
badosu(except for errors when messing around with development using jalv)01:16
badosuOh ok, now that I checked suil is specifically targeted for UI support01:17
badosuthat changes everything for me, since lilv takes care of the lv2 specification and suil of the ui, i'll just have to care about plumbin the ports and I/O01:18
badosuthat's great01:19
drobillaThat's the idea.01:19
drobillalilv deals with discovering plugins, loading data, and so on.01:19
drobillasuil is just a UI wrapping library.01:19
badosugrejppi already has made a lot of effort in this area in his branch, i'll be able to understand better his work now01:20
badosuso now I can focus on a QT host simple enough to load my stupid amp plugin01:22
badosuand then I'll be able to improve lmms01:22
badosuthanks a lot people, you're being really helpful, before this conversation I thought that I would have to make a herculean effort01:24
badosuit's not always like this on IRC, heh01:24
* drobilla bursts that bubble by doing his best Linus impression on the mailing list :)02:29
drobillaHm, I wonder if you can override deleted methods02:37
drobillaThat'd provide a way to get pure non-virtual methods, i.e. forcing plugin developers to implement an interface they inherit from02:37
*** NickSB2 has quit IRC02:43
rgareusdrobilla: I'm sorry. you're not even close. You need more swearwords.  I suggest to substitute all those "hand-having" with more offensive terms.02:43
badosudrobilla: just noticed your response there, thanks!02:44
rgareusdrobilla: but the term "religious Javaesque arguments" is brilliant! thanks for that.02:44
badosurgareus: Linus certainly would have added a really long multi-word multi-swear adjective before Javaesque02:45
badosulol02:45
drobillaWell, I'm trying to direct the conversation towards something useful, not tell someone to fuck off.  Presumably Linus does that sometimes too :)02:54
badosudrobilla: you treated me nice so far because i did not sendyou a patch yet :-)02:56
drobillaI'm generally nice to people actually doing anything.  Writing plugins and hosts certainly counts.03:06
drobillaNot so nice when I'm seeking a solution to a concrete problem and get bullshit instead.  l-a-d is brutal for that03:06
badosudrobilla: I just dropped the extern calls from my code and it works, thanks for that03:12
drobillabadosu: I don't even get where they would have been...03:27
drobillaYou re-wrote the prototypes for every function in the headers or something?03:27
badosuno, please forget everything I said about that and assume I don't know anything about C++03:36
badosubecause that would be closer to the truth than probably what you are assuming right now03:36
badosuI though that I had to do something to achieve binary compatibility between C headers and C++03:37
badosuI mean, just C and C++03:37
badosuI guess I confused it with the `extern "C" {}` call03:39
drobillaYou do, that's what the extern "C" does03:56
drobillaBut most headers conditionally do this for you03:56
badosuwell, I am always skeptical that people do a good job most of the time04:01
badosuso since I am new to C++ I thought that was a good prevention, but if you say most of the time this is not needed that's good news04:02
* drobilla still doesn't get what "that" is04:02
badosubtw, I just tested right now and at least on jalv it looks like the first ui declaration is the one used04:03
badosulet me check qtractor and ardour04:03
badosuQtractor uses QT, nice04:03
badosuit's really intelligent04:03
drobillaThere is no "first"04:04
badosuwhen a turtle file is parsed the order of declaration is not preserved?04:04
drobillaIt's loaded into a model, so no.04:05
drobillaTechnically if you stream parse it, sure, you'll get the triples out in the order they're written, but order is not relevant in RDF.04:05
drobillaAlso duplicates do not exist by definition.04:05
badosuHmmm... that's interesting, because every jalv implementation uses the gtk GUI04:05
badosuwhich is the *first* that I declared04:06
badosueven when I use jalv.qt04:06
drobillajalv.qt prefers ui:Qt4UI04:07
badosuIt's not happening here04:07
badosuQtractor uses the QT interface, jalv.qt is using the Gtk one04:07
badosuOnly if I made some mistake04:07
badosulet me double check04:07
drobillaWell, it passes that to suil anyway.  Might not be selecting correctly.04:08
drobillaIt picks the first supported one, actually04:09
drobillaWhich includes Gtk04:09
badosujust checked it, that's happening, anyway that must be a really tiny glitch04:09
drobilla(Which probably is coincidentally "first" because G comes before Q)04:09
badosulol, I can *fix* that, it can be my first contribution for jalv04:09
drobillaIn theory.  Nobody really cared04:10
badosuif it's wanted of course04:10
badosuyeah, i know it's just a tiny details04:10
badosubut for someone learning from scratch every tiny detail helps a lot04:10
drobillaRoughly nobody learning from scratch is going to implement exactly the same UI in many toolkits, but feel free04:10
badosuOkay, you can reject it if you don't like the patch anyway :-)04:11
drobillaWhat we really need is actual multi-UI selection support by users, but few/no plugins really do that either04:11
badosuYeah, just noticed that Qtractor has a really nice selection box04:11
drobillasuil_ui_supported returns a "quality" number for this purpose04:12
badosuBut does not care if you have many UIs, I guess nobody would care about it?04:12
badosuI guess if someone wants a nice looking lv2 plugin that works on may platforms will always use qt?04:12
badosuI don't know, let me talk less and code more, thanks for the help04:13
drobillaAnyhone who actually cares about portability has pretty much universally ran screaming from such toolkits and implemented things that provide a native window04:13
badosusorry, I don't understand, is it feasible to not use a toolkit and be portable?04:17
badosuI mean, what would you do, draw your own gui with cairo and reimplement the widget callback infrastructure?04:18
badosunot really cairo, could be anything04:18
drobillaOther platforms don't have the toolkit installed04:18
rgareusbadosu: do you think that any standard toolkit is suitable for audio-plugin GUIs?04:18
drobillaSo for distributing binary plugins there, as is usual, means including everything04:18
drobillaAt which point "toolkit" from a host POV is irrelevant04:19
badosurgareus: I don't know really, I just assume that if there are a lot of amazing LV2 plugins that work well enough (at least for me) it can?04:19
rgareusbadosu: apart from the technical compat issues  gtk2 <> gtk3  and QT4 <> QT5 can't live in the same memory-space. gtk is also not relocatable itself (no different versions in same host) etc etc....04:20
drobillaGtk is hyper annoying to distribute.  Qt I don't know, but it's weird pre-processed not-C++ stuff and GPL, so not exactly a clear choice for everyone in the world either.04:20
rgareusI don't think any of them offers widgets that are needed for custom UIs.04:20
drobillaNative window system is the only thing you can rely on.04:20
badosurgareus: yeah, the meta object precompiling is a pain the ass on QT, I lost 2 hours to figure out how to use it04:21
drobillaJUCE is pretty popular (outside LV2ville).  Shame it's an ad-hoc kitchen sink and then some04:21
rgareusyep04:21
badosuI heard wxWidget is farily portable and lightweight, but never really used it04:21
rgareus and DPF is also its way to a kitchen sink.04:21
drobillaWell, viva pugl04:22
drobillaOne of these days Im'ma steal either rgareus's or Harry's toolkits and/or merge them into some unholy hybrid for my own purposes04:22
badosui heard from harry that he's developing avtk over pugl, so that maybe a nice alternative on the future04:22
rgareusbtdt. robtk is also simiar04:23
drobillaI have been considering writing a minimal native menus wrapper lib, so canvas + menu is all I need04:23
drobillaMaybe file dialogs, too04:23
rgareustoolkits are for tool kids :)04:23
badosueven thought there's that qt thing with moc, I was able to use it on a handcrafted Makefile with just 4 linus of code, and 1 include on the source04:24
rgareusdrobilla: falktx merged sofd into DPF just recently.04:24
rgareusdrobilla: so DPF has a filebrowser now04:24
badosu"4 linux of code", omg what has science done04:24
drobillaIf I could do it again I'd probably make pugl use_reasonable_c_person_names, maybe call it uwin, and call that thingie umenu, and so on04:24
badosuI see that you guys really embrace the suckless(tm) philosophy04:25
badosuI didn't expect to find it on the audio land04:25
badosuContext: http://suckless.org/04:25
rgareussuck least  more like04:26
badosuthat's nice although I feel I am on the side of the toy kits, at least while I am a newbie04:26
drobillaDebatable at best.  The only thing I do that I'd consider even vaguely in line with that is most of my C libraries04:27
drobillargareus: I get enough X11 trying to make pugl work, thanks :)04:27
drobillaFile browser I could deal with a custom thing, but menus sort of have to be native04:27
rgareusdrobilla: menu-bar in a plugin?  that's unusual.04:28
drobillaPartially because implementing them decently would be a massive PITA and contraining to a window would suck anyway, and things like Unity/OSX/Android/... having their own ideas about what the top level one should be like04:28
drobillargareus: Well, Ingen/Machina/Patchage are the apps in my case.  Extremely close to "just a ganv canvas", but not quite...04:29
badosualthough (as drobilla mentioned) some people don't like it, I feel lv2 is a pretty suckless grade interface04:29
drobillaLV2 is a god awful mess built on top of some great ideas04:29
drobillaI spend a lot of time lately thinking about how to reduce the mess part without breaking anything...04:29
badosuI don't know, but I can't be worse than VST04:29
drobillaNothing can be worse than VST.04:30
rgareusVST204:30
badosuLinux-VST04:30
badosuWhat does Linux-VST means anyway?04:30
drobillaMaking some serious inroads on Lignux these days, though04:30
badosuIf something sucks less than most of the garbage out there is enough for me04:31
badosuTake terminal emulation for example, if st was 10x a worse terminal it would still suck less tham most others04:32
badosu(im my humble opinion)04:33
drobillaI still don't udnerstand why st compose input works correctly and pugl doesn't.  Does the same damned thing04:33
badosuis pugl a terminal emulator? I don't understand the comparison, lol04:34
* drobilla has pissed away at least 1 entire day so far smashing his face against X*LookupString04:34
badosuOh, I got, you mean the keyboard capture on window focus logic04:35
rgareusdrobilla: VST is just an API. basically a couple of functions and callbacks that one needs to implement and compile the shebang to a shared library. ie a .dll (VST)  a .dylib (OSX-VST)  or a .so (Linux-VST).04:37
rgareusbadosu: ^^04:37
* drobilla has done zero real work today, damnit04:37
badosuI really should'nt have talked bad about linux-vst, if it wasn't for taht there would be no free graphical audio plugin on lmms anyway04:37
rgareusbadosu: hence  Linux-VST if it's a .so natively for linux and not a .dll loaded with wine on linux04:37
drobillaThis is #lv2.  Talking bad about linux-vst is hardly going to get you in trouble ;)04:38
drobillaI hope it dies in a fire.04:38
rgareusit's a miracle that it survied so long.04:39
badosuit's just that the idea of someone developing against proprietary code instead of DSSI or LV2 for linux makes me upset04:39
badosuof course, except if that brings commercial vsts to support linux04:39
rgareuseven though the VST standard has mutated a couple of times.. it still has this windows'95 ring to it.04:39
drobillaI would rather an open standard than a proprietary one, regardless of who is using it for what.04:42
drobillaThis is pretty much why all of LV2 is under the simplest and most permissive license I could find.04:43
drobillaProprietary developers using LV2 is a victory compared to them not, even if proprietary anything is no victory in general.04:44
badosudrobilla: I agree, even that I care about software freedom, I care more about bringing vst commercial studios to support linux04:44
drobillaOtherwise it'd be AGPL3, the most militant "fuck off" license I can find, like Ingen :)04:44
drobillaYes.  Plus it's at least partially an act of self-sabotage.  Plugins only working on proprietary platforms, with proprietary specs, keeps people locked in.04:46
drobillaThe more people move to free platforms, the less tolerant of proprietary nonsense they will be come, because they can see the greener grass.04:46
drobillaParticularly in audio, where even the most egregious broken DRM/copy protection insanity is par for the course.04:46
drobillaI had a go with some of that recently.  My favourite was plugins that just immediately segfaulted the entire host because of a crash in some copy protection UI thing.04:48
badosudrobilla: that must've been awful04:53
badosuI am not a VST developer but I imagine that in the beggining of the interface it must have been a pain in the ass04:54
badosuto support macs and pcs at the same time04:54
drobillaAFAIK they had VSTUI for this.  Basically a shitty toolkit portable to all the platforms04:55
drobillaThere's even an X11 implementation hanging around there somewhere.  I ported some scope using it to LV2 years ago04:55
drobilla(waste of time, but hey)04:55
rgareuswhere "all" = Windows and OSX04:55
badosulol04:56
badosufinally, I finished my first milestone learning LV2 plugin programming: https://github.com/badosu/BadAmp04:56
badosuThis was a test on "toy kits" that I could use If I were to seriously develop one04:57
badosuNow I am thinking if I should try to create a lv2 triple oscillator synth or try to already implement LMMS as a host04:58
badosuanyway, thanks for all the help folks, was really great :-)04:58
* drobilla votes porting all the LMMS things to LV2 for 100% selfish reasons04:58
badosuthis was already somewhat done04:58
drobillaI mean, uh.. objective.... truths.04:58
drobillaYeah, I vaguely remember something about that04:59
badosuyeah, lv2 instrument ports and lv2 hosts are two things that people put effort int04:59
badosuhttps://github.com/pgiblock/lmms-lv204:59
badosuand https://github.com/grejppi/lmms/tree/master-lv204:59
drobillaAnyway, I give up on today.  Time to, um, sleep05:00
badosume too, see ya, have a good one05:00
drobillas/sleep/watch 15 episodes of Star Trek in a row until daylight and hate myself/05:00
badosubye rgareus05:00
rgareus'night05:02
rgareusdrobilla: TNG?05:02
rgareusdrobilla: 15 episodes that's a looong sleep05:03
drobillargareus: DS905:10
drobillaokay, maybe 5 :)05:10
*** falktx has quit IRC05:34
*** falktx has joined #lv205:35
*** gianMOD has joined #lv206:21
*** gianMOD has quit IRC06:50
*** edogawa has joined #lv207:31
*** gianMOD has joined #lv207:51
*** sigma6 has quit IRC08:14
*** gianMOD has quit IRC08:25
*** gianMOD has joined #lv209:11
*** gianMOD has quit IRC09:11
*** gianMOD has joined #lv209:11
*** gianMOD has quit IRC09:21
*** gianMOD has joined #lv209:21
*** gianMOD has quit IRC09:22
*** falktx_ has joined #lv209:25
*** falktx has quit IRC09:26
*** falktx_ is now known as falktx09:32
bgoladrobilla: nice, thanks! im at london airport right now, will check this later today and test with mod-ui stuff :)09:53
*** edogawa has quit IRC10:03
*** NickSB2 has joined #lv211:04
*** JohannesG_ has joined #lv211:36
* grejppi notes DPF uses lv2:sampleRate instead of param:sampleRate for options11:39
falktxthey are made for different things11:41
falktxparam:sampleRate is a portProperty11:41
falktxlv2:sampleRate is an object like bufsize:maxSize11:42
grejppifalktx: http://lv2plug.in/ns/lv2core/#sampleRate begs to differ11:42
falktxor maybe it's the other way around11:42
falktxhaving 2 things named the same is confusing11:42
*** JohannesG has quit IRC11:43
*** JohannesG_ is now known as JohannesG11:43
*** sigma6 has joined #lv212:38
*** aombk has joined #lv212:44
aombkcan you walk me through lv2? for starters, the things i may make supporting lv2, will they work on windows?13:00
grejppifalktx: maybe DPF should define rate and buffer size as opts:supportedOption in the ttl file too?13:13
*** ddom has joined #lv213:20
falktxgrejppi: opts:supportedOption? is that a thing?13:48
falktxaombk: have you seen the lv2 book yet?13:50
falktxaombk: in any case, lv2 is not restricted by OS, it works everywhere13:50
aombkfalktx, no i havent13:53
falktxaombk: http://lv2plug.in/book/13:53
falktxgrejppi: ah yeah it is http://lv2plug.in/ns/ext/options/#supportedOption13:54
falktxgrejppi: somehow I completely missed it, thanks for the heads up13:54
falktxdrobilla: I think we still need the host-side option feature. we discuss it some time ago13:55
falktxdrobilla: there's the plugin-side interface, but no host-side feature13:55
falktxwe can re-use the plugin interface, but seems wrong13:55
falktxdrobilla: is a patch ok?13:55
falktxhmm13:56
* falktx notices http://lv2plug.in/ns/ext/options/#options13:56
falktxneeds some new name...13:56
drobillaYes, bad names for those sampleRate things.  port properties are kind of annoying14:24
drobillafalktx: Sure.  That among many other things.  It's not as straightforward as just using the same interface, though.14:25
drobillafalktx: I don't remember exactly why14:25
drobillaWell, the handle thing is why we literally can't use exactly the same struct, which is annoying14:26
drobillaBut it needs more functionality to be able to do stuff like presets14:26
drobillafalktx: first go as a patch would be good.  Make a fork somewhere if you haven't already14:27
falktxdrobilla: is the lv2 git http only? no git:// address ?14:28
drobillafalktx: I don't even know.  Does it matter?14:28
* drobilla uses ssh14:28
falktxI have ssh-askpass setup for git+ssh, not sure if it works over http[s]14:29
drobillaNo ssh involved anyway, here.14:30
drobillaWhat I do with pugl is just encourage people to push forks wherever they please, then just add as a remote so I can browse them and pull/cherry pick, which seems to work well14:31
drobillaOr just email patches, but git is more convenient on both ends14:32
falktxdoing the remote now14:32
* drobilla wishes you could set a repo config for default email send-to addy14:32
falktxhttps://github.com/falkTX/lv214:32
falktxlet me see what changes I still have in my local carla headers14:33
drobillafalktx: s'more C++ fun in there.  Minimal start to atom wrappers, with Sequence iterator.  Example plugin uses range-based for loop14:34
drobillaIt's a strange process, this.  Makes me go over all the little things that are just a bit weird and wrong and make me feel bad.... but then you can just veneer over them and make it disappear in the wrapper in most cases, which feels good. :)14:34
drobillaStill no idea how to do the extension_data thing but doesn't matter for features14:35
drobillafalktx: added, thanks.14:36
falktxthere's quite a few comment updates14:38
falktxdrobilla: are you finished updating comments? I do some local changes to some headers (mostly adding const), and I'd like to update14:38
drobillafalktx: I am not sure what you mean14:39
falktxthere's a lot of new comments in the headers14:39
falktxdoxygen related stuff mostly14:39
drobillaYes, I reorganized it to make single pages.14:40
drobillaI certainly wouldn't say I'm definitely 100% totally finished touching any comment ever, but there won't be any massive structoral changes if that's what you mean14:40
* drobilla doesn't get why this matters anyway.14:41
falktxI need to adjust every single header for local build14:41
drobillaWhy do comment changes mean you need to adjust headers?14:41
falktxs|lv2/ns/..../atom.h|atom.h| for example14:41
drobillaWell, that's dumb, so that's what you get14:42
falktx:)14:42
falktxdrobilla: first patch https://github.com/falkTX/lv2/commit/5e5fc74ddc80063798dba4f5a4ba24024c450f25.patch14:42
drobillaThough keep it in git and maintain the diff.  Surely you don't copy paste the things and manually do this constantly?14:42
falktxI do...14:42
drobillaGood grief14:43
drobillaI have been considering moving to lv2/ext/foo.h14:43
drobillaBut installing triple copies of every header is a bit much14:43
falktxlv2_descriptor and lv2ui_descriptor have the export-symbol, lv2_lib_descriptor14:44
falktxdoes not14:44
drobillaThe whole thing should really have been a flat namespace to begin with (URIs included)14:44
falktxthere doesn't seem to be a macro for Qt5UI yet14:45
falktxrui's plugins exist and can be qt5 widgets14:45
falktxanother patch coming :)14:46
drobillaWhat type did he give them, then?14:46
falktxqt514:47
falktxand external14:47
falktxdrobilla: patch https://github.com/falkTX/lv2/commit/654f2af4dcb525a9753d1e28f27da7100f3c1632.patch14:48
falktx<http://drumkv1.sourceforge.net/lv2#ui>14:49
falktxa lv2ui:Qt5UI ;14:49
falktxdrobilla: he just assumed qt5 would become official soon I guess14:50
*** ddom has quit IRC15:07
aombkfalktx, i was away. thanks for the link15:30
falktxdrobilla: morph header includes lv2core and urid, but doesn't need to16:06
falktxdrobilla: probably should be removed to match the others16:06
drobillaHm, yeah.16:09
drobillaThe headers for just URIs are annoying, but can't remove them...16:09
falktxI'll leave that to you16:09
badosufalktx: thanks for that, I noticed and found odd that there was not yet a QT5UI16:26
falktxdrobilla: this line seems wrong...16:32
falktx#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)16:32
falktxdrobilla: shouldn't we check if __GNUC__ is defined first?16:32
falktxdrobilla: like this:16:32
falktx#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))16:32
falktx?16:32
drobillafalktx: Undefined preprocessor symbols in conditionals are 0, so it will never be true anyway16:35
falktxbut it can give a warning16:37
falktx-Wundef16:37
drobillaDoes a compiler exist that supports -Wundef, does not define __GNUC__, and warns in that case?16:40
drobillaC99 really should have added a deprecated thingie16:42
drobillaGraphviz headers are annoyingly noisy with -Wunder but I have never seen that one do it16:45
*** falktx has quit IRC16:59
*** sigma6 has quit IRC17:07
*** aombk2 has joined #lv218:00
*** aombk has quit IRC18:04
*** rncbc has joined #lv218:43
*** gianMOD_ has joined #lv218:45
*** gianMOD_ has quit IRC18:49
*** NickSB2 has quit IRC19:50
badosuthere's a weird thing going on when I use my symple plugin with qtractor. When I close the widget window, qtractor as a whole segfaults20:39
badosuit probably is something that I didnt do right on my code, but could'nt this be an issue with suil?20:40
rncbcbadosu: sorry ill have to leave in a minute. but will bbl.20:45
*** rncbc is now known as rncbc|AFK20:46
drobillabadosu: Suil does basically nothing in pass-through cases like qt-in-qt20:49
badosuit looks like the crash is related to this lib: /usr/local/lib/libsord-0.so.0.12.220:50
*** gianMOD has joined #lv220:50
badosuso this may be happening on Qtractor20:50
drobillaManaging to crash sord is pretty impressive, if so20:51
badosulol, let me dig this a little more20:51
drobillaThough how closing a UI could possibly have anything to do with that is anyone's guess20:52
*** gianMOD has quit IRC20:53
*** curlymorphic has joined #lv220:54
*** gianMOD_ has joined #lv220:55
*** gianMOD_ has quit IRC20:58
badosuI don't know, but here's the backtrace if it's of interest to anyone: https://gist.github.com/badosu/4481d7e33a395a42684120:59
badosureally weird because the code is very simple21:01
*** gianMOD has joined #lv221:06
*** gianMOD has quit IRC21:20
*** gianMOD_ has joined #lv221:24
*** falktx has joined #lv221:39
*** gianMOD_ has quit IRC22:12
*** edogawa has joined #lv222:40
*** falktx has quit IRC22:51
*** falktx has joined #lv223:00
*** drobilla has quit IRC23:14
*** drobilla has joined #lv223:16
badosurncbc|AFK: I'll just post this as it might be useful for you, I know you are away23:16
badosurncbc|AFK: if the plgin does not implement cleanup properly, it can segfault qtractor23:17
badosurncbc|AFK: see https://github.com/badosu/BadAmp/pull/123:17
*** rncbc|AFK is now known as rncbc23:34
rncbcbadosu: one just don't release without valgrind'ing it first (that would go in some GoT meme i suppose;))23:37
falktxalso don't forget some static code check like clang23:39
rncbcbadosu: s/GoT/LotR/23:39
falktxplus valididating the ttl files23:39
rncbcbadosu: failing to do proper cleanup() might be of no consequence while testing under jalv as it exit()s on close anyway23:42
drobillaAh yes, the Ultra Rapid Shutdown™ feature :)23:45
drobillaIt's best to optimize your UIs for maximum throughput of while (true) { load(); crash(); }23:46
drobillaThis is real-time code, after all23:46
rncbcdrobilla: because, if it were about fantasy-time, crash() would always return to the caller :)23:52

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