Thursday, 2014-09-25

rgareusdrobilla: fix comfirmed00:03
rgareusat least istantiating amsynth no longer assert()s00:06
*** bgribble has joined #lv200:11
* drobilla wonders why he put a sord check in jalv's wscript00:19
drobillargareus: okay, good00:20
drobillaDoes kind of make the API a bit irritating, but too late to go back now.00:21
drobillaI did make it keep a count of iterators and print a warning if you do a modification with any iterators present, so at least it won't silently break00:21
*** bgribble has quit IRC00:37
*** ricardocrudo has joined #lv201:21
*** ricardocrudo has quit IRC02:22
*** ricardocrudo has joined #lv202:28
*** ricardocrudo has quit IRC03:08
*** edogawa has joined #lv206:52
wumpusI tried to submit a patch for lv2_atom_forge_raw to the mailing list a few days ago but it seems it didn't come through, I've tried to subscribe but don't get a subscription confirmation mai08:21
*** magnetophon has joined #lv210:49
*** LAbot has joined #lv211:42
*** ricardocrudo has joined #lv212:45
*** ricardocrudo has quit IRC12:46
*** ricardocrudo has joined #lv212:46
*** HarryHaaren has joined #lv212:47
*** NickSB__ has quit IRC12:50
*** bgribble has joined #lv213:30
*** zth has joined #lv215:57
*** rncbc has joined #lv216:20
drobillawumpus: Hm, odd.  I turned off notification for bounces recently because I was getting spam flooded.  Maybe had some consequences...16:46
drobillaNothing in the queue as far as I CAN TELL16:46
wumpusok, I'll just try again then :)17:06
wumpus Your subscription request has been received17:09
rgareusdrobilla: a while ago you had a screenshot of some pugl plugin running on windows...17:16
rgareusdrobilla: .. how did you do that?  x-compile jalv for windows ?17:17
rgareusis there a LV2 plugin host that runs on windows?17:18
rgareusfalktx has ported carla to win32, but AFAIK it's not yet released.17:18
*** mlpug has joined #lv217:44
drobillargareus: I don't x-compile.  Just compile.18:09
drobillargareus: I think Jalv at some point worked on Windows, though it's been a few releases since.18:10
drobillawumpus: Get your mail back?  They don't require approval or anything18:10
rgareusdrobilla: speaking of email, I also did not receive an email from your trac.  Did you for the attachment at http://dev.drobilla.net/ticket/978 ?18:12
drobillargareus: Comments don't email18:15
drobillargareus: Hm.  can gtk_main_quit() be called from any thread?18:16
*** Haskellfant has quit IRC18:26
*** mlpug has quit IRC18:42
*** zth has quit IRC18:42
*** Haskellfant has joined #lv218:46
rgareusdrobilla: good question. in theory, no.  We should use a flag and periodically check that in a g_timeout function.18:46
rgareusdrobilla: then again, JackSessionSaveAndQuit:    also calls  jalv_close_ui() directly18:47
rgareusdrobilla: I have no idea which thread jack uses to invoke  jack_session_cb()  and jack_shutdown_cb()  but it works, empirically.18:48
*** mlpug has joined #lv218:56
*** HarryHaaren has quit IRC19:03
*** HarryHaaren has joined #lv219:03
*** HarryHaaren has quit IRC19:05
*** falktx has joined #lv219:13
*** zth has joined #lv219:22
drobillargareus: Good enough for me.  Just curious.19:24
drobillargareus: Crashing is exiting of a sort anyway :)19:24
rgareusdrobilla: as long as it exits all is fine :)19:24
rgareuswhile traveling last week, I did kill jack occasionally to safe battery power.  That's when I did this patch to get rid of a merry trail of LV2 GUIs in that case.19:26
rgareusstarting jackd here launches a K20 LV2 meter, that is uses as fixed-port-name proxy (for mplayer and friends).19:27
*** abique|home has joined #lv219:44
abique|homeHi, is it possible when connecting a parameter port, to do it the other way: instead of having the host passing float* I would prefer it to pass float **, because my dsp already have a float for its value and I want to avoid copy at each run() call19:46
drobillargareus: Gives me an excuse to make a release without that direct check for sord anyway19:47
drobillaSuggests there might be some bug with recursive pkg-config dependencies for my builds, but I should look into that...19:47
drobillaabique|home: If by "possible" you  mean "with currently supported APIs", no.19:47
drobillaabique|home: You don't need to copy the data, just connect to the appropriate pointer19:48
drobilla(I do think we need a connect_port()-less run() interface, but we don't yet)19:48
abique|homedrobilla, if I understand correctly, right now the host allocates the values for the plugin parameters, and the plugin uses pointers to the host values?19:49
drobillaabique|home: Of course.  Just like every other plugin API.  The plugin can't allocate audio buffers every cycle!19:50
drobillaabique|home: For controls, it is a bit different though, yes.19:50
drobillaabique|home: So if you have a set_param() sort of interface, you'll have to do that.19:50
abique|hometo copy them you mean?19:51
drobilla"Copy" is kind of irrelevant for a single float, but strictly, yes.19:51
drobilla(The function call overhead is 999999999999999999999 times more significant)19:51
abique|homebut if I have 100 params19:52
abique|homeand we set the chunk size to a low value19:52
abique|homethe copy may start to get expensive right?19:52
drobillaIt's not really an issue of copying19:52
drobillaIt's changes vs signals19:52
drobillaThe difference is, you have to check every control value because it's a signal of sorts.19:53
drobillaThe host doesn't say "change this" only when it changes19:53
drobillaYes, this sucks.  ControlPort sucks.19:53
drobillaBut conservatvely it's what we have right now.19:54
abique|homeI like control port19:54
drobilla... while you talk about a bunch of problems inherent with it?  Okay. :P19:54
drobillaPresumably you have the previous values around somewhere, so you only want to change your parameters when they have actually changed19:55
drobillaSo it won't actually be a copy of every single one every single cycle19:55
abique|homeIf the host could tell me: connect(index, float *host_param, float **dsp_param); if *dsp_param is not null then the host get the param from the dsp memory otherwise from the host memory, that could fix my issue19:55
drobillaDoesn't really make sense.  Parameters are set by the host.19:56
abique|homehost can set parameters into the dsp19:56
drobillaYes.  Not the other way around.19:56
drobillaYou can not modify your own control inputs (or your own anything inputs)19:57
drobilla(The best solution is using events instead, but hosts don't currently support that)19:57
*** mlpug has quit IRC19:58
abique|homeI could change u-he dsp code to plug a layer so the params can be accessed from external memory19:59
abique|homebut I'm not sure that Urs will agree19:59
drobillaI thought they were proprietary?20:00
drobillaor you are a dev?20:00
abique|homethey're proprietary20:00
abique|homebut I have access to the source code20:00
abique|homeI worked for u-he20:00
abique|hometo help them port their synths on linux20:00
drobillaah.20:00
abique|homeso we have vst on linux now20:00
abique|homeand on my free time I'm trying to bring lv2 support20:01
drobillaBy far your easiest bet it to just wrap them in the obvious way20:01
drobillaExactly as lvz/wrapper.cpp does20:01
drobillaIt's not ideal, but it will work, and it's good enough20:02
drobillaChecking some floats, even over 100, is unlikely to be much overhead compared to a plugin doing DSP.  Naturally it's reading parameters regardless20:02
*** bgribble has quit IRC20:03
abique|homeone other thing that I'm thinking is if your dsp has parameters in his own structure, it may be better for cpu cache?20:05
abique|homeI mean reading a param from the host is a potential cache miss?20:06
*** magnetophon has quit IRC20:09
abique|homedrobilla, also in lilv, when dlopen() fails could you add a dlerror() in the error message?20:09
abique|homethanks :)20:10
drobillaabique|home: There is.20:10
drobillaWell, not in the dynmanifest one, I suppose.20:11
abique|homeyes ;-)20:11
abique|homefinally I may not use the dynmanifest20:11
abique|homenot sure yet20:11
drobillaabique|home: I officially guarantee that I will forget any and all feature requests given to me on IRC or any other ephemeral medium.  So: maybe. ;)20:12
drobillahttp://dev.drobilla.net/newticket20:12
abique|homeok for the next one I'll create a new ticket20:12
abique|homeor did you add the dlerror already?20:13
Anchakorif you are porting some vst plugins, 99% you don't want dynmanifest20:13
*** zth has quit IRC20:14
abique|homemy solution to avoid dynmanifest is to have an entry point in my lib which generate the manifest, and I made a small program which loads the lib and generate the manifest20:14
abique|homeit is not much different from dyn manifest20:14
abique|homeexcept that it is dyn to static manifest20:14
drobillaAnchakor: We've been through that one20:14
drobillaabique|home: No.  I am heading out.  Maybe tonight20:15
abique|homedrobilla, ok good bye20:15
Anchakorabique|home: just generate the turtle in some way during the build process20:15
drobillaAnchakor: He is effectively working from existing binary libs20:19
drobillaA VST=>dynmanifest wrapper would actually be quite useful for others.  Wink wink nudge nudge. ;)20:19
* drobilla out20:19
Anchakorwell how many hosts support dynmanifest?20:19
drobillaAnchakor: All the ones that use lilv.  So... all of them, basically.20:20
Anchakorhmm20:21
drobillaAnchakor: Regardless you can use lv2info to get the ttl20:21
drobillaAnchakor: This is how I port LADSPAs20:21
Anchakorabique|home: you should work on NASPRO VST->lv2 auto-wrapper ;)20:22
abique|homeAnchakor, it does not support GUI20:23
abique|homeand it probably can't20:23
drobillaMeh.  GUIs are overrated.20:23
abique|homewhat do you mean?20:24
drobillaThough with that many parameters the host one probably isn't going be so hot20:24
*** edogawa has quit IRC20:57
*** rncbc has quit IRC22:15
*** ricardocrudo has quit IRC23:14
abique|homeI think that this number of parameter is a consequence of plugin design. If you take zebra, it is a semi modular synth and you can have pleinty of parameters. But you usually don't instantiate all the modules. If the plugin could tell the host "new parameters set", it could expose only those that affect the sound and we shall go from 100 params to 20 maybe.23:14
*** abique|home has quit IRC23:24
drobillaabique: yep.  anothing thing events can do easily23:52
drobillaabique: grouping makes large numbers of parameters more manageable, but unless you have some kind of grouping in the plugin code already you can port, you'd have to do it manually I suppose23:53

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