Monday, 2015-02-09

*** ricardocrudo has quit IRC01:31
drobillaI think maybe I give up02:31
*** falktx has joined #lv203:06
ColaEuphoriaAw :c03:50
*** NickSB2 has quit IRC04:06
drobillaWell, you can read this terrible thing if you like :)04:13
drobillaIt was probably unwise to wait until the very last day to start *and* stay up all night the night before04:14
* drobilla submits 4 pages of half written nonsense anyway05:50
drobillaGo team.05:50
Anchakorthat's how I do everything :)07:26
*** falktx has quit IRC07:55
*** falktx has joined #lv208:02
*** falktx_ has joined #lv208:13
*** Anchakor_ has quit IRC08:14
*** Anchakor_ has joined #lv208:14
*** falktx has quit IRC08:16
*** edogawa has joined #lv209:07
*** NickSB2 has joined #lv209:28
*** ddom has joined #lv210:16
*** ricardocrudo has joined #lv211:39
*** falktx_ has quit IRC11:55
*** HarryHaaren has joined #lv212:00
*** falktx_ has joined #lv212:16
*** ricardocrudo_ has joined #lv213:35
*** ricardocrudo has quit IRC13:35
*** falktx_ has quit IRC13:59
*** NickSB2 has quit IRC14:08
*** falktx_ has joined #lv214:17
*** falktx_ has quit IRC15:30
*** edogawa_ has joined #lv215:37
*** edogawa has quit IRC15:40
*** edogawa_ is now known as edogawa15:45
*** ddom has quit IRC15:57
*** gabrbedd has joined #lv216:40
*** rncbc has joined #lv217:39
*** falktx_ has joined #lv217:46
*** ricardocrudo_ has quit IRC18:12
*** rncbc has joined #lv218:14
*** mlpug has joined #lv218:34
*** rncbc has quit IRC18:53
*** ricardocrudo_ has joined #lv218:54
*** rncbc has joined #lv218:58
*** bazz has quit IRC19:04
*** bazz has joined #lv219:07
*** rncbc has quit IRC19:20
* drobilla wakes up considerably more sane19:20
drobillaRight then, where's that withdraw submission button19:20
*** ricardocrudo_ has quit IRC19:28
*** rncbc has joined #lv219:42
bgoladrobilla: are you submitting a paper to LAC ?19:45
drobillabgola: uhm, well......19:45
drobillabgola: I was attempting to do so for Ingen but I didn't get it done in time19:45
drobillabgola: I submitted a half written garbage draft anyway19:46
drobillaI don't know what to do about this situation, buuuuuuut that's what I've done, anyway19:46
bgoladrobilla: ah, probably good enough :p19:46
bgolabtw, about ingen + mod stuff, it is working (port connections, setting port value, presets, bypass, all the basics)19:49
bgoladid you get my email with the patch and my question about how to handle the client notification ?19:49
bgolaon that, i need to understand this client notification thing so mod-ui can be notified when a port value is changed19:50
drobillabgola: Cool.  I did not get your email, no19:51
drobillabgola: I have been working towards server side load/save, but not there yet19:51
drobillaDid server side copy paste with LV2 state support, which is kinda related.19:51
bgoladrobilla: hm, do you still use d@drobilla.net ?19:52
drobillaAdded a patch:Copy method which is what will be used.  Copy to/from filesystem path = save/load19:52
drobillabgola: yep19:53
bgoladrobilla: weird.. will send it again, sent it 5 days ago19:54
drobillaI could have missed it, but looking now, don't see anything.  Maybe my mysterious spam filter got it for some reason19:57
bgoladrobilla: fwd'd it now, from brunogola@gmail.cm19:58
*** ricardocrudo_ has joined #lv219:58
bgolacom*19:58
drobillabgola: Got it.19:59
drobillabgola: Looks like this done a ton of not real-time safe stuff in the audio thread.20:03
drobillabgola: Can't do that20:03
bgolahm, you mean the LV2Block stuff ?20:04
drobillaYes.  Called from Delta::execute()20:05
drobillaPart of that is easy to fix, load the preset in pre_process() and keep it around and only apply it in execute() (being the general way all events work in Ingen)20:06
bgoladrobilla: ah ok, makes sense20:06
drobillaI forget if applying state can happen while rolling at all, though, need to check the spec20:06
drobillaThis function is in the "Instantiation" threading class as defined by20:07
drobilla   LV2. This means it MUST NOT be called concurrently with any other20:07
drobilla   function on the same plugin instance.20:07
drobillaIt's ambiguous about realtimeyness, though.  Should fix that.  Example clearly isn't, though20:08
drobilla............. that might make this the first thing that's not doable in a single 3-phase event. That's no fun at all20:08
drobillaShould've added a garbage sink parameter to restore() for click-free preset changing20:11
drobillaMaybe a bit of a burden on plugins, though20:11
drobillabgola: I'll have to think about it.  You chose a particularly hard task :)20:14
drobillabgola: Thanks though.  Good start.20:14
bgoladrobilla: haha, ok,, in the meantime, is it possible for a client using the REST API to get notifications?20:15
drobillasave() can be called while rolling, though, so that part is at least easy20:18
drobillabgola: If you're connected to the socket, it'll stream you notifications20:18
*** HarryHaaren has quit IRC20:19
bgoladrobilla: let me check that20:20
drobillaI should write a little ingen_dump.py that just sits on it and dumps out notificatons to the console20:21
bgoladrobilla: i can do that20:23
bgola(basically what im doing now to test it )20:23
drobillaThere should probably be a way to explicitly ask for the stream, but at the moment I think you just get it regardless20:25
drobillaOnce upon a time I had HTTP in there so you could just point a browser at it.  That was neat...20:30
bgoladrobilla: so, i have a socket connected to ingen printing everything it recv()s, ingen prints "registering client ..." when it connects, then I connect with ingen_cli, add a plugin and set a port value20:31
bgolaapparently nothing happens on the other socket20:31
bgoladrobilla: btw, when I connect with two clients (ingen_cli and ingen -g for example), sometimes the socket get a weird behavior. I send() something to ingen, it does whatever is needed but dont send any response to the socket20:33
*** mlpug has quit IRC20:33
*** falktx_ has quit IRC20:34
bgoladrobilla: hm, if I connect the dump socket after adding the plugin using ingen_cli then ingen_dump gets the notification20:36
bgolabut ingen_cli blocks waiting for a response20:36
* drobilla runs two GUI clients20:36
drobillahm, you're right.  the first gets updated with changes from the second, but not the other way around20:36
drobilla(refresh will show everything)20:37
drobillaoh, right, netcat can do the dump20:39
drobillabgola: You using TCP or UNIX?20:40
bgolaUNIX20:41
bgoladrobilla: ^20:41
drobillahmmmmmm... because multiple clients have the same URI, so it ends up replacing it in the engine's map of them20:41
drobillae.g. add a second netcat and only it receives stuff20:42
bgoladrobilla: do you think it is easy to fix that?20:44
drobillayep20:44
drobillaI am just thinking about what they key should be, or if there should be any20:45
bgolahm ok20:45
drobillaUNIX socket always has the same address, so you can have multiple listeners with the same URI20:45
drobillasooooooo just invent one, I guess20:45
drobillaor just keep a set of objects around.  They might dangle...20:45
* drobilla doesn't know how he didn't think of using netcat for this earlier. Super handy20:45
* drobilla idly wonders if UNIX sockets can even do this20:47
drobillaI mean, if one client reads it, it's read...20:47
bgoladrobilla: found this https://stackoverflow.com/questions/9644251/how-do-unix-domain-sockets-differentiate-between-multiple-clients20:50
bgolamakes sense (?)20:50
drobillayep20:51
drobillaI wonder if that file descriptor actually has a path I can get...20:51
bgoladrobilla: i think when you accept() it returns the fd for that connection20:56
bgolathen using the fd you can get a path20:57
drobillaThere are functions for getting the address, looking in to it20:59
drobillaMight not need a path/URI at all, just kind of idly curious20:59
bgolayep, i believe the fd is enough as a key21:00
drobillaYeah.  I'm just worried that there's a "client address" flying around that's just straight up wrong21:01
*** HarryHaaren has joined #lv221:04
bgoladrobilla: you mean the addr when initializing a Raul::Socket ?21:06
drobillabgola: Yeah, the one on the socket returned from Raul::Socket::accept()21:07
drobillanote to self: figure out why socket are being leaked21:07
bgoladrobilla: maybe get the fd file path using readlink(/proc/pid/fd/...) ?21:09
drobillabgola: Not portable even among unices, and needs to work for TCP anyway21:10
bgoladrobilla: yeah, i dont like that because of portability. but I can't find a portable way to find the file path anyway21:13
*** NickSB2 has joined #lv221:14
drobillaIt's find.  I'm just not getting the client socket address correctly21:14
drobillafine*21:14
drobillaFixed it for TCP, but still doesn't work for UNIX21:16
drobillaThere's no port number, just gives you the same path21:17
drobillaAlriht, well, good to have fixed that bug anyway21:19
drobillaBut I guess I'll try making Ingen not care21:19
bgoladrobilla: i tried with python to see what it returns as client address21:21
bgolaconnection, client_address = sock.accept()21:22
bgolaclient_address is ''21:22
drobillayeah, apparently impossible.  The fd has no FS node at all, probably21:22
bgoladrobilla: yep...21:23
bgolagotta go, be back tomorrow21:23
HarryHaarenis the question if a file-descriptor has a node in the file-system?21:24
HarryHaaren/proc/<pid>/fd/<number> ?21:25
drobillabgola: Fixed.  Positions don't seem to get updated across clients for some reason, but other stuff does21:37
drobillaHarryHaaren: Address for a socket.  In the case of accepted UNIX socket connections, seems there isn't one.21:38
HarryHaarenah ok - i was jumping the gun a bit there so :)21:39
*** ricardocrudo_ has quit IRC21:42
*** rncbc is now known as rncbc|AFK22:08
*** rncbc|AFK has quit IRC22:09
bgoladrobilla: nice, it works :)22:34
drobillabgola: Yeah, seems find except for that moving modules bit.  Maybe patch:Patch isn't working in the client for some reason...22:46
drobillabgola: How are you / do you plan to hook browser stuff up to this anyway?22:47
* drobilla wishes RDF could fit in JSON decently22:53

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