*** Domino has quit IRC | 00:31 | |
drobilla | rgareus: Presumably with LV2_OPTIONS_INSTANCE? In which case it means the plugin instance (since subject is meaningless with that context) | 00:49 |
---|---|---|
drobilla | (Yes, this is documented poorly now that I look at it) | 00:49 |
rgareus | drobilla: is there a way to find all possible options? | 00:52 |
drobilla | rgareus: From a plugin? opts:supportedOption and opts:requiredOptions. Nothing dynamic. | 01:22 |
rgareus | drobilla: from the specs | 01:24 |
rgareus | for a host to see which options there are to implement | 01:24 |
rgareus | for a host *author* to *learn* which options there are to implement | 01:25 |
rgareus | is there some nice RDF query that one can run on the specs? | 01:26 |
joelkraehemann | thank you for your efforts | 01:28 |
drobilla | rgareus: Not really | 01:38 |
drobilla | rgareus: You can query for things that are a opts:Option | 01:38 |
drobilla | rgareus: But it's not required that anything used as an option be (deliberately) | 01:39 |
drobilla | rgareus: context? | 01:39 |
drobilla | rgareus: You can query (* opts:supportedOption ?opt) and (* opts:requiredOption ?opt) for all plugins I suppose | 01:40 |
rgareus | context is joelkraehemann asking earlier what options to imlement in his host | 01:40 |
rgareus | and the answer is pretty much: look at jalv (or ardour) -- currently only http://lv2plug.in/ns/ext/buf-size | 01:42 |
rgareus | IIRC falktx has a few non-standard options in carla | 01:42 |
rgareus | I'm not sure | 01:43 |
*** artfwo has quit IRC | 01:55 | |
drobilla | I would say the answer is to look at plugins you want to work, as always, but sure, looking at well-known implementations will get you a reasonable must-have list | 02:59 |
drobilla | http://git.drobilla.net/cgit.cgi/jalv.git/tree/src/jalv.c#n1074 | 02:59 |
*** Yruama_Lairba1 has quit IRC | 02:59 | |
joelkraehemann | thx | 03:34 |
*** oofus has quit IRC | 09:11 | |
*** Domino has joined #lv2 | 09:12 | |
*** trebmuh has joined #lv2 | 10:48 | |
*** artfwo has joined #lv2 | 12:08 | |
*** Yruama_Lairba has joined #lv2 | 12:23 | |
*** ventosus has quit IRC | 13:03 | |
*** ventosus has joined #lv2 | 13:04 | |
*** jcelerier has joined #lv2 | 14:10 | |
jcelerier | hello :) | 14:11 |
jcelerier | so, effects start working correctly with my host. Now I'd like to support instruments | 14:11 |
jcelerier | but I don't really understand how MIDI is handled | 14:11 |
jcelerier | between lv2.atom, lv2.event | 14:11 |
jcelerier | etc | 14:11 |
jcelerier | basically, how can I make a plug-in play a note at a given sample ? | 14:12 |
drobilla | jcelerier: http://lv2plug.in/git/cgit.cgi/lv2.git/tree/plugins/eg-midigate.lv2 | 14:27 |
jcelerier | drobilla: so MIDI will always be through "http://lv2plug.in/ns/ext/atom#AtomPort", not event port or midi port ? | 14:49 |
rgareus | jcelerier: correct event-ports were deprecated 3 years ago. | 14:49 |
jcelerier | okay | 14:50 |
jcelerier | well let's just hope that there aren't too many legacy plug-ins... | 14:50 |
rgareus | jcelerier: pretty much all have moved to LV2 AtomSequences | 14:50 |
jcelerier | so.. is there a reliable way to know that a port will be expecting MIDI information and not OSC or some other protocol ? | 14:53 |
rgareus | jcelerier: atom:supports midi:MidiEvent | 14:53 |
rgareus | in the .ttl with expanded URIs: http://lv2plug.in/ns/ext/atom#supports http://lv2plug.in/ns/ext/midi#MidiEvent | 14:54 |
rgareus | for a given port | 14:55 |
jcelerier | so.. I guess I could use the lv2_evbuf in Jalv (and ardour also it seems) ? Is it meant to facilitate this ? | 15:11 |
rgareus | yep. | 15:17 |
rgareus | well, you need a bit more infrastructure first. URI-map (translate a URI to a number) | 15:18 |
jcelerier | I have URI-map already | 15:19 |
jcelerier | what I don't really grasp is at which point in my host should I "write" the event to the plug-in | 15:20 |
rgareus | jcelerier: before calling the plugin's run() | 15:20 |
rgareus | jcelerier: queue all MIDI events with a timestamp for the given cycle | 15:20 |
rgareus | basically build some molecules out of Atoms: [ timestamp + Midi-event ] ; then make a sequence of those | 15:23 |
rgareus | timestamp is relative to cycle-start 0 .. (n_samples - 1) | 15:26 |
jcelerier | rgareus: in this code : https://github.com/rncbc/qtractor/blob/69fef3e091fd84d6928f8a0f0c0b2142be60ada4/src/lv2/lv2_atom_helpers.h#L219 | 15:30 |
jcelerier | isn't timestamping done already ? | 15:30 |
jcelerier | (ev->time.Frames = frames) | 15:30 |
rgareus | yes | 15:32 |
rgareus | LV2_Atom_Event = timestamp + Atom-Event | 15:33 |
rgareus | type == mapped URI of http://lv2plug.in/ns/ext/midi#MidiEvent | 15:33 |
rgareus | in your case | 15:34 |
jcelerier | nice, thanks | 15:34 |
*** oofus_lt has joined #lv2 | 15:40 | |
drobilla | I'd say bothering with event ports in new code at this point is a waste of time, but you can if you like. IIRC calf is the only significant straggler | 16:05 |
jcelerier | :'( | 16:06 |
rgareus | drobilla: you're behind times | 16:12 |
rgareus | drobilla: calf switched to Atom ports over 2 years ago | 16:12 |
ventosus | even pianoteq has switched to atom ports last year :) | 16:15 |
rgareus | ventosus: I thought they already did in 2015 | 16:16 |
rgareus | around the time when they also introduced the unescaped space in the URI. april or may '15 IIRC | 16:17 |
* ventosus searches his mailbox for the 'feature request' | 16:18 | |
rgareus | ventosus: do you know who's in charge of LV2 at pianoteq? | 16:18 |
rgareus | would be nice to invite them to LAC in Lyon. | 16:19 |
jcelerier | oh nice, set-up by the GRAME :) | 16:20 |
jcelerier | do you know if the call for communications is still open ? | 16:20 |
rgareus | jcelerier: http://lac.linuxaudio.org/2017 | 16:20 |
rgareus | jcelerier: call for papers? | 16:20 |
rgareus | yes, still open until Feb/10 | 16:21 |
ventosus | rgareus: I've sent the request to please change to atoms march 2016 | 16:21 |
jcelerier | nice | 16:21 |
jcelerier | thanks | 16:21 |
jcelerier | I've already got a paper to submit for the end of the month but I'll try to fit a poster | 16:21 |
jcelerier | rgareus: are you working at GRAME or not at all ? | 16:23 |
ventosus | rgareus: don't know who's responsible, my email was answered by julien pommier | 16:24 |
ventosus | having pianoteq at LAC would be nice indeed | 16:24 |
rgareus | jcelerier: I'm working, but not at GRAME :) | 16:29 |
* rgareus has his own company, which works mostly for harrisonconsoles.com | 16:30 | |
jcelerier | nice, ok | 16:30 |
jcelerier | (I was asking because what I'm currently doing is retrofitting LV2 into one of their libs, LibAudioStream) | 16:31 |
rgareus | jcelerier: I contributed a bit to FAUST, but that was mostly for stanford's benefit | 16:31 |
rgareus | I know Stephane and and yann since maybe 10 years, but I've never visited at GRAME. | 16:32 |
jcelerier | okay :) I'm working with Stephane for this one | 16:33 |
rgareus | jcelerier: say hi to him. | 16:33 |
jcelerier | but they are both knee-deep in faust currently :p | 16:33 |
rgareus | jcelerier: are you in Lyon? | 16:34 |
jcelerier | rgareus: naye, Bordeaux | 16:34 |
*** Yruama_Lairba1 has joined #lv2 | 16:46 | |
*** Yruama_Lairba has quit IRC | 16:48 | |
*** oofus_lt has quit IRC | 16:48 | |
*** ademilsonfp has joined #lv2 | 17:05 | |
*** oofus_lt has joined #lv2 | 17:09 | |
jcelerier | if only the stuff in Carla was refactored into a nice easy to use library ! it seems that the code is pretty complete | 17:19 |
*** oofus_lt has quit IRC | 17:23 | |
drobilla | rgareus: Fair enough. I probably only remember the calf thing as a "we didn't provide a strictly non-breaking upgrade path for that" mental note | 17:25 |
drobilla | I make no claim to actually be up to date on the general state of plugins that exist. Almost tempted to add a phone home mechanism in lilv but you can imagine that shitshow :) | 17:25 |
drobilla | (and frankly you're not missing out on much but shiny GUIs there anyway, so I just never really cared) | 17:26 |
jcelerier | who does not like a shiny gui :D | 17:27 |
drobilla | jcelerier: There is not much to writing, really. lv2_atom_sequence_append_event does it. | 17:29 |
drobilla | If you're only writing MIDI, that's the easiest way. For mixed streams of MIDI and fancier things the forge is handy | 17:29 |
jcelerier | drobilla: I don't have this function | 17:33 |
jcelerier | where is it defined ? | 17:33 |
drobilla | atom/util.h | 17:33 |
jcelerier | thanks | 17:38 |
jcelerier | gonna buy some coffee, see you | 17:38 |
*** oofus_lt has joined #lv2 | 17:41 | |
*** oofus_lt has quit IRC | 18:04 | |
*** HarryHaaren has joined #lv2 | 19:19 | |
*** dsheeler has joined #lv2 | 19:23 | |
*** oofus_lt has joined #lv2 | 19:34 | |
*** ademilsonfp has quit IRC | 20:37 | |
*** dsheeler has quit IRC | 20:43 | |
*** dsheeler has joined #lv2 | 20:51 | |
*** deva has joined #lv2 | 21:16 | |
*** deva has quit IRC | 21:45 | |
jcelerier | jq | 21:47 |
jcelerier | yeahhhhh | 22:02 |
jcelerier | I'm getting these sweet sweet midi note | 22:02 |
rgareus | jcelerier: what synth are you testing with? | 22:03 |
jcelerier | amsynth | 22:03 |
jcelerier | the calf stuff seems to work too | 22:10 |
*** HarryHaaren has quit IRC | 22:51 | |
*** LAbot has joined #lv2 | 23:21 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!