badosu | Hi drobilla, thanks for answering about my ttl concern from some days ago | 00:36 |
---|---|---|
badosu | So if I understand it correctly I just need to create an URI for each GUI implementation | 00:37 |
*** falktx has quit IRC | 00:37 | |
badosu | And then include multiple ui:ui declarations on the dsp URI? | 00:37 |
badosu | e.g.: ui:ui plugin#gtk;\n ui:ui plugin#qt4;\n ui:ui plugin#ntk; | 00:38 |
*** edogawa has quit IRC | 00:40 | |
drobilla | badosu: yes. | 00:45 |
drobilla | I always remember that triple as the other way around (<ui> ui:forPlugin <plugin>) but it's not. I wonder why... | 00:45 |
badosu | nice, I didn't find this in the documentation, so you helped me a lot, thanks | 00:46 |
*** falktx has joined #lv2 | 00:46 | |
badosu | I thought multiple declarations would be ignored | 00:47 |
badosu | Anyway, simple hosts will probably ignore it and use the first or the last attribute | 00:47 |
badosu | I guess... | 00:47 |
falktx | hosts will try to use the best option | 00:47 |
falktx | a qt host will try to use a qt ui if available, then the others | 00:48 |
badosu | A intelligent host I guess, right? Or does wrappers like lilv already do this? | 00:48 |
badosu | I am sorry if I am being pedant, it's that I am amazed by lv2 and I want to really understand it | 00:49 |
*** falktx has quit IRC | 00:54 | |
*** falktx has joined #lv2 | 00:54 | |
drobilla | Basically things will choose the first one they can use | 01:01 |
drobilla | Nothing really supports multiple distinct UIs right now | 01:01 |
badosu | Let's see if jalv.qt chooses the QT version and jalv.gtk the GTK one :-) | 01:02 |
badosu | As soon as I fix it | 01:02 |
badosu | This question is of special interest for me as I want to make LMMS be able to host lv2 plugins | 01:03 |
badosu | So 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 bad | 01:03 |
drobilla | Suil lets you pass a callback to choose | 01:03 |
drobilla | Obviously there's some mechanism for this or nothing would work :) | 01:04 |
badosu | I still did not mess around with the hosting part, I am still learning the basics | 01:04 |
badosu | But 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 embedding | 01:05 |
falktx | suil does that for you | 01:09 |
badosu | That looks great, thanks for all the help | 01:14 |
drobilla | I think you mean LV2UI_Handle, but that's distinct from the widget. | 01:14 |
drobilla | But yes, use suil. | 01:14 |
drobilla | Unless you feel like duplicating 5 years of effort getting that nightmare rightish :) | 01:15 |
badosu | I was mainly considering lilv, but since both of you recommended I'll take suil more seriously | 01:15 |
drobilla | ? They are completely different things. | 01:15 |
badosu | Yeah, I meant LV2UI_Handle | 01:15 |
badosu | Oh, ok. I did not know about it before this conversation, so that's why I confused both | 01:16 |
badosu | (except for errors when messing around with development using jalv) | 01:16 |
badosu | Oh ok, now that I checked suil is specifically targeted for UI support | 01:17 |
badosu | that 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/O | 01:18 |
badosu | that's great | 01:19 |
drobilla | That's the idea. | 01:19 |
drobilla | lilv deals with discovering plugins, loading data, and so on. | 01:19 |
drobilla | suil is just a UI wrapping library. | 01:19 |
badosu | grejppi already has made a lot of effort in this area in his branch, i'll be able to understand better his work now | 01:20 |
badosu | so now I can focus on a QT host simple enough to load my stupid amp plugin | 01:22 |
badosu | and then I'll be able to improve lmms | 01:22 |
badosu | thanks a lot people, you're being really helpful, before this conversation I thought that I would have to make a herculean effort | 01:24 |
badosu | it's not always like this on IRC, heh | 01:24 |
* drobilla bursts that bubble by doing his best Linus impression on the mailing list :) | 02:29 | |
drobilla | Hm, I wonder if you can override deleted methods | 02:37 |
drobilla | That'd provide a way to get pure non-virtual methods, i.e. forcing plugin developers to implement an interface they inherit from | 02:37 |
*** NickSB2 has quit IRC | 02:43 | |
rgareus | drobilla: 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 |
badosu | drobilla: just noticed your response there, thanks! | 02:44 |
rgareus | drobilla: but the term "religious Javaesque arguments" is brilliant! thanks for that. | 02:44 |
badosu | rgareus: Linus certainly would have added a really long multi-word multi-swear adjective before Javaesque | 02:45 |
badosu | lol | 02:45 |
drobilla | Well, I'm trying to direct the conversation towards something useful, not tell someone to fuck off. Presumably Linus does that sometimes too :) | 02:54 |
badosu | drobilla: you treated me nice so far because i did not sendyou a patch yet :-) | 02:56 |
drobilla | I'm generally nice to people actually doing anything. Writing plugins and hosts certainly counts. | 03:06 |
drobilla | Not so nice when I'm seeking a solution to a concrete problem and get bullshit instead. l-a-d is brutal for that | 03:06 |
badosu | drobilla: I just dropped the extern calls from my code and it works, thanks for that | 03:12 |
drobilla | badosu: I don't even get where they would have been... | 03:27 |
drobilla | You re-wrote the prototypes for every function in the headers or something? | 03:27 |
badosu | no, please forget everything I said about that and assume I don't know anything about C++ | 03:36 |
badosu | because that would be closer to the truth than probably what you are assuming right now | 03:36 |
badosu | I though that I had to do something to achieve binary compatibility between C headers and C++ | 03:37 |
badosu | I mean, just C and C++ | 03:37 |
badosu | I guess I confused it with the `extern "C" {}` call | 03:39 |
drobilla | You do, that's what the extern "C" does | 03:56 |
drobilla | But most headers conditionally do this for you | 03:56 |
badosu | well, I am always skeptical that people do a good job most of the time | 04:01 |
badosu | so 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 news | 04:02 |
* drobilla still doesn't get what "that" is | 04:02 | |
badosu | btw, I just tested right now and at least on jalv it looks like the first ui declaration is the one used | 04:03 |
badosu | let me check qtractor and ardour | 04:03 |
badosu | Qtractor uses QT, nice | 04:03 |
badosu | it's really intelligent | 04:03 |
drobilla | There is no "first" | 04:04 |
badosu | when a turtle file is parsed the order of declaration is not preserved? | 04:04 |
drobilla | It's loaded into a model, so no. | 04:05 |
drobilla | Technically 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 |
drobilla | Also duplicates do not exist by definition. | 04:05 |
badosu | Hmmm... that's interesting, because every jalv implementation uses the gtk GUI | 04:05 |
badosu | which is the *first* that I declared | 04:06 |
badosu | even when I use jalv.qt | 04:06 |
drobilla | jalv.qt prefers ui:Qt4UI | 04:07 |
badosu | It's not happening here | 04:07 |
badosu | Qtractor uses the QT interface, jalv.qt is using the Gtk one | 04:07 |
badosu | Only if I made some mistake | 04:07 |
badosu | let me double check | 04:07 |
drobilla | Well, it passes that to suil anyway. Might not be selecting correctly. | 04:08 |
drobilla | It picks the first supported one, actually | 04:09 |
drobilla | Which includes Gtk | 04:09 |
badosu | just checked it, that's happening, anyway that must be a really tiny glitch | 04:09 |
drobilla | (Which probably is coincidentally "first" because G comes before Q) | 04:09 |
badosu | lol, I can *fix* that, it can be my first contribution for jalv | 04:09 |
drobilla | In theory. Nobody really cared | 04:10 |
badosu | if it's wanted of course | 04:10 |
badosu | yeah, i know it's just a tiny details | 04:10 |
badosu | but for someone learning from scratch every tiny detail helps a lot | 04:10 |
drobilla | Roughly nobody learning from scratch is going to implement exactly the same UI in many toolkits, but feel free | 04:10 |
badosu | Okay, you can reject it if you don't like the patch anyway :-) | 04:11 |
drobilla | What we really need is actual multi-UI selection support by users, but few/no plugins really do that either | 04:11 |
badosu | Yeah, just noticed that Qtractor has a really nice selection box | 04:11 |
drobilla | suil_ui_supported returns a "quality" number for this purpose | 04:12 |
badosu | But does not care if you have many UIs, I guess nobody would care about it? | 04:12 |
badosu | I guess if someone wants a nice looking lv2 plugin that works on may platforms will always use qt? | 04:12 |
badosu | I don't know, let me talk less and code more, thanks for the help | 04:13 |
drobilla | Anyhone who actually cares about portability has pretty much universally ran screaming from such toolkits and implemented things that provide a native window | 04:13 |
badosu | sorry, I don't understand, is it feasible to not use a toolkit and be portable? | 04:17 |
badosu | I mean, what would you do, draw your own gui with cairo and reimplement the widget callback infrastructure? | 04:18 |
badosu | not really cairo, could be anything | 04:18 |
drobilla | Other platforms don't have the toolkit installed | 04:18 |
rgareus | badosu: do you think that any standard toolkit is suitable for audio-plugin GUIs? | 04:18 |
drobilla | So for distributing binary plugins there, as is usual, means including everything | 04:18 |
drobilla | At which point "toolkit" from a host POV is irrelevant | 04:19 |
badosu | rgareus: 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 |
rgareus | badosu: 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 |
drobilla | Gtk 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 |
rgareus | I don't think any of them offers widgets that are needed for custom UIs. | 04:20 |
drobilla | Native window system is the only thing you can rely on. | 04:20 |
badosu | rgareus: yeah, the meta object precompiling is a pain the ass on QT, I lost 2 hours to figure out how to use it | 04:21 |
drobilla | JUCE is pretty popular (outside LV2ville). Shame it's an ad-hoc kitchen sink and then some | 04:21 |
rgareus | yep | 04:21 |
badosu | I heard wxWidget is farily portable and lightweight, but never really used it | 04:21 |
rgareus | and DPF is also its way to a kitchen sink. | 04:21 |
drobilla | Well, viva pugl | 04:22 |
drobilla | One of these days Im'ma steal either rgareus's or Harry's toolkits and/or merge them into some unholy hybrid for my own purposes | 04:22 |
badosu | i heard from harry that he's developing avtk over pugl, so that maybe a nice alternative on the future | 04:22 |
rgareus | btdt. robtk is also simiar | 04:23 |
drobilla | I have been considering writing a minimal native menus wrapper lib, so canvas + menu is all I need | 04:23 |
drobilla | Maybe file dialogs, too | 04:23 |
rgareus | toolkits are for tool kids :) | 04:23 |
badosu | even 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 source | 04:24 |
rgareus | drobilla: falktx merged sofd into DPF just recently. | 04:24 |
rgareus | drobilla: so DPF has a filebrowser now | 04:24 |
badosu | "4 linux of code", omg what has science done | 04:24 |
drobilla | If 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 on | 04:24 |
badosu | I see that you guys really embrace the suckless(tm) philosophy | 04:25 |
badosu | I didn't expect to find it on the audio land | 04:25 |
badosu | Context: http://suckless.org/ | 04:25 |
rgareus | suck least more like | 04:26 |
badosu | that's nice although I feel I am on the side of the toy kits, at least while I am a newbie | 04:26 |
drobilla | Debatable at best. The only thing I do that I'd consider even vaguely in line with that is most of my C libraries | 04:27 |
drobilla | rgareus: I get enough X11 trying to make pugl work, thanks :) | 04:27 |
drobilla | File browser I could deal with a custom thing, but menus sort of have to be native | 04:27 |
rgareus | drobilla: menu-bar in a plugin? that's unusual. | 04:28 |
drobilla | Partially 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 like | 04:28 |
drobilla | rgareus: Well, Ingen/Machina/Patchage are the apps in my case. Extremely close to "just a ganv canvas", but not quite... | 04:29 |
badosu | although (as drobilla mentioned) some people don't like it, I feel lv2 is a pretty suckless grade interface | 04:29 |
drobilla | LV2 is a god awful mess built on top of some great ideas | 04:29 |
drobilla | I spend a lot of time lately thinking about how to reduce the mess part without breaking anything... | 04:29 |
badosu | I don't know, but I can't be worse than VST | 04:29 |
drobilla | Nothing can be worse than VST. | 04:30 |
rgareus | VST2 | 04:30 |
badosu | Linux-VST | 04:30 |
badosu | What does Linux-VST means anyway? | 04:30 |
drobilla | Making some serious inroads on Lignux these days, though | 04:30 |
badosu | If something sucks less than most of the garbage out there is enough for me | 04:31 |
badosu | Take terminal emulation for example, if st was 10x a worse terminal it would still suck less tham most others | 04:32 |
badosu | (im my humble opinion) | 04:33 |
drobilla | I still don't udnerstand why st compose input works correctly and pugl doesn't. Does the same damned thing | 04:33 |
badosu | is pugl a terminal emulator? I don't understand the comparison, lol | 04:34 |
* drobilla has pissed away at least 1 entire day so far smashing his face against X*LookupString | 04:34 | |
badosu | Oh, I got, you mean the keyboard capture on window focus logic | 04:35 |
rgareus | drobilla: 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 |
rgareus | badosu: ^^ | 04:37 |
* drobilla has done zero real work today, damnit | 04:37 | |
badosu | I 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 anyway | 04:37 |
rgareus | badosu: hence Linux-VST if it's a .so natively for linux and not a .dll loaded with wine on linux | 04:37 |
drobilla | This is #lv2. Talking bad about linux-vst is hardly going to get you in trouble ;) | 04:38 |
drobilla | I hope it dies in a fire. | 04:38 |
rgareus | it's a miracle that it survied so long. | 04:39 |
badosu | it's just that the idea of someone developing against proprietary code instead of DSSI or LV2 for linux makes me upset | 04:39 |
badosu | of course, except if that brings commercial vsts to support linux | 04:39 |
rgareus | even though the VST standard has mutated a couple of times.. it still has this windows'95 ring to it. | 04:39 |
drobilla | I would rather an open standard than a proprietary one, regardless of who is using it for what. | 04:42 |
drobilla | This is pretty much why all of LV2 is under the simplest and most permissive license I could find. | 04:43 |
drobilla | Proprietary developers using LV2 is a victory compared to them not, even if proprietary anything is no victory in general. | 04:44 |
badosu | drobilla: I agree, even that I care about software freedom, I care more about bringing vst commercial studios to support linux | 04:44 |
drobilla | Otherwise it'd be AGPL3, the most militant "fuck off" license I can find, like Ingen :) | 04:44 |
drobilla | Yes. 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 |
drobilla | The 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 |
drobilla | Particularly in audio, where even the most egregious broken DRM/copy protection insanity is par for the course. | 04:46 |
drobilla | I 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 |
badosu | drobilla: that must've been awful | 04:53 |
badosu | I am not a VST developer but I imagine that in the beggining of the interface it must have been a pain in the ass | 04:54 |
badosu | to support macs and pcs at the same time | 04:54 |
drobilla | AFAIK they had VSTUI for this. Basically a shitty toolkit portable to all the platforms | 04:55 |
drobilla | There's even an X11 implementation hanging around there somewhere. I ported some scope using it to LV2 years ago | 04:55 |
drobilla | (waste of time, but hey) | 04:55 |
rgareus | where "all" = Windows and OSX | 04:55 |
badosu | lol | 04:56 |
badosu | finally, I finished my first milestone learning LV2 plugin programming: https://github.com/badosu/BadAmp | 04:56 |
badosu | This was a test on "toy kits" that I could use If I were to seriously develop one | 04:57 |
badosu | Now I am thinking if I should try to create a lv2 triple oscillator synth or try to already implement LMMS as a host | 04:58 |
badosu | anyway, thanks for all the help folks, was really great :-) | 04:58 |
* drobilla votes porting all the LMMS things to LV2 for 100% selfish reasons | 04:58 | |
badosu | this was already somewhat done | 04:58 |
drobilla | I mean, uh.. objective.... truths. | 04:58 |
drobilla | Yeah, I vaguely remember something about that | 04:59 |
badosu | yeah, lv2 instrument ports and lv2 hosts are two things that people put effort int | 04:59 |
badosu | https://github.com/pgiblock/lmms-lv2 | 04:59 |
badosu | and https://github.com/grejppi/lmms/tree/master-lv2 | 04:59 |
drobilla | Anyway, I give up on today. Time to, um, sleep | 05:00 |
badosu | me too, see ya, have a good one | 05:00 |
drobilla | s/sleep/watch 15 episodes of Star Trek in a row until daylight and hate myself/ | 05:00 |
badosu | bye rgareus | 05:00 |
rgareus | 'night | 05:02 |
rgareus | drobilla: TNG? | 05:02 |
rgareus | drobilla: 15 episodes that's a looong sleep | 05:03 |
drobilla | rgareus: DS9 | 05:10 |
drobilla | okay, maybe 5 :) | 05:10 |
*** falktx has quit IRC | 05:34 | |
*** falktx has joined #lv2 | 05:35 | |
*** gianMOD has joined #lv2 | 06:21 | |
*** gianMOD has quit IRC | 06:50 | |
*** edogawa has joined #lv2 | 07:31 | |
*** gianMOD has joined #lv2 | 07:51 | |
*** sigma6 has quit IRC | 08:14 | |
*** gianMOD has quit IRC | 08:25 | |
*** gianMOD has joined #lv2 | 09:11 | |
*** gianMOD has quit IRC | 09:11 | |
*** gianMOD has joined #lv2 | 09:11 | |
*** gianMOD has quit IRC | 09:21 | |
*** gianMOD has joined #lv2 | 09:21 | |
*** gianMOD has quit IRC | 09:22 | |
*** falktx_ has joined #lv2 | 09:25 | |
*** falktx has quit IRC | 09:26 | |
*** falktx_ is now known as falktx | 09:32 | |
bgola | drobilla: nice, thanks! im at london airport right now, will check this later today and test with mod-ui stuff :) | 09:53 |
*** edogawa has quit IRC | 10:03 | |
*** NickSB2 has joined #lv2 | 11:04 | |
*** JohannesG_ has joined #lv2 | 11:36 | |
* grejppi notes DPF uses lv2:sampleRate instead of param:sampleRate for options | 11:39 | |
falktx | they are made for different things | 11:41 |
falktx | param:sampleRate is a portProperty | 11:41 |
falktx | lv2:sampleRate is an object like bufsize:maxSize | 11:42 |
grejppi | falktx: http://lv2plug.in/ns/lv2core/#sampleRate begs to differ | 11:42 |
falktx | or maybe it's the other way around | 11:42 |
falktx | having 2 things named the same is confusing | 11:42 |
*** JohannesG has quit IRC | 11:43 | |
*** JohannesG_ is now known as JohannesG | 11:43 | |
*** sigma6 has joined #lv2 | 12:38 | |
*** aombk has joined #lv2 | 12:44 | |
aombk | can you walk me through lv2? for starters, the things i may make supporting lv2, will they work on windows? | 13:00 |
grejppi | falktx: maybe DPF should define rate and buffer size as opts:supportedOption in the ttl file too? | 13:13 |
*** ddom has joined #lv2 | 13:20 | |
falktx | grejppi: opts:supportedOption? is that a thing? | 13:48 |
falktx | aombk: have you seen the lv2 book yet? | 13:50 |
falktx | aombk: in any case, lv2 is not restricted by OS, it works everywhere | 13:50 |
aombk | falktx, no i havent | 13:53 |
falktx | aombk: http://lv2plug.in/book/ | 13:53 |
falktx | grejppi: ah yeah it is http://lv2plug.in/ns/ext/options/#supportedOption | 13:54 |
falktx | grejppi: somehow I completely missed it, thanks for the heads up | 13:54 |
falktx | drobilla: I think we still need the host-side option feature. we discuss it some time ago | 13:55 |
falktx | drobilla: there's the plugin-side interface, but no host-side feature | 13:55 |
falktx | we can re-use the plugin interface, but seems wrong | 13:55 |
falktx | drobilla: is a patch ok? | 13:55 |
falktx | hmm | 13:56 |
* falktx notices http://lv2plug.in/ns/ext/options/#options | 13:56 | |
falktx | needs some new name... | 13:56 |
drobilla | Yes, bad names for those sampleRate things. port properties are kind of annoying | 14:24 |
drobilla | falktx: Sure. That among many other things. It's not as straightforward as just using the same interface, though. | 14:25 |
drobilla | falktx: I don't remember exactly why | 14:25 |
drobilla | Well, the handle thing is why we literally can't use exactly the same struct, which is annoying | 14:26 |
drobilla | But it needs more functionality to be able to do stuff like presets | 14:26 |
drobilla | falktx: first go as a patch would be good. Make a fork somewhere if you haven't already | 14:27 |
falktx | drobilla: is the lv2 git http only? no git:// address ? | 14:28 |
drobilla | falktx: I don't even know. Does it matter? | 14:28 |
* drobilla uses ssh | 14:28 | |
falktx | I have ssh-askpass setup for git+ssh, not sure if it works over http[s] | 14:29 |
drobilla | No ssh involved anyway, here. | 14:30 |
drobilla | What 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 well | 14:31 |
drobilla | Or just email patches, but git is more convenient on both ends | 14:32 |
falktx | doing the remote now | 14:32 |
* drobilla wishes you could set a repo config for default email send-to addy | 14:32 | |
falktx | https://github.com/falkTX/lv2 | 14:32 |
falktx | let me see what changes I still have in my local carla headers | 14:33 |
drobilla | falktx: s'more C++ fun in there. Minimal start to atom wrappers, with Sequence iterator. Example plugin uses range-based for loop | 14:34 |
drobilla | It'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 |
drobilla | Still no idea how to do the extension_data thing but doesn't matter for features | 14:35 |
drobilla | falktx: added, thanks. | 14:36 |
falktx | there's quite a few comment updates | 14:38 |
falktx | drobilla: are you finished updating comments? I do some local changes to some headers (mostly adding const), and I'd like to update | 14:38 |
drobilla | falktx: I am not sure what you mean | 14:39 |
falktx | there's a lot of new comments in the headers | 14:39 |
falktx | doxygen related stuff mostly | 14:39 |
drobilla | Yes, I reorganized it to make single pages. | 14:40 |
drobilla | I 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 mean | 14:40 |
* drobilla doesn't get why this matters anyway. | 14:41 | |
falktx | I need to adjust every single header for local build | 14:41 |
drobilla | Why do comment changes mean you need to adjust headers? | 14:41 |
falktx | s|lv2/ns/..../atom.h|atom.h| for example | 14:41 |
drobilla | Well, that's dumb, so that's what you get | 14:42 |
falktx | :) | 14:42 |
falktx | drobilla: first patch https://github.com/falkTX/lv2/commit/5e5fc74ddc80063798dba4f5a4ba24024c450f25.patch | 14:42 |
drobilla | Though keep it in git and maintain the diff. Surely you don't copy paste the things and manually do this constantly? | 14:42 |
falktx | I do... | 14:42 |
drobilla | Good grief | 14:43 |
drobilla | I have been considering moving to lv2/ext/foo.h | 14:43 |
drobilla | But installing triple copies of every header is a bit much | 14:43 |
falktx | lv2_descriptor and lv2ui_descriptor have the export-symbol, lv2_lib_descriptor | 14:44 |
falktx | does not | 14:44 |
drobilla | The whole thing should really have been a flat namespace to begin with (URIs included) | 14:44 |
falktx | there doesn't seem to be a macro for Qt5UI yet | 14:45 |
falktx | rui's plugins exist and can be qt5 widgets | 14:45 |
falktx | another patch coming :) | 14:46 |
drobilla | What type did he give them, then? | 14:46 |
falktx | qt5 | 14:47 |
falktx | and external | 14:47 |
falktx | drobilla: patch https://github.com/falkTX/lv2/commit/654f2af4dcb525a9753d1e28f27da7100f3c1632.patch | 14:48 |
falktx | <http://drumkv1.sourceforge.net/lv2#ui> | 14:49 |
falktx | a lv2ui:Qt5UI ; | 14:49 |
falktx | drobilla: he just assumed qt5 would become official soon I guess | 14:50 |
*** ddom has quit IRC | 15:07 | |
aombk | falktx, i was away. thanks for the link | 15:30 |
falktx | drobilla: morph header includes lv2core and urid, but doesn't need to | 16:06 |
falktx | drobilla: probably should be removed to match the others | 16:06 |
drobilla | Hm, yeah. | 16:09 |
drobilla | The headers for just URIs are annoying, but can't remove them... | 16:09 |
falktx | I'll leave that to you | 16:09 |
badosu | falktx: thanks for that, I noticed and found odd that there was not yet a QT5UI | 16:26 |
falktx | drobilla: this line seems wrong... | 16:32 |
falktx | #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) | 16:32 |
falktx | drobilla: shouldn't we check if __GNUC__ is defined first? | 16:32 |
falktx | drobilla: like this: | 16:32 |
falktx | #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) | 16:32 |
falktx | ? | 16:32 |
drobilla | falktx: Undefined preprocessor symbols in conditionals are 0, so it will never be true anyway | 16:35 |
falktx | but it can give a warning | 16:37 |
falktx | -Wundef | 16:37 |
drobilla | Does a compiler exist that supports -Wundef, does not define __GNUC__, and warns in that case? | 16:40 |
drobilla | C99 really should have added a deprecated thingie | 16:42 |
drobilla | Graphviz headers are annoyingly noisy with -Wunder but I have never seen that one do it | 16:45 |
*** falktx has quit IRC | 16:59 | |
*** sigma6 has quit IRC | 17:07 | |
*** aombk2 has joined #lv2 | 18:00 | |
*** aombk has quit IRC | 18:04 | |
*** rncbc has joined #lv2 | 18:43 | |
*** gianMOD_ has joined #lv2 | 18:45 | |
*** gianMOD_ has quit IRC | 18:49 | |
*** NickSB2 has quit IRC | 19:50 | |
badosu | there's a weird thing going on when I use my symple plugin with qtractor. When I close the widget window, qtractor as a whole segfaults | 20:39 |
badosu | it probably is something that I didnt do right on my code, but could'nt this be an issue with suil? | 20:40 |
rncbc | badosu: sorry ill have to leave in a minute. but will bbl. | 20:45 |
*** rncbc is now known as rncbc|AFK | 20:46 | |
drobilla | badosu: Suil does basically nothing in pass-through cases like qt-in-qt | 20:49 |
badosu | it looks like the crash is related to this lib: /usr/local/lib/libsord-0.so.0.12.2 | 20:50 |
*** gianMOD has joined #lv2 | 20:50 | |
badosu | so this may be happening on Qtractor | 20:50 |
drobilla | Managing to crash sord is pretty impressive, if so | 20:51 |
badosu | lol, let me dig this a little more | 20:51 |
drobilla | Though how closing a UI could possibly have anything to do with that is anyone's guess | 20:52 |
*** gianMOD has quit IRC | 20:53 | |
*** curlymorphic has joined #lv2 | 20:54 | |
*** gianMOD_ has joined #lv2 | 20:55 | |
*** gianMOD_ has quit IRC | 20:58 | |
badosu | I don't know, but here's the backtrace if it's of interest to anyone: https://gist.github.com/badosu/4481d7e33a395a426841 | 20:59 |
badosu | really weird because the code is very simple | 21:01 |
*** gianMOD has joined #lv2 | 21:06 | |
*** gianMOD has quit IRC | 21:20 | |
*** gianMOD_ has joined #lv2 | 21:24 | |
*** falktx has joined #lv2 | 21:39 | |
*** gianMOD_ has quit IRC | 22:12 | |
*** edogawa has joined #lv2 | 22:40 | |
*** falktx has quit IRC | 22:51 | |
*** falktx has joined #lv2 | 23:00 | |
*** drobilla has quit IRC | 23:14 | |
*** drobilla has joined #lv2 | 23:16 | |
badosu | rncbc|AFK: I'll just post this as it might be useful for you, I know you are away | 23:16 |
badosu | rncbc|AFK: if the plgin does not implement cleanup properly, it can segfault qtractor | 23:17 |
badosu | rncbc|AFK: see https://github.com/badosu/BadAmp/pull/1 | 23:17 |
*** rncbc|AFK is now known as rncbc | 23:34 | |
rncbc | badosu: one just don't release without valgrind'ing it first (that would go in some GoT meme i suppose;)) | 23:37 |
falktx | also don't forget some static code check like clang | 23:39 |
rncbc | badosu: s/GoT/LotR/ | 23:39 |
falktx | plus valididating the ttl files | 23:39 |
rncbc | badosu: failing to do proper cleanup() might be of no consequence while testing under jalv as it exit()s on close anyway | 23:42 |
drobilla | Ah yes, the Ultra Rapid Shutdown™ feature :) | 23:45 |
drobilla | It's best to optimize your UIs for maximum throughput of while (true) { load(); crash(); } | 23:46 |
drobilla | This is real-time code, after all | 23:46 |
rncbc | drobilla: 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!