rgareus | drobilla: fix comfirmed | 00:03 |
---|---|---|
rgareus | at least istantiating amsynth no longer assert()s | 00:06 |
*** bgribble has joined #lv2 | 00:11 | |
* drobilla wonders why he put a sord check in jalv's wscript | 00:19 | |
drobilla | rgareus: okay, good | 00:20 |
drobilla | Does kind of make the API a bit irritating, but too late to go back now. | 00:21 |
drobilla | I 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 break | 00:21 |
*** bgribble has quit IRC | 00:37 | |
*** ricardocrudo has joined #lv2 | 01:21 | |
*** ricardocrudo has quit IRC | 02:22 | |
*** ricardocrudo has joined #lv2 | 02:28 | |
*** ricardocrudo has quit IRC | 03:08 | |
*** edogawa has joined #lv2 | 06:52 | |
wumpus | I 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 mai | 08:21 |
*** magnetophon has joined #lv2 | 10:49 | |
*** LAbot has joined #lv2 | 11:42 | |
*** ricardocrudo has joined #lv2 | 12:45 | |
*** ricardocrudo has quit IRC | 12:46 | |
*** ricardocrudo has joined #lv2 | 12:46 | |
*** HarryHaaren has joined #lv2 | 12:47 | |
*** NickSB__ has quit IRC | 12:50 | |
*** bgribble has joined #lv2 | 13:30 | |
*** zth has joined #lv2 | 15:57 | |
*** rncbc has joined #lv2 | 16:20 | |
drobilla | wumpus: Hm, odd. I turned off notification for bounces recently because I was getting spam flooded. Maybe had some consequences... | 16:46 |
drobilla | Nothing in the queue as far as I CAN TELL | 16:46 |
wumpus | ok, I'll just try again then :) | 17:06 |
wumpus | Your subscription request has been received | 17:09 |
rgareus | drobilla: a while ago you had a screenshot of some pugl plugin running on windows... | 17:16 |
rgareus | drobilla: .. how did you do that? x-compile jalv for windows ? | 17:17 |
rgareus | is there a LV2 plugin host that runs on windows? | 17:18 |
rgareus | falktx has ported carla to win32, but AFAIK it's not yet released. | 17:18 |
*** mlpug has joined #lv2 | 17:44 | |
drobilla | rgareus: I don't x-compile. Just compile. | 18:09 |
drobilla | rgareus: I think Jalv at some point worked on Windows, though it's been a few releases since. | 18:10 |
drobilla | wumpus: Get your mail back? They don't require approval or anything | 18:10 |
rgareus | drobilla: 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 |
drobilla | rgareus: Comments don't email | 18:15 |
drobilla | rgareus: Hm. can gtk_main_quit() be called from any thread? | 18:16 |
*** Haskellfant has quit IRC | 18:26 | |
*** mlpug has quit IRC | 18:42 | |
*** zth has quit IRC | 18:42 | |
*** Haskellfant has joined #lv2 | 18:46 | |
rgareus | drobilla: good question. in theory, no. We should use a flag and periodically check that in a g_timeout function. | 18:46 |
rgareus | drobilla: then again, JackSessionSaveAndQuit: also calls jalv_close_ui() directly | 18:47 |
rgareus | drobilla: 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 #lv2 | 18:56 | |
*** HarryHaaren has quit IRC | 19:03 | |
*** HarryHaaren has joined #lv2 | 19:03 | |
*** HarryHaaren has quit IRC | 19:05 | |
*** falktx has joined #lv2 | 19:13 | |
*** zth has joined #lv2 | 19:22 | |
drobilla | rgareus: Good enough for me. Just curious. | 19:24 |
drobilla | rgareus: Crashing is exiting of a sort anyway :) | 19:24 |
rgareus | drobilla: as long as it exits all is fine :) | 19:24 |
rgareus | while 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 |
rgareus | starting 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 #lv2 | 19:44 | |
abique|home | Hi, 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() call | 19:46 |
drobilla | rgareus: Gives me an excuse to make a release without that direct check for sord anyway | 19:47 |
drobilla | Suggests there might be some bug with recursive pkg-config dependencies for my builds, but I should look into that... | 19:47 |
drobilla | abique|home: If by "possible" you mean "with currently supported APIs", no. | 19:47 |
drobilla | abique|home: You don't need to copy the data, just connect to the appropriate pointer | 19:48 |
drobilla | (I do think we need a connect_port()-less run() interface, but we don't yet) | 19:48 |
abique|home | drobilla, 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 |
drobilla | abique|home: Of course. Just like every other plugin API. The plugin can't allocate audio buffers every cycle! | 19:50 |
drobilla | abique|home: For controls, it is a bit different though, yes. | 19:50 |
drobilla | abique|home: So if you have a set_param() sort of interface, you'll have to do that. | 19:50 |
abique|home | to 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|home | but if I have 100 params | 19:52 |
abique|home | and we set the chunk size to a low value | 19:52 |
abique|home | the copy may start to get expensive right? | 19:52 |
drobilla | It's not really an issue of copying | 19:52 |
drobilla | It's changes vs signals | 19:52 |
drobilla | The difference is, you have to check every control value because it's a signal of sorts. | 19:53 |
drobilla | The host doesn't say "change this" only when it changes | 19:53 |
drobilla | Yes, this sucks. ControlPort sucks. | 19:53 |
drobilla | But conservatvely it's what we have right now. | 19:54 |
abique|home | I like control port | 19:54 |
drobilla | ... while you talk about a bunch of problems inherent with it? Okay. :P | 19:54 |
drobilla | Presumably you have the previous values around somewhere, so you only want to change your parameters when they have actually changed | 19:55 |
drobilla | So it won't actually be a copy of every single one every single cycle | 19:55 |
abique|home | If 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 issue | 19:55 |
drobilla | Doesn't really make sense. Parameters are set by the host. | 19:56 |
abique|home | host can set parameters into the dsp | 19:56 |
drobilla | Yes. Not the other way around. | 19:56 |
drobilla | You 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 IRC | 19:58 | |
abique|home | I could change u-he dsp code to plug a layer so the params can be accessed from external memory | 19:59 |
abique|home | but I'm not sure that Urs will agree | 19:59 |
drobilla | I thought they were proprietary? | 20:00 |
drobilla | or you are a dev? | 20:00 |
abique|home | they're proprietary | 20:00 |
abique|home | but I have access to the source code | 20:00 |
abique|home | I worked for u-he | 20:00 |
abique|home | to help them port their synths on linux | 20:00 |
drobilla | ah. | 20:00 |
abique|home | so we have vst on linux now | 20:00 |
abique|home | and on my free time I'm trying to bring lv2 support | 20:01 |
drobilla | By far your easiest bet it to just wrap them in the obvious way | 20:01 |
drobilla | Exactly as lvz/wrapper.cpp does | 20:01 |
drobilla | It's not ideal, but it will work, and it's good enough | 20:02 |
drobilla | Checking some floats, even over 100, is unlikely to be much overhead compared to a plugin doing DSP. Naturally it's reading parameters regardless | 20:02 |
*** bgribble has quit IRC | 20:03 | |
abique|home | one 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|home | I mean reading a param from the host is a potential cache miss? | 20:06 |
*** magnetophon has quit IRC | 20:09 | |
abique|home | drobilla, also in lilv, when dlopen() fails could you add a dlerror() in the error message? | 20:09 |
abique|home | thanks :) | 20:10 |
drobilla | abique|home: There is. | 20:10 |
drobilla | Well, not in the dynmanifest one, I suppose. | 20:11 |
abique|home | yes ;-) | 20:11 |
abique|home | finally I may not use the dynmanifest | 20:11 |
abique|home | not sure yet | 20:11 |
drobilla | abique|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 |
drobilla | http://dev.drobilla.net/newticket | 20:12 |
abique|home | ok for the next one I'll create a new ticket | 20:12 |
abique|home | or did you add the dlerror already? | 20:13 |
Anchakor | if you are porting some vst plugins, 99% you don't want dynmanifest | 20:13 |
*** zth has quit IRC | 20:14 | |
abique|home | my 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 manifest | 20:14 |
abique|home | it is not much different from dyn manifest | 20:14 |
abique|home | except that it is dyn to static manifest | 20:14 |
drobilla | Anchakor: We've been through that one | 20:14 |
drobilla | abique|home: No. I am heading out. Maybe tonight | 20:15 |
abique|home | drobilla, ok good bye | 20:15 |
Anchakor | abique|home: just generate the turtle in some way during the build process | 20:15 |
drobilla | Anchakor: He is effectively working from existing binary libs | 20:19 |
drobilla | A VST=>dynmanifest wrapper would actually be quite useful for others. Wink wink nudge nudge. ;) | 20:19 |
* drobilla out | 20:19 | |
Anchakor | well how many hosts support dynmanifest? | 20:19 |
drobilla | Anchakor: All the ones that use lilv. So... all of them, basically. | 20:20 |
Anchakor | hmm | 20:21 |
drobilla | Anchakor: Regardless you can use lv2info to get the ttl | 20:21 |
drobilla | Anchakor: This is how I port LADSPAs | 20:21 |
Anchakor | abique|home: you should work on NASPRO VST->lv2 auto-wrapper ;) | 20:22 |
abique|home | Anchakor, it does not support GUI | 20:23 |
abique|home | and it probably can't | 20:23 |
drobilla | Meh. GUIs are overrated. | 20:23 |
abique|home | what do you mean? | 20:24 |
drobilla | Though with that many parameters the host one probably isn't going be so hot | 20:24 |
*** edogawa has quit IRC | 20:57 | |
*** rncbc has quit IRC | 22:15 | |
*** ricardocrudo has quit IRC | 23:14 | |
abique|home | I 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 IRC | 23:24 | |
drobilla | abique: yep. anothing thing events can do easily | 23:52 |
drobilla | abique: 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 suppose | 23:53 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!