Tuesday, 2015-05-12

*** NickSB2 has joined #lv200:24
*** Magnus_RM has quit IRC01:19
*** falktx has joined #lv206:09
*** drobilla has quit IRC06:11
*** edogawa has joined #lv206:31
*** falktx has quit IRC07:13
*** edogawa has quit IRC08:04
*** ricardocrudo has joined #lv208:04
*** sigma6 has joined #lv208:11
*** gianMOD has joined #lv208:18
*** falktx has joined #lv208:33
*** gianMOD has quit IRC08:56
*** falktx has quit IRC10:11
*** ricardocrudo has quit IRC11:09
*** edogawa has joined #lv211:15
*** edogawa has quit IRC11:22
*** edogawa has joined #lv211:27
*** rncbc_jolla has joined #lv211:37
*** ricardocrudo has joined #lv211:54
*** rncbc_jolla has quit IRC11:55
*** falktx has joined #lv212:27
*** rncbc_jolla has joined #lv212:49
*** ricardocrudo has quit IRC13:09
*** NickSB2 has quit IRC13:10
*** rncbc_jolla has quit IRC13:26
*** gabrbedd has quit IRC14:58
*** gabrbedd has joined #lv215:00
*** drobilla has joined #lv215:41
*** ricardocrudo has joined #lv215:44
*** falktx has quit IRC15:59
*** bgola has joined #lv216:00
*** sigma6 has quit IRC16:01
*** falktx has joined #lv216:42
*** aombk2 has joined #lv216:53
*** aombk3 has quit IRC16:57
*** falktx has quit IRC17:02
*** falktx has joined #lv217:03
*** rncbc has joined #lv217:03
*** mlpug has joined #lv217:58
*** ricardocrudo has quit IRC17:59
*** bgola has quit IRC18:13
*** mlpug has quit IRC19:34
*** bgola has joined #lv220:19
*** ricardocrudo has joined #lv220:38
*** NickSB2 has joined #lv220:48
*** edogawa has quit IRC20:50
*** ssj71 has joined #lv222:01
ssj71falktx: 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
ssj71make the change and do a pull request to lv2 first?22:08
ssj71or drobilla ^22:09
falktxdo a pull request on lv2 on github could work22:11
falktxor a patch22:11
falktxssj71: it needs a host-side feature with a handle like all other host features22:11
ssj71right, but the extension needs to change, then the hosts need to implement it?22:12
falktxthe extension won't change22:14
falktxa new one will be added22:14
*** rncbc has quit IRC22:16
ssj71so I need to write a LV2UI_Plugin _Resize extension22:18
falktxif you're not sure yet I can do this for you22:22
falktxit will take me 2 minutes tops22:22
ssj71it will take me 100000 times longer22:22
ssj71falktx: let me know what the new URI is and I'll implement it.22:23
falktxthe URI will be the same afaik22:23
falktxyou'll also need some host to support it :P22:24
ssj71ok. I kinda assumed you'd be adding it in carla, since it seems you keep a copy of lv2 in the repo22:25
falktxhmm this is different22:26
ssj71alright. 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 code22:28
falktxyou mean carla. heh, that's going to be a bit tricky22:29
ssj71bleh. I just want my UIs to be resizable. Its frustrating that the LV2UI_Resize doesn't quite work22:31
ssj71I guess if I didn't use an external UI it wouldn't be a problem22:31
falktxthere's no need to change the spec I think22:31
falktxssj71: does your uis already support plugin-side resize requested by the host?22:32
ssj71the problem is that the host passes me the LV2UI_Resize struct but I can't load that struct with the instance of my UI22:33
falktxwhy not?22:34
ssj71because the struct is a static const I can't load it dynamically in the ui initialize routine22:34
falktxit's an interface like state22:34
ssj71I haven't implemented state yet22:34
falktxthe pointer passed in the resize function will be your ui handle22:34
falktxI think carla already supports this...22:35
ssj71no its opaque data to whatever you loaded it with when you pass it to the host when they call the extension data22:35
falktxdidn't you implement ui:idle?22:36
falktxthis is the same thing22:36
* falktx is 80% sure carla already implements this22:36
ssj71its not because ui:idle explicitly passes the LV2UI_Handle into idle. resize does not22:36
ssj71resize passes a LV2UI_Resize_Handle22:37
ssj71whoops * LV2UI_Feature_Handle22:37
ssj71if a host loads the struct with the LV2UI_Handle, it works, but there's no guarantee22:37
falktxyes, but you can use it has LV2UI_Handle22:38
falktxthe spec says it will do so22:38
falktxthe "LV2UI_Feature_Handle handle;" field is ignored when using the struct as ui interface, like ui:show/idle22:39
ssj71if that is the intention it should be updated in the documentation. I can't find anything suggesting that22:41
ssj71falktx: and the host calls the funtion but passes the LV2UI_Handle in the place of the Feature_Handle?22:42
falktxyes22:42
falktxcarla is doing that already for non-bridged uis22:42
falktxif you can code this in 5mins I can test it for you22:42
falktxbut you only have 5mins22:42
ssj71falktx: thanks. I'll probably be too slow. I can ping you tomorrow22:44
falktxerr I was trying to get it to work on the ui-bridge too22:45
ssj71all you have to do is uncomment line 157 of my casynth and its implemented (I left the stub)22:46
ssj71oh whoops line 157 of file casynth_ui_main.cxx22:46
ssj71doesn't work22:48
falktxyou need to disable carla's usage of ui bridges first22:48
ssj71falktx: does that require a restart?22:49
falktxno, just re-add the plugin22:50
ssj71rats still no dice22:50
ssj71I guess its probably still passing it otherwise it would segfault22:50
ssj71but when I resize in the instantiate function it works fine. I do the same thing in my extension data function and it doesn't change22:52
falktxis it pushed?22:52
falktxI can try it here22:52
ssj711 sec22:54
ssj71pushed onto the new gui_resize branch22:55
falktxclone url pls22:55
ssj71https://ssj71@git.code.sf.net/p/infamousplugins/code22:56
ssj71it uses cmake now22:56
ssj71oh rats thats for my account22:57
falktxwhich ui has this?22:58
ssj71falktx: git://git.code.sf.net/p/infamousplugins/code22:58
ssj71cellular automaton synth22:58
ssj71they all do, but I've commented it out22:58
ssj71casynth has the comments removed22:58
falktxno it has not22:59
falktxnot here22:59
falktx //self->ui->size(w,h);22:59
falktxyour ttl still has lv2:optionalFeature ui:noUserResize23:00
falktxssj71: resizing working here :)23:01
ssj71I thought I commented it out. Was that the problem?23:01
drobillaThat whole extension vs feature and sometimes-handle-sometimes-not thing is weird and unfortunate23:01
falktxssj71: you need to *enable* it23:01
falktxanyway, proof: https://i.imgur.com/J1B5cWl.png23:02
drobillaThough under absolutely no circumstances can an existing extension/feature/whatever be ABI broken and retain the same ABI!23:02
drobillaer, same URI*23:02
ssj71falktx: ok, how do I enable it?23:02
falktxuncomment the part that has //self->ui->size(w,h);23:03
* ssj71 always thinks he knows something but usually learns he doesn't23:03
falktxthat code is safe, let it be on23:03
ssj71I did23:03
falktxremove lv2:optionalFeature ui:noUserResize from the ttl files23:03
ssj71ok.I did. are you on the gui branch?23:03
falktxbuild carla with the latest git, zyn-update branch23:03
ssj71I made those changes on gui_resize23:03
falktxI added this to the bridges just now23:03
falktxyes, I got that code23:03
falktx$ git branch23:04
falktx* gui_resize23:04
falktx$ git pull23:04
falktxAlready up-to-date.23:04
ssj71stupid me. I didn't commit the changes23:04
ssj71there23:05
* ssj71 compiling carla23:05
falktxwait23:05
falktxyou also need to set your ui having extension data ui resize23:05
ssj71drobilla: so is the intention for the host to call it with actually the LV2UI_Handle?23:06
ssj71does Jalv do so?23:06
ssj71in ttl?23:06
falktxyes, ttl23:06
falktxlv2:extensionData ui:idle, ui:resize .23:06
falktxthen carla will happily resize it23:06
falktxboth in-process and in the bridges23:07
ssj71so I was just lucky it was running idle even though I didn't indicate it?23:07
falktxyou were indicating idle already23:08
falktxgotta go now23:08
ssj71oh I'm not looking at manifest23:08
ssj71thanks a bazillion falktx23:08
falktxreally tired, cya later23:08
ssj71cya23:08
drobillassj71: It depends on the context.  As a feature, the handle is whatever the host sets it to23:08
ssj71but as an extension?23:08
falktxit's not used23:09
ssj71falktx: the argument is used, but the member of the struct is used23:10
drobillawhatever 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 said23:10
drobillaFigure out what it should be and send me a doc patch, I don't even know :P23:11
ssj71I swear I tried all this. I'll bet my achilles heel was that I was missing it in my ttl23:11
ssj71drobilla: I very much intend to!23:11
ssj71someday I'll get all this stuff23:11
falktxdrobilla: it's working as-is, as seen by the screenshot. just not very pretty inthe code23:11
ssj71it makes sense once I23:11
ssj71've done it23:11
drobillapresumably it should be the handle like everything else.  No other reasonable thing, really.23:11
*** falktx has quit IRC23:12
ssj71exactly, but since the docs didn't state that I didn't want to count on it23:12
ssj71there it is23:12
*** ricardocrudo has quit IRC23:30
aombk2anyone has experience with c++ and midi?23:33
drobillaaombk2: This being a plugin channel, well... yes :)  More specifically?23:35
drobillaC vs C++ is unlikely to make much difference in working with actual MIDI (being a raw byte based thing)23:36
aombk2i 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
drobillaMost are a bit crap, unfortunately23:42
drobillaI 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/tinysmf23:43
drobillaIf you want something to do sequencing in code with (to give you notes and such), not sure.23:44
aombk2ok thanks. i will check it out23:45
aombk2by the way, yes, many of them seem a bit crap23:45
drobillay/w23:48

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