*** grejppi has quit IRC | 01:14 | |
*** grejppi has joined #lv2 | 02:02 | |
*** grejppi has quit IRC | 02:07 | |
*** grejppi has joined #lv2 | 03:51 | |
*** grejppi has quit IRC | 03:56 | |
*** falktx has quit IRC | 04:00 | |
*** grejppi has joined #lv2 | 04:10 | |
*** grejppi has quit IRC | 04:14 | |
*** grejppi has joined #lv2 | 04:28 | |
*** grejppi has quit IRC | 04:38 | |
*** bgola_ has joined #lv2 | 04:42 | |
*** bgola has quit IRC | 04:47 | |
*** grejppi has joined #lv2 | 04:51 | |
*** kaspar_e has quit IRC | 04:55 | |
*** grejppi has quit IRC | 04:56 | |
*** shanipribadi has quit IRC | 05:02 | |
*** shanipribadi has joined #lv2 | 05:15 | |
*** NickSB2 has quit IRC | 05:16 | |
*** grejppi has joined #lv2 | 05:40 | |
*** grejppi has quit IRC | 05:46 | |
*** grejppi has joined #lv2 | 07:15 | |
*** grejppi has quit IRC | 07:19 | |
*** grejppi has joined #lv2 | 07:33 | |
*** grejppi has quit IRC | 07:36 | |
*** grejppi has joined #lv2 | 07:52 | |
*** grejppi has quit IRC | 07:59 | |
*** grejppi has joined #lv2 | 08:12 | |
*** grejppi has quit IRC | 08:18 | |
*** grejppi has joined #lv2 | 08:31 | |
*** grejppi has quit IRC | 08:39 | |
*** edogawa has joined #lv2 | 08:52 | |
*** grejppi has joined #lv2 | 08:52 | |
*** grejppi has quit IRC | 08:58 | |
*** grejppi has joined #lv2 | 09:42 | |
*** grejppi has quit IRC | 09:46 | |
*** grejppi has joined #lv2 | 10:02 | |
*** grejppi has quit IRC | 10:08 | |
*** grejppi has joined #lv2 | 10:21 | |
*** timbyr has quit IRC | 10:21 | |
*** timbyr has joined #lv2 | 10:22 | |
*** grejppi has quit IRC | 10:25 | |
*** grejppi has joined #lv2 | 10:38 | |
*** grejppi has quit IRC | 10:45 | |
*** NickSB2 has joined #lv2 | 11:15 | |
*** grejppi has joined #lv2 | 11:16 | |
*** grejppi has quit IRC | 11:18 | |
*** bgola_ has quit IRC | 11:25 | |
*** bgola has joined #lv2 | 11:25 | |
*** shanipribadi has quit IRC | 11:58 | |
*** grejppi has joined #lv2 | 11:59 | |
*** grejppi has quit IRC | 12:04 | |
*** shanipribadi has joined #lv2 | 12:20 | |
*** wrl has quit IRC | 13:27 | |
*** AndreeeCZ has joined #lv2 | 13:43 | |
AndreeeCZ | hi. Would anyone know what the dataSize in UI represents? | 13:44 |
---|---|---|
*** shanipribadi has quit IRC | 13:51 | |
*** Gethiox3 has joined #lv2 | 14:24 | |
*** Gethiox2 has quit IRC | 14:25 | |
drobilla | AndreeeCZ: Can you be more specific? "dataSize" doesn't occur anywhere in the UI (or any other LV2) spec... | 15:11 |
AndreeeCZ | drobilla, nevermind :) | 15:11 |
AndreeeCZ | not relevant anymore :) | 15:11 |
*** NickSB2 has quit IRC | 15:12 | |
*** kaspar_e has joined #lv2 | 15:25 | |
*** kaspar_e has quit IRC | 15:42 | |
*** kaspar_e has joined #lv2 | 15:44 | |
drobilla | rgareus: Why are there two variants of all your meter plugins? Do they only differ in UI? Working around lacking host support for multiple-UI selection? | 15:49 |
drobilla | rgareus: Certainly doesn't help the massive meters.ttl scenario, and makes the plugin list scream 'problem' to me. I would like to resolve it if possible | 15:50 |
rgareus | drobilla: the gtk variant is legancy (before I moved to openGL + externalUI) but it is still useful hosts that don't support externalUI | 15:53 |
drobilla | rgareus: oh. no embeddable GL at all? :( | 15:54 |
rgareus | drobilla: no | 15:54 |
drobilla | Bah. | 15:54 |
rgareus | drobilla: gtk+cairo or openGL+cairo. pick one | 15:54 |
drobilla | Well, I don't particularly care what it draws with, I just want them to actually work for me | 15:55 |
rgareus | drobilla: were it not for ingen, I'd have deprecated the gtk versions already :) | 15:55 |
drobilla | i.e. not be external | 15:55 |
drobilla | But my main point was, multiple *plugins* just for different *UIs* is a symptom of brokenness | 15:55 |
rgareus | drobilla: the DSP is the same. | 15:55 |
drobilla | That's my point. | 15:56 |
drobilla | i.e. "DSP is the same" means plugins should be the same. same URI, literally same same | 15:56 |
rgareus | drobilla: same shared object,even . But can only have one ui:ui in the .ttl. | 15:56 |
drobilla | rgareus: no, you can have several | 15:57 |
*** Gethiox4 has joined #lv2 | 15:57 | |
drobilla | rgareus: Quite deliberately. I am trying to figure out what in practice is broken that made you do this | 15:57 |
rgareus | drobilla: that didn't work with jalv last time I tried | 15:57 |
rgareus | drobilla: I'l try again, that would cut down the .ttl in half. | 15:58 |
drobilla | rgareus: jalv is a little dumb (most are), it picks the first supported one it finds | 15:58 |
drobilla | rgareus: so if you have a Gtk and an external, it will pick the Gtk, which should do the right thing here, I think | 15:58 |
drobilla | I am concerned about this because plugin URIs get baked into saved sessions and whatnot, can't set this precedent | 15:59 |
*** Gethiox3 has quit IRC | 15:59 | |
rgareus | drobilla: I do very much prefer the exteralUI (with patched jalv) | 15:59 |
drobilla | I know you do. I don't, and I am extremely disappointed in this. | 15:59 |
drobilla | But that is beside the point. | 15:59 |
rgareus | drobilla: mmh. could a user select the UI? what would ardour do for example? | 16:01 |
drobilla | rgareus: Ideally, if there are several that are supported | 16:01 |
drobilla | Preferring external will do the wrong thing for literally every other plugin set but this strange one, so we can't do that | 16:01 |
rgareus | drobilla: right now the plugin shows up twice in the list (GTK, GL). one can select it directly. | 16:02 |
drobilla | (All this for vsync that's useless IIRC, I really don't get why I have to eventually deal with this shit) | 16:02 |
rgareus | drobilla: I'm still to get rid of the ardour GTK-preset headers for narrow plugins (that don't have presets). | 16:02 |
drobilla | rgareus: Yes, but then the plugin list is full of junk, and different versions of the same plugin just for UI is really not good | 16:03 |
drobilla | Worst case scenario we can use a 'preferredness' property or something | 16:03 |
drobilla | I have every intention of spending time I don't have making embeddable versions of these, and having yet another plugin URI for that will start getting ridiculous. "Hey, user, here's 3 versions of the exact same thing, that differ only in ways you don't understand or care about" | 16:05 |
drobilla | I guess Ardour could prefer not-external if there are any controls, but external if there are both otherwise | 16:07 |
*** HarryHaaren has joined #lv2 | 16:07 | |
drobilla | Which would do the right thing for meters | 16:07 |
drobilla | Which is probably the only thing that will ever hit that | 16:07 |
Anchakor | do in practice any plugins have multiple maintained versions of the UI code? | 16:08 |
Anchakor | I think usually people either do externalUI or embedd | 16:09 |
drobilla | I don't think so. Really the utility of multiple UIs is actually different ones, like a meter strip UI, full blown UI, etc. | 16:09 |
drobilla | The API thing is just a broken mess, not really the intent. | 16:10 |
drobilla | lilv_ui_is_supported returns a quality measure that's supposed to do this though | 16:11 |
drobilla | e.g. if there's a Qt and Gtk, and you're in a Gtk host, it will return a better quality for the Gtk one | 16:11 |
*** mlpug has joined #lv2 | 16:12 | |
drobilla | ... in theory. Actually looks like it returns the first right now | 16:12 |
drobilla | rgareus: Actually it seems there's a reference control, so "no controls" no longer defines this special case | 16:13 |
drobilla | I don't know how to define that because I myself don't understand why external should be preferred by the host in this case | 16:14 |
drobilla | Speaking with my host author hat on, it isn't ;) | 16:15 |
drobilla | But the important thing is to make the plugin URI fragmentation go away | 16:15 |
Anchakor | from user perspective maybe | 16:17 |
Anchakor | from dev perspective, you will be linking to all libraries if you have all in one plugin | 16:17 |
drobilla | ? UI != plugin | 16:18 |
drobilla | That's the whole point | 16:18 |
Anchakor | adds work to make it work flawlessly :) | 16:18 |
Anchakor | easier would be just to make each plugin instance an instance of rdfs:Class the particular plugin the ttl :) | 16:19 |
drobilla | No, easier is not conflating plugins and UIs period | 16:20 |
rgareus | drobilla: it's a compile time option of the plugins to choose GL, GTK or both. They started out as GTK and I'm planning to deprecate GTK sooner or later. | 16:24 |
rgareus | drobilla: you either get openGL+externalUI, or whatever the host makes out of the raw data on the control ports. | 16:25 |
drobilla | rgareus: Would it really be that much work to compile several UIs? | 16:26 |
rgareus | drobilla: most meters are just POD float data. | 16:26 |
drobilla | Deprecating a UI shouldn't totally break user sessions. | 16:27 |
rgareus | drobilla: users using pre 1.0 release should be aware that anything can change anytime. | 16:28 |
drobilla | I guess it is unlikely, but I want to make sure this doesn't happen again | 16:28 |
rgareus | drobilla: once 1.0 (which I'm approaching) is out it will be stable | 16:28 |
drobilla | Fair enough. I am not especially looking forward to the torrent of "bug" reports about them not working in Jalv or Ingen | 16:29 |
rgareus | drobilla: I'm unsure what to do. gtk gives me lots of headaches, particulaly for theming | 16:30 |
rgareus | drobilla: I could go the ardour-way and ship a gtkrc but that's ugly. | 16:30 |
drobilla | rgareus: I thought you were using GL for widgets now anyway | 16:31 |
drobilla | rgareus: What I want/expect is an X11UI | 16:31 |
rgareus | drobilla: no. I just re-implemented gtk widgets and event handling. if you choose gtk you get the original gtk ones where applicable | 16:32 |
drobilla | Ah. Hence the same API thing. | 16:32 |
rgareus | drobilla: in particular gtk-boxes, and gtk-tables are the problem for styling | 16:32 |
rgareus | drobilla: it was all gdk/gtk at first, I started to replace it piece by piece | 16:33 |
drobilla | Well, from my host author POV, I couldn't care less. That is the entire point of Suil. The only thing I care about is not external. | 16:33 |
drobilla | You should be able to completely define your style ala Calf, I think? But yes, Gtk is problematic anyway. | 16:33 |
rgareus | drobilla: calf is pixel based, not scalable. they just use images | 16:35 |
drobilla | Well, I'm all gung-ho for GL anyway | 16:37 |
drobilla | But it gets pretty conflicting when the embeddable baby gets tossed out with the Gtk bathwater | 16:37 |
drobilla | (Well, the Cairo support in pugl thing is a nice idea, too) | 16:38 |
rgareus | drobilla: I'd love to have a better solution. ie no GTK, but still openGL. | 16:38 |
rgareus | drobilla: cairo would also be a good option for most things. | 16:39 |
drobilla | rgareus: But you can't get a top level X window which is required for vsync which is required for meters to work well? | 16:39 |
rgareus | drobilla: only the goniometer. other meters don't care too much. | 16:40 |
rgareus | drobilla: interestingly the own-thread external-UI do not interfere with Ardour's GUI. The GTK ones do slow down ardour's GUI a lot. | 16:42 |
rgareus | drobilla: and the externalUI ones also use less CPU; though that's probably the GL part. | 16:43 |
drobilla | I guess that will depend on if it's a separate thread or not. | 16:44 |
drobilla | rgareus: This all seems pretty trivial | 16:45 |
drobilla | rgareus: Basically my assessment is there's no particular reason not to do embedded GL but you just don't personally give a fuck, so if I do it, it'll probably work okay? | 16:45 |
drobilla | (and one needs some window figuring out) | 16:45 |
Anchakor | would be cool if there was some crossplatform way to use non-externalUI openGL based GUI | 16:46 |
drobilla | I was just thinking of that, not having to list X11 and etc ones would be nice. Not a big deal, but nice. | 16:47 |
Anchakor | x11ui won't work even on mac osx would it? | 16:47 |
drobilla | There could be a NativeUI where the 'widget' is a tagged union or something. | 16:48 |
rgareus | drobilla: I'm not abivalent about it. I'm just not seeing a nice solution that I also have time to implement. | 16:48 |
drobilla | rgareus: The thing I am confused about is why you don't see a nice solution | 16:48 |
drobilla | rgareus: I've asked several times and I get a bunch of trivial stuff, and you explicitly say it's not really a big deal. I don't get it. | 16:49 |
rgareus | drobilla: the ones that I think are nice: (A) host provides GL context, (B) host provides cairo-context | 16:49 |
rgareus | drobilla: gtk sucks. X11UI and friends are not portable.. | 16:49 |
rgareus | externalUI currently sucks least. | 16:50 |
drobilla | So it's listing an X11UI that you don't like? | 16:50 |
rgareus | drobilla: btdt. setBfree is a openGL/puGL X11UI and CocoaUI. it's a mess | 16:50 |
drobilla | Okay | 16:51 |
drobilla | First time you've actually mentioned this is part of it | 16:51 |
*** shanipribadi has joined #lv2 | 16:52 | |
drobilla | It is a bit clunky but I only wrote one example so it didn't seem a big deal to list several | 16:52 |
rgareus | drobilla: I'd like to see the code that harrison uses, but it's closed source (and also externalUI) | 16:52 |
drobilla | Interestingly, the most general solution to this is actually a MultiUI thing that isn't native tied | 16:52 |
drobilla | rgareus: Well, somewhere in there you are always going to need to get the native window handle | 16:52 |
rgareus | drobilla: balance.lv2 is also an X11UI (no cairo) | 16:53 |
drobilla | puglGetNativeWindow | 16:53 |
drobilla | so no big deal there if you're using pugl | 16:53 |
drobilla | struct { | 16:54 |
drobilla | LV2_URID type; | 16:54 |
drobilla | void* widget; | 16:54 |
drobilla | }; | 16:54 |
drobilla | is the easiest thing, short of an enum instead of a URID I suppose | 16:55 |
drobilla | Well, the easiest easiest thing is just NativeUI then assume what the pointer is | 16:57 |
drobilla | But unfortunately I don't think "native" is well defined. X11? Wayland? Cocoa? Carbon? | 16:57 |
drobilla | I will try to make glamp not use platform specific widget type, I suppose, but I have no other platforms to actually test it on anymore | 16:58 |
rgareus | which reminds me. I wanted to add OutputPort, Enum to ardour's generic UI. | 17:06 |
rgareus | and the generic integer widget could be improved as well. | 17:06 |
rgareus | the midifilters are odd to control (and I don't want to create custom UIs for those) | 17:07 |
rgareus | drobilla: one thing that we probably do agree on: Any custom UI is only warranted if has a dedicated use-case -- not just for look & feel. | 17:09 |
drobilla | rgareus: I don't like them in general, but it's generally not worth arguing about | 17:10 |
drobilla | More work on fleshing out metadata for better generated UIs (which also happens to be better understanding of how to control a plugin in general) would be good | 17:11 |
drobilla | But people want their shitty pixmap knobs or whatever, fine :) | 17:11 |
* drobilla needs to implement groups in Ingen modules | 17:12 | |
*** NickSB2 has joined #lv2 | 17:20 | |
drobilla | Ultimately the thing you are providing is inherently going to be unportable. The best we can do is make it so you don't have to describe n_platforms different UIs | 17:49 |
Anchakor | well a crossplatform layer would have to provide just the GL context and event handling no? | 17:59 |
drobilla | so...... pugl | 18:06 |
drobilla | i.e. yes, and does | 18:06 |
drobilla | but for LV2 UIs you still need to give the host a pointer to widgetey thing, which is not portable (XWindow, HWND, etc) | 18:07 |
Anchakor | but theoretically pugl could do it, right? | 18:09 |
drobilla | do what? | 18:13 |
drobilla | pugl already gives you the thing, sure. The problem is giving it to the host | 18:13 |
drobilla | including writing a ttl description of it | 18:13 |
drobilla | we don't have a type for "some native thing depending on what platform you happen to be on at the moment", we have X11UI, CocoaUI, etc. | 18:15 |
Anchakor | pugl already does it in crossplatform way? | 18:15 |
Anchakor | but we could have, right? | 18:15 |
drobilla | yes, that is the whole point of the thing. writing crossplatform GL UIs is a solved problem. | 18:15 |
drobilla | (it's basically a slight variation on GLUT) | 18:16 |
drobilla | Well, I'm sure there's some reasonable way to do so. That's the question. | 18:16 |
drobilla | A simple NativeUI or something won't do, so we will need some kind of new binary thing (unfortunately) to expose the pointer and its type | 18:17 |
Anchakor | not sure what "some kind of new binary thing" implies | 18:21 |
drobilla | UIs expose a widget pointer. | 18:22 |
drobilla | You can't just expose a pointer to <something> and not have the host even know what that something is. | 18:23 |
drobilla | Therefore something new is required to express that information. A struct or a pointer or whatever. | 18:23 |
Anchakor | I see, so new API between plugins and hosts | 18:26 |
drobilla | To some degree, anyway. | 18:27 |
rgareus | aaarg one more reason to discontinue GTK versions: https://github.com/x42/sisco.lv2/issues/3 | 18:52 |
rgareus | ingen crashes when plugin is removed while visible. | 18:53 |
*** falktx has joined #lv2 | 19:01 | |
rgareus | drobilla: any chance that his crash is ingen+gtk related? | 19:01 |
drobilla | rgareus: No idea. Maybe. I thought I had resolved this in suil, but destruction is a real bitch | 19:02 |
rgareus | drobilla: I'm sure is not a double free corruption. and gtk_widget_destroy() usually does ref-counting. It's odd. | 19:02 |
Anchakor | I had same type of crash long ago with ir.lv2 in qtractor | 19:02 |
rgareus | drobilla: I tried 3 time and could not reproduce it. so maybe there's a concurrency issue, too | 19:02 |
drobilla | long time ago it was definitely broken | 19:03 |
drobilla | but blablack would be using svn suil, I think | 19:03 |
rgareus | drobilla: the thread that calls deletion is called from gtk_main() that part seems all right. | 19:10 |
drobilla | rgareus: I'd try another GUI just to narrow it down, then maybe valgrind if patient, but no time now | 19:19 |
rgareus | drobilla: I cannot even reproduce it with ingen here :( | 19:24 |
*** rncbc has joined #lv2 | 19:41 | |
*** HarryHaaren has quit IRC | 20:10 | |
*** mlpug has quit IRC | 20:58 | |
*** LAbot has joined #lv2 | 21:35 | |
*** kaspar_e has joined #lv2 | 23:41 | |
*** rncbc has quit IRC | 23:45 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!