*** rncbc has joined #lv2 | 00:02 | |
*** rncbc has quit IRC | 00:25 | |
*** drobilla has quit IRC | 00:36 | |
*** oofus_lt has quit IRC | 01:07 | |
*** NickSB__ has quit IRC | 01:08 | |
*** NickSB has joined #lv2 | 01:14 | |
*** edogawa has quit IRC | 01:36 | |
*** badosu has quit IRC | 01:51 | |
*** trebmuh has quit IRC | 02:15 | |
*** Yruama_Lairba has quit IRC | 03:01 | |
ventosus | rgareus: yes, I had come up with a JSON-LD wrapper for moony's web-ui | 06:51 |
---|---|---|
ventosus | LV2 atoms can nicely be expressed with JSON-LD | 06:51 |
ventosus | my implementation only supported the 'exapanded' form though, which is quite bulky | 06:52 |
ventosus | with serd we should be able to implement the 'compacted' form | 06:53 |
ventosus | 'compacted' form is similar to the @prefix syntax in turtle | 06:53 |
ventosus | I've used it successfully to communicate via websockets, but have migrated to GL in the meantime | 06:54 |
ventosus | as 'expanded' JSON-LD is a pain to use from within js, I took the following route: | 07:36 |
ventosus | C atoms -> expanded JSON-LD -> compacting expanded JSON-LD with json-ld.js | 07:37 |
ventosus | construct compacted JSON-LD -> expanding compacted JSON-LD with json-ld.js -> expanded JSON-LD -> C atoms | 07:37 |
ventosus | as there is a single expanded JSON-LD form, exchanging that form between host and browser is the most straight-forward (needs more bandwidth, though) | 07:43 |
ventosus | if you instead want to exchange compacted JSON-LD between host and browser, there's the need to implement the whole bunch of compacting/expanding algos on the host side | 07:44 |
ventosus | as I've failed to find any C library out there implementing the involved algos, I opted for json-ld.js and thus doing the compacting/expanding in js itself | 07:46 |
*** deva has joined #lv2 | 09:38 | |
*** edogawa has joined #lv2 | 09:41 | |
*** rncbc has joined #lv2 | 12:07 | |
*** son0p has quit IRC | 12:30 | |
*** trebmuh has joined #lv2 | 12:31 | |
*** Yruama_Lairba has joined #lv2 | 12:46 | |
*** son0p has joined #lv2 | 12:53 | |
*** edogawa has quit IRC | 13:02 | |
*** jbitdrop has joined #lv2 | 13:06 | |
*** ocbtec has joined #lv2 | 13:06 | |
*** Yruama_Lairba has quit IRC | 13:13 | |
*** deva has quit IRC | 15:11 | |
*** JaVelDa has left #lv2 | 15:35 | |
*** JaVelDa has joined #lv2 | 15:38 | |
*** drobilla has joined #lv2 | 15:55 | |
*** Yruama_Lairba has joined #lv2 | 18:01 | |
*** naptastic has joined #lv2 | 18:24 | |
naptastic | How do I debug LV2 plugin loading in more detail than Ardour provides? (It says it's not installed on the system.) | 18:24 |
naptastic | It was working, and then I modified the .ttl files in preparation for publication. So, no doubt I screwed those up somehow. | 18:24 |
*** oofus_lt has joined #lv2 | 18:31 | |
naptastic | What's supposed to be in ~/.lv2/presets/manifest.ttl ? | 18:34 |
naptastic | jalv complains about its absence, and complains if it's empty. | 18:34 |
ventosus | naptastic: does your plugin validate? http://lv2plug.in/pages/validating-lv2-data.html | 18:34 |
naptastic | ventosus, thanks for the pointer--I'll check that right now. | 18:35 |
ventosus | naptastic: some hosts won't load plugins that don't validate anymore, iirc | 18:35 |
naptastic | ventosus, yeah... Ardour just says it isn't installed. I haven't tried other hosts. | 18:36 |
naptastic | holy crap... I have no idea how to fix this | 18:37 |
naptastic | did the file format change between now and when the example plugin was published? 'Cos this just makes no sense at all. | 18:39 |
ventosus | too many errors? how did you invoke sord_validate? | 18:42 |
rgareus | jalv.gtk is nice as a test-host. also handy for gdb with jackd -d dummy | 18:44 |
naptastic | $ sord_validate manifest.ttl | 18:44 |
naptastic | I also used sord_validate against .ttl files in the example plugins in the lv2 git repo, with similar results. So I'm probably doing something wrong. | 18:44 |
ventosus | naptastic: that's not enough. you have to include ALL .ttl files of the whole LV2 spec | 18:45 |
ventosus | + your plugin's .ttl files | 18:45 |
naptastic | oh I see | 18:46 |
naptastic | sord_validate $( find /home/david/downloads/lad/lv2 -name '*.ttl' ) *.ttl | 18:48 |
ventosus | something like that, yeah | 18:49 |
naptastic | now it's throwing errors on files in the lv2 spec :| | 18:50 |
rgareus | more likely lv2 example plugins | 18:50 |
naptastic | why didn't we use JSON or YAML or ini or something? | 18:50 |
naptastic | well, it's not saying what file has the errors | 18:50 |
* naptastic drums his fingers and thinks | 18:50 | |
ventosus | maybe you did not include the schema files | 18:50 |
ventosus | that's the wrapper I use: https://paste.open-music-kontrollers.ch/lv2validate | 18:51 |
* rgareus uses sord_validate `find ~/src/lv2/ -name '*.ttl' | grep -v plugins` "$@" | 18:51 | |
naptastic | I think it didn't read the schema files first. | 18:52 |
naptastic | I made it read *just* the schema directory and it reported zero errors. So that's a start. | 18:52 |
naptastic | https://dpaste.de/3N6e | 18:53 |
naptastic | now what do I do with this? | 18:53 |
rgareus | probably you didn't mark your plugin as a lv2:plugin | 18:55 |
naptastic | https://dpaste.de/p2Q4 | 18:55 |
naptastic | that's the manifest.ttl file... maybe there's a syntax error? I don't know this format. | 18:56 |
rgareus | that file by itself is fine. | 18:58 |
rgareus | you probably need to validate both manifest and nap-smash.ttl at the same time. | 18:59 |
naptastic | Perhaps I should just publish what I have. I'm still getting errors from sord_validate, and Ardour still won't load the plugin. | 18:59 |
* naptastic tries that | 18:59 | |
rgareus | lv2:Plugin needs a doap:name | 18:59 |
drobilla | naptastic: Things in LV2_PATH including ~/.lv2 are expected to contain LV2 bundles, i.e. there probably shouldn't be a ~/.lv2/presets/ | 19:12 |
drobilla | Yes, we reeeeally need to include a wrapper for this :) | 19:13 |
naptastic | lol | 19:13 |
drobilla | or program (it's a bit weird, dependency-wise ATM) | 19:14 |
naptastic | and while we're at it, can we please put it in ~/.config/lv2 instead of ~/.lv2? | 19:14 |
naptastic | too many programs just plop themselves down in my homedir (I'm looking at you, MuseScore) | 19:14 |
naptastic | btw, that sord_validate command produces tens of errors for all of the example plugins in lv2's git repo. | 19:16 |
drobilla | Being not configuration files, no, not really | 19:16 |
drobilla | $ sord_validate $(find ~/src/lv2 -name '*.ttl') | 19:16 |
drobilla | Found 0 errors among 106 files (checked 0 restrictions) | 19:16 |
drobilla | 19:16 | |
naptastic | (that's `sord_validate ~/downloads/lad/lv2/schemas.lv2/*ttl *ttl`) | 19:16 |
naptastic | ...what the hell... | 19:17 |
naptastic | maybe my sord is out of date? | 19:17 |
drobilla | Possible. Some of the number stuff got a bit smarter recently | 19:17 |
naptastic | Was your last update Dec. 16? | 19:18 |
naptastic | sorry, Dec. 11 | 19:18 |
* drobilla notices this machine is out of date | 19:21 | |
naptastic | drobilla, could running Debian Sid be part of the problem? I'm up-to-date now on everything, and the example plugins still throw errors on validation. https://dpaste.de/TkO7 | 19:21 |
naptastic | though, that is a *lot* better | 19:21 |
drobilla | sord 0.16.0 shouldn't do that | 19:22 |
drobilla | * sord_validate: Tolerate xsd:decimal literals for double and float | 19:22 |
drobilla | properties if literals match pattern | 19:22 |
drobilla | 19:22 | |
naptastic | sord_validate 0.15.1 <http://drobilla.net/software/sord> | 19:23 |
naptastic | git push, maybe? | 19:23 |
naptastic | maybe I have the wrong remote? http://git.drobilla.net/drobillad.git | 19:23 |
drobilla | http://git.drobilla.net/cgit.cgi/sord.git/commit/?id=31ea384f24e12778d6e30cc7a30b0f48f3d50523 | 19:24 |
naptastic | xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)" | 19:26 |
naptastic | why does xsd:pattern want the decimal to be escaped? That seems like a mistake. | 19:26 |
drobilla | Turtle itself supports escapes, so to get a \ in the pattern, you need to escape the \ | 19:28 |
naptastic | ah | 19:28 |
* naptastic is too used to Perl... | 19:29 | |
naptastic | also, I didn't do `git submodule update` so I wonder if that's why I have an old version. | 19:29 |
* naptastic is compiling... | 19:29 | |
drobilla | ./waf update is your friend | 19:32 |
naptastic | I didn't even know that was a thing | 19:33 |
naptastic | Found 44 errors among 3 files (checked 0 restrictions) | 19:33 |
naptastic | so, my plugin's .ttl files are royally screwed up :P | 19:34 |
drobilla | among 3 files implies you aren't including the schemas | 19:35 |
drobilla | You need to run it on all the things in LV2, and your plugin bundle | 19:35 |
drobilla | sord_validate is dumb, all the rules come from ttl schemas | 19:35 |
naptastic | yeah, it would also be nice if it told me which file contained which errors | 19:36 |
naptastic | it's C++, right? | 19:36 |
naptastic | What does "Object not in property range" mean? | 19:37 |
drobilla | C | 19:37 |
drobilla | Yes, this is a limitation of sord at the moment. Origin metadata for every statement is not stored in memory | 19:37 |
drobilla | "object" is the value (third thing in a triple) | 19:38 |
drobilla | so the value there is not in the specified range of the property | 19:38 |
* naptastic begins typing, deletes sentence, starts again, 4 times, then goes to read the .ttl files for the example plugins | 19:39 | |
naptastic | drobilla, does LV2 not like https URLs? | 19:46 |
*** deva has joined #lv2 | 19:47 | |
naptastic | 'license' and 'HardRTCapable' were misspelled. (At some point, someone changed 'Rt' to 'RT' in the definitions.) | 19:49 |
drobilla | It doesn't care about URL scheme | 19:51 |
drobilla | But an https URL is not equivalent to an http one | 19:51 |
naptastic | how so? (Should I host my plugin on http instead of https?) | 19:52 |
drobilla | I am not sure how to answer that question. One has an s in it where the other does not? :) | 19:52 |
naptastic | LOL | 19:52 |
naptastic | alright then | 19:52 |
drobilla | I don't really know what the general semweb best practice is for this, but you can make your plugin URI whatever you like within reason | 19:53 |
naptastic | drobilla, well, sord_validate doesn't think that doap:maintainer is a valid thing, so I'm just going to leave that out for now... | 20:02 |
naptastic | drobilla, it still doesn't load in Ardour, and all my .ttl files pass without error. What else should I check? | 20:04 |
naptastic | (unrelated: Why is /usr/local/lib/lv2 owned root:staff, and the group-sticky bit set on all the plugin directories?) | 20:06 |
ventosus | naptastic: does it load in another host? e.g. jalv | 20:08 |
ventosus | unresolved symbols maybe? link with -Wl,-z,defs to warn about them | 20:10 |
drobilla | naptastic: It's not, but it's also common. We were sloppy back in the day (this is why lv2:project exists, which is usually a much nicer way of describing that stuff anyway) | 20:14 |
drobilla | Yes, try a simpler host. Can't really say much without knowing what "doesn't load" actually means (show up at all? instantiate?) | 20:15 |
drobilla | lv2ls and lv2info are also useful | 20:15 |
* naptastic nods | 20:16 | |
naptastic | ok, trying stuff | 20:16 |
naptastic | also, drobilla, would you take a patch to make lv2ls not dump so much noise to STDERR? | 20:17 |
naptastic | drobilla, the only error message I'm able to get (lv2ls, lv2info, jalv) is "plugin not found" | 20:21 |
ventosus | naptastic: well, where/how did you install it? | 20:23 |
naptastic | ventosus, I copied the plugin directory to /usr/local/lib/lv2/ | 20:23 |
naptastic | so /usr/local/lib/lv2/nap-smash.lv2/ contains the .ttl files, the .o file, etc... | 20:24 |
ventosus | ok, 'lv2ls | grep naptastic' gives you nothing? | 20:26 |
naptastic | There's a lot of output. But I notice right before it mentions nap-smash.ttl, it says "error: failed to expand CURIE `doap:name'" | 20:27 |
naptastic | maybe I forgot to include doap in one of my .ttl files | 20:27 |
naptastic | If that were a problem though, shouldn't sord_validate have caught it? | 20:28 |
naptastic | That was it. I removed the doap:name from manifest.ttl (which doesn't load doap) and lv2ls sees the plugin. Now to check Ardour... | 20:29 |
*** oofus_lt has quit IRC | 20:31 | |
naptastic | ventosus, lv2ls also dumps everything to STDERR, afaict, so you've got to add 2&>1 before your |grep | 20:31 |
naptastic | or 2>&1 | 20:31 |
naptastic | I can never remember which | 20:31 |
ventosus | lv2ls here does not write anything to stderr... | 20:32 |
*** edogawa has joined #lv2 | 20:32 | |
*** oofus_lt has joined #lv2 | 20:32 | |
naptastic | :| | 20:33 |
naptastic | jalv happily loads the plugin, then tries to start JACK (which is already running) then exits. ($? = 1) How do I make it work with the JACK that's already running? | 20:40 |
naptastic | jalv --help doesn't give any clues, unless I'm missing something | 20:41 |
naptastic | Plugin <http://lv2.naptastic.com/nap-smash.lv2> is missing port 0/3 | 20:42 |
naptastic | FINALLY A USEFUL ERROR MESSAGE! | 20:42 |
naptastic | ok, fixed that, and now Ardour fails to load my plugin, with no error message at all. | 20:46 |
naptastic | lilv_plugin_instantiate(): error: No plugin <https://lv2.naptastic.com/nap-smash.lv2> in <file:///usr/local/lib/lv2/nap-smash.lv2/nap-smash.so> | 20:55 |
*** ocbtec has quit IRC | 20:56 | |
*** oofus_lt has quit IRC | 20:56 | |
naptastic | oh, I think I know what that means | 20:56 |
drobilla | You fixed all the invalid problems, so clearly the messages were useful in some respect :P | 20:57 |
drobilla | Your binary and data aren't using the same URI | 20:57 |
naptastic | yep--they didn't match | 21:00 |
naptastic | ok, Jalv now loads it, but Ardour doesn't find it. | 21:01 |
naptastic | I think it's time for a break. I'mma go play some Overwatch for a bit. | 21:02 |
naptastic | ok. I'm an idiot. The name changed, so Ardour thought it was missing when I loaded my session. | 21:07 |
naptastic | remove, re-add, all's good. | 21:07 |
*** deva has quit IRC | 21:15 | |
*** drobilla has quit IRC | 21:37 | |
*** wumpus has quit IRC | 22:22 | |
*** wumpus has joined #lv2 | 22:23 | |
*** NickSB has quit IRC | 23:10 | |
*** NickSB has joined #lv2 | 23:22 | |
*** NickSB has quit IRC | 23:56 | |
*** NickSB has joined #lv2 | 23:57 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!