*** NickSB2 has joined #lv2 | 00:24 | |
*** Magnus_RM has quit IRC | 01:19 | |
*** falktx has joined #lv2 | 06:09 | |
*** drobilla has quit IRC | 06:11 | |
*** edogawa has joined #lv2 | 06:31 | |
*** falktx has quit IRC | 07:13 | |
*** edogawa has quit IRC | 08:04 | |
*** ricardocrudo has joined #lv2 | 08:04 | |
*** sigma6 has joined #lv2 | 08:11 | |
*** gianMOD has joined #lv2 | 08:18 | |
*** falktx has joined #lv2 | 08:33 | |
*** gianMOD has quit IRC | 08:56 | |
*** falktx has quit IRC | 10:11 | |
*** ricardocrudo has quit IRC | 11:09 | |
*** edogawa has joined #lv2 | 11:15 | |
*** edogawa has quit IRC | 11:22 | |
*** edogawa has joined #lv2 | 11:27 | |
*** rncbc_jolla has joined #lv2 | 11:37 | |
*** ricardocrudo has joined #lv2 | 11:54 | |
*** rncbc_jolla has quit IRC | 11:55 | |
*** falktx has joined #lv2 | 12:27 | |
*** rncbc_jolla has joined #lv2 | 12:49 | |
*** ricardocrudo has quit IRC | 13:09 | |
*** NickSB2 has quit IRC | 13:10 | |
*** rncbc_jolla has quit IRC | 13:26 | |
*** gabrbedd has quit IRC | 14:58 | |
*** gabrbedd has joined #lv2 | 15:00 | |
*** drobilla has joined #lv2 | 15:41 | |
*** ricardocrudo has joined #lv2 | 15:44 | |
*** falktx has quit IRC | 15:59 | |
*** bgola has joined #lv2 | 16:00 | |
*** sigma6 has quit IRC | 16:01 | |
*** falktx has joined #lv2 | 16:42 | |
*** aombk2 has joined #lv2 | 16:53 | |
*** aombk3 has quit IRC | 16:57 | |
*** falktx has quit IRC | 17:02 | |
*** falktx has joined #lv2 | 17:03 | |
*** rncbc has joined #lv2 | 17:03 | |
*** mlpug has joined #lv2 | 17:58 | |
*** ricardocrudo has quit IRC | 17:59 | |
*** bgola has quit IRC | 18:13 | |
*** mlpug has quit IRC | 19:34 | |
*** bgola has joined #lv2 | 20:19 | |
*** ricardocrudo has joined #lv2 | 20:38 | |
*** NickSB2 has joined #lv2 | 20:48 | |
*** edogawa has quit IRC | 20:50 | |
*** ssj71 has joined #lv2 | 22:01 | |
ssj71 | falktx: if I were going to try to change the lv2UI__Resize extension so that the hands the plugin an instance of itsself, where would I start? | 22:07 |
---|---|---|
ssj71 | make the change and do a pull request to lv2 first? | 22:08 |
ssj71 | or drobilla ^ | 22:09 |
falktx | do a pull request on lv2 on github could work | 22:11 |
falktx | or a patch | 22:11 |
falktx | ssj71: it needs a host-side feature with a handle like all other host features | 22:11 |
ssj71 | right, but the extension needs to change, then the hosts need to implement it? | 22:12 |
falktx | the extension won't change | 22:14 |
falktx | a new one will be added | 22:14 |
*** rncbc has quit IRC | 22:16 | |
ssj71 | so I need to write a LV2UI_Plugin _Resize extension | 22:18 |
falktx | if you're not sure yet I can do this for you | 22:22 |
falktx | it will take me 2 minutes tops | 22:22 |
ssj71 | it will take me 100000 times longer | 22:22 |
ssj71 | falktx: let me know what the new URI is and I'll implement it. | 22:23 |
falktx | the URI will be the same afaik | 22:23 |
falktx | you'll also need some host to support it :P | 22:24 |
ssj71 | ok. I kinda assumed you'd be adding it in carla, since it seems you keep a copy of lv2 in the repo | 22:25 |
falktx | hmm this is different | 22:26 |
ssj71 | alright. I have a loose idea of what needs to happen, but I haven't really gone into the code. I'd be happy to try to make the patch if you point me to where it needs to change in carla's code | 22:28 |
falktx | you mean carla. heh, that's going to be a bit tricky | 22:29 |
ssj71 | bleh. I just want my UIs to be resizable. Its frustrating that the LV2UI_Resize doesn't quite work | 22:31 |
ssj71 | I guess if I didn't use an external UI it wouldn't be a problem | 22:31 |
falktx | there's no need to change the spec I think | 22:31 |
falktx | ssj71: does your uis already support plugin-side resize requested by the host? | 22:32 |
ssj71 | the problem is that the host passes me the LV2UI_Resize struct but I can't load that struct with the instance of my UI | 22:33 |
falktx | why not? | 22:34 |
ssj71 | because the struct is a static const I can't load it dynamically in the ui initialize routine | 22:34 |
falktx | it's an interface like state | 22:34 |
ssj71 | I haven't implemented state yet | 22:34 |
falktx | the pointer passed in the resize function will be your ui handle | 22:34 |
falktx | I think carla already supports this... | 22:35 |
ssj71 | no its opaque data to whatever you loaded it with when you pass it to the host when they call the extension data | 22:35 |
falktx | didn't you implement ui:idle? | 22:36 |
falktx | this is the same thing | 22:36 |
* falktx is 80% sure carla already implements this | 22:36 | |
ssj71 | its not because ui:idle explicitly passes the LV2UI_Handle into idle. resize does not | 22:36 |
ssj71 | resize passes a LV2UI_Resize_Handle | 22:37 |
ssj71 | whoops * LV2UI_Feature_Handle | 22:37 |
ssj71 | if a host loads the struct with the LV2UI_Handle, it works, but there's no guarantee | 22:37 |
falktx | yes, but you can use it has LV2UI_Handle | 22:38 |
falktx | the spec says it will do so | 22:38 |
falktx | the "LV2UI_Feature_Handle handle;" field is ignored when using the struct as ui interface, like ui:show/idle | 22:39 |
ssj71 | if that is the intention it should be updated in the documentation. I can't find anything suggesting that | 22:41 |
ssj71 | falktx: and the host calls the funtion but passes the LV2UI_Handle in the place of the Feature_Handle? | 22:42 |
falktx | yes | 22:42 |
falktx | carla is doing that already for non-bridged uis | 22:42 |
falktx | if you can code this in 5mins I can test it for you | 22:42 |
falktx | but you only have 5mins | 22:42 |
ssj71 | falktx: thanks. I'll probably be too slow. I can ping you tomorrow | 22:44 |
falktx | err I was trying to get it to work on the ui-bridge too | 22:45 |
ssj71 | all you have to do is uncomment line 157 of my casynth and its implemented (I left the stub) | 22:46 |
ssj71 | oh whoops line 157 of file casynth_ui_main.cxx | 22:46 |
ssj71 | doesn't work | 22:48 |
falktx | you need to disable carla's usage of ui bridges first | 22:48 |
ssj71 | falktx: does that require a restart? | 22:49 |
falktx | no, just re-add the plugin | 22:50 |
ssj71 | rats still no dice | 22:50 |
ssj71 | I guess its probably still passing it otherwise it would segfault | 22:50 |
ssj71 | but when I resize in the instantiate function it works fine. I do the same thing in my extension data function and it doesn't change | 22:52 |
falktx | is it pushed? | 22:52 |
falktx | I can try it here | 22:52 |
ssj71 | 1 sec | 22:54 |
ssj71 | pushed onto the new gui_resize branch | 22:55 |
falktx | clone url pls | 22:55 |
ssj71 | https://ssj71@git.code.sf.net/p/infamousplugins/code | 22:56 |
ssj71 | it uses cmake now | 22:56 |
ssj71 | oh rats thats for my account | 22:57 |
falktx | which ui has this? | 22:58 |
ssj71 | falktx: git://git.code.sf.net/p/infamousplugins/code | 22:58 |
ssj71 | cellular automaton synth | 22:58 |
ssj71 | they all do, but I've commented it out | 22:58 |
ssj71 | casynth has the comments removed | 22:58 |
falktx | no it has not | 22:59 |
falktx | not here | 22:59 |
falktx | //self->ui->size(w,h); | 22:59 |
falktx | your ttl still has lv2:optionalFeature ui:noUserResize | 23:00 |
falktx | ssj71: resizing working here :) | 23:01 |
ssj71 | I thought I commented it out. Was that the problem? | 23:01 |
drobilla | That whole extension vs feature and sometimes-handle-sometimes-not thing is weird and unfortunate | 23:01 |
falktx | ssj71: you need to *enable* it | 23:01 |
falktx | anyway, proof: https://i.imgur.com/J1B5cWl.png | 23:02 |
drobilla | Though under absolutely no circumstances can an existing extension/feature/whatever be ABI broken and retain the same ABI! | 23:02 |
drobilla | er, same URI* | 23:02 |
ssj71 | falktx: ok, how do I enable it? | 23:02 |
falktx | uncomment the part that has //self->ui->size(w,h); | 23:03 |
* ssj71 always thinks he knows something but usually learns he doesn't | 23:03 | |
falktx | that code is safe, let it be on | 23:03 |
ssj71 | I did | 23:03 |
falktx | remove lv2:optionalFeature ui:noUserResize from the ttl files | 23:03 |
ssj71 | ok.I did. are you on the gui branch? | 23:03 |
falktx | build carla with the latest git, zyn-update branch | 23:03 |
ssj71 | I made those changes on gui_resize | 23:03 |
falktx | I added this to the bridges just now | 23:03 |
falktx | yes, I got that code | 23:03 |
falktx | $ git branch | 23:04 |
falktx | * gui_resize | 23:04 |
falktx | $ git pull | 23:04 |
falktx | Already up-to-date. | 23:04 |
ssj71 | stupid me. I didn't commit the changes | 23:04 |
ssj71 | there | 23:05 |
* ssj71 compiling carla | 23:05 | |
falktx | wait | 23:05 |
falktx | you also need to set your ui having extension data ui resize | 23:05 |
ssj71 | drobilla: so is the intention for the host to call it with actually the LV2UI_Handle? | 23:06 |
ssj71 | does Jalv do so? | 23:06 |
ssj71 | in ttl? | 23:06 |
falktx | yes, ttl | 23:06 |
falktx | lv2:extensionData ui:idle, ui:resize . | 23:06 |
falktx | then carla will happily resize it | 23:06 |
falktx | both in-process and in the bridges | 23:07 |
ssj71 | so I was just lucky it was running idle even though I didn't indicate it? | 23:07 |
falktx | you were indicating idle already | 23:08 |
falktx | gotta go now | 23:08 |
ssj71 | oh I'm not looking at manifest | 23:08 |
ssj71 | thanks a bazillion falktx | 23:08 |
falktx | really tired, cya later | 23:08 |
ssj71 | cya | 23:08 |
drobilla | ssj71: It depends on the context. As a feature, the handle is whatever the host sets it to | 23:08 |
ssj71 | but as an extension? | 23:08 |
falktx | it's not used | 23:09 |
ssj71 | falktx: the argument is used, but the member of the struct is used | 23:10 |
drobilla | whatever the plugin sets that field to, but I don't think it's possible to make it the handle since it's not an instance thing, so effectively what falktx said | 23:10 |
drobilla | Figure out what it should be and send me a doc patch, I don't even know :P | 23:11 |
ssj71 | I swear I tried all this. I'll bet my achilles heel was that I was missing it in my ttl | 23:11 |
ssj71 | drobilla: I very much intend to! | 23:11 |
ssj71 | someday I'll get all this stuff | 23:11 |
falktx | drobilla: it's working as-is, as seen by the screenshot. just not very pretty inthe code | 23:11 |
ssj71 | it makes sense once I | 23:11 |
ssj71 | 've done it | 23:11 |
drobilla | presumably it should be the handle like everything else. No other reasonable thing, really. | 23:11 |
*** falktx has quit IRC | 23:12 | |
ssj71 | exactly, but since the docs didn't state that I didn't want to count on it | 23:12 |
ssj71 | there it is | 23:12 |
*** ricardocrudo has quit IRC | 23:30 | |
aombk2 | anyone has experience with c++ and midi? | 23:33 |
drobilla | aombk2: This being a plugin channel, well... yes :) More specifically? | 23:35 |
drobilla | C vs C++ is unlikely to make much difference in working with actual MIDI (being a raw byte based thing) | 23:36 |
aombk2 | i want to make some program that generates midi files and i could use some suggestions from someone with experience regarding the use of midi libraries. should i use one? and are some better than others? | 23:38 |
drobilla | Most are a bit crap, unfortunately | 23:42 |
drobilla | I haven't tried it yet, but on the minimal "just read and write MIDI and don't make a bunch of screwy assumptions about what I want" front, considering moving everything to https://github.com/wrl/tinysmf | 23:43 |
drobilla | If you want something to do sequencing in code with (to give you notes and such), not sure. | 23:44 |
aombk2 | ok thanks. i will check it out | 23:45 |
aombk2 | by the way, yes, many of them seem a bit crap | 23:45 |
drobilla | y/w | 23:48 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!