Thursday, 2015-05-21

drobillasord_validate will only be compiled if PCRE is present02:42
drobillargareus: sounds like save to the same name is probably just broken, I don't think an unload/delete happens in that case02:45
drobillargareus: I don't understand your "2 states" point02:45
rgareusdrobilla: clicking on a radio button that's already active does nothing02:58
rgareusdrobilla: hence you need two states to switch in between.02:58
rgareusin jalv:  save preset A.  change some param. save preset A (replace existing state).   load preset XX (just to toggle the radio), load preset A.03:02
rgareusjalv restores the original state (before the parameter change).03:03
rgareusbut the preset on disk is correct (a restart of jalv picks up the new preset)03:04
rgareusdrobilla: can you reproduce this?03:12
drobillargareus: Haven't tried, but probably.  Pretty sure saving just doesn't delete.03:13
drobillaI don't really get where that multiple state thing is coming from.  I mean, yeah, sure, theoretically, but if you just saved it, that's already the current plugin state by definition03:14
rgareusdrobilla: the main bug is "update current preset in ardour"03:16
rgareusupdate / save a preset - test some other preset, reload the [updated] preset -> wrong settings03:17
rgareusonly a restart (reload the world) "fixes" this03:18
rgareusdelete preset &  re-create it  has the same result (the old actually deleted settings are restored).  but the bug is a different one.03:19
drobillaThe first does not surprise me, the latter (delete) does03:22
rgareusdrobilla: while the preset is deleted from disk, it's not [fully] removed from the world.03:24
drobillaLilv could theoretically just do this, I suppose, but probably with an API change and that seems potentially sketchy to begin with.  Probably the hosts need to do the right thing in this scenario and unload the preset before re-saving then re-loading if that's the desired behaviour03:24
drobillaThough lilv_state_save does have a world parameter, so it probably could03:25
rgareusdrobilla: the error in the delete+re-create  case is different in ardour and jalv in the delete case.  jalv fails to re-load (doap:name already exists or something like that.03:25
drobilla(You hadn't mentioned that you were overwriting existing presets when I said it WFM)03:26
drobillargareus: Probably ends up with a partial-duplicate in the world model03:27
drobillargareus: Though lilv_state_delete does remove from the world model03:27
rgareusdrobilla: it should but it does not.  check the return value  0 entries are removed03:28
drobillargareus: What return value?03:28
rgareusdrobilla: that of lilv_world_unload_bundle()03:29
rgareusdrobilla: let's check the delete part first, shall we?03:29
rgareusdrobilla: jalv calls  lilv_state_delete()03:30
* drobilla is guessing state->dir isn't a URI03:30
rgareusdrobilla:  IIUC the prblem is the first part there     "Read manifest into model"03:31
drobillaThough it seems lilv_world_unload_bundle always returns 0, except on error.  Where'd you get "entries removed" from?03:32
rgareuscalling  lilv_world_unload_bundle()  before -> unloads the file.   but calling it after does not.03:32
rgareusdrobilla: you're right.   I mixed that up with lilv_world_unload_resource()  which returns number of removed resources03:34
drobillargareus: That bit loads it into a temporary model03:34
drobillaWhether state->dir is a dir or a URI seems to be confused.  Sometimes one, sometimes the other03:37
drobillaIf it's a dir in this case, then it won't be the correponding URI of any graph, so drop will do nothing03:37
rgareusdrobilla: indeed. it's confusing.03:38
rgareusdrobilla: I tried to printf() debug it.  but didn't find a way to turn SordIter back into something human readable03:40
drobillaNeeds unit tests03:50
drobillaThere's no one-stop iter print, but you can get the quad then print the nodes03:51
drobillargareus: I'm going to have to look into this later, tests inward.  A "fix" for just this case in an app or two is too risky, probably break stuff04:32
*** sigma6 has joined #lv208:10
*** gianMOD has joined #lv208:12
*** edogawa has joined #lv208:17
*** falktx has joined #lv208:29
*** ricardocrudo has joined #lv208:47
*** ricardocrudo has quit IRC10:00
*** ricardocrudo has joined #lv210:00
*** gianMOD has quit IRC10:33
*** john_cephalopoda has joined #lv211:02
*** ricardocrudo has quit IRC11:15
*** edogawa_ has joined #lv211:22
*** edogawa has quit IRC11:25
*** rncbc_jolla has joined #lv211:38
*** ricardocrudo has joined #lv211:44
*** edogawa_ is now known as edogawa12:02
*** ricardocrudo has quit IRC12:04
*** falktx has quit IRC12:04
*** falktx has joined #lv212:04
*** ricardocrudo has joined #lv212:17
*** HarryHaaren has joined #lv212:24
*** john_cephalopoda has quit IRC12:32
*** falktx has quit IRC12:34
*** NickSB2 has quit IRC12:41
*** falktx has joined #lv212:46
*** rncbc_jolla has quit IRC13:29
*** edogawa has quit IRC13:35
*** gianMOD has joined #lv213:40
HarryHaarendrobilla, hey. Is there any news on the plugin bypass topic?14:38
* HarryHaaren is re-working the ArtyFX ui's, and could easily add an On/Off button..14:38
*** ricardocrudo has quit IRC14:38
*** ventosus has joined #lv214:51
*** ricardocrudo has joined #lv215:40
*** gianMOD has quit IRC15:46
*** gianMOD has joined #lv215:48
*** gianMOD has quit IRC15:50
*** gianMOD has joined #lv215:51
*** gianMOD has quit IRC15:52
*** gianMOD has joined #lv216:12
*** sigma6 has quit IRC16:38
*** rncbc has joined #lv216:40
*** john_cephalopoda has joined #lv216:48
*** gianMOD has quit IRC17:04
*** john_cephalopoda has quit IRC17:39
*** gianMOD has joined #lv217:43
*** ricardocrudo has quit IRC17:56
*** artfwo has quit IRC18:06
*** artfwo has joined #lv218:07
drobillaHarryHaaren: Nope.  Sent an email about that right after lac, nothing since18:19
* HarryHaaren browses for email18:19
drobillaHarryHaaren: privately to rgareus and fons18:20
HarryHaarenrgareus posted to list18:21
drobillalong story short I'm not sure that hole 'fade out latent plugins' thing that came up actually makes any sense18:21
*** gianMOD has quit IRC18:22
drobillaRemoval whatsoever seems to have the same sort of problem, though.  Once the plugin is bypassed, to remove it but retain signal flow you need to know what goes where at least to some degree18:25
HarryHaarenyep18:25
drobillaIt needs some thought as to how hosts can actually do this, and what information they need in order to do so18:25
HarryHaarenyep again. Just done reading thread18:26
HarryHaarenI'll leave things as they are right now and see where things go18:27
* HarryHaaren away for some food18:31
*** RikyPes has joined #lv219:22
RikyPesHi19:22
RikyPesI have audacity for windows and would like to know how to install LV2 plugins19:28
*** RikyPes has quit IRC19:28
*** rncbc_ has joined #lv219:28
*** rncbc has quit IRC19:28
*** RikyPes has joined #lv219:39
RikyPesSorry my internet broke19:39
RikyPesCan you explain how to install plugins on windows?19:39
HarryHaarenRikyPes, hey - do you have Audacity from source? Or does it have LV2 support in the latest Win installer already?19:46
RikyPesIt does have LV2 support, as stated in their website19:47
RikyPesin the latest win release of course19:47
HarryHaarenRikyPes, there's the default LV2 path, which is %APPDATA%/LV2;%COMMONPROGRAMFILES%/LV219:47
HarryHaaren(from http://lv2plug.in/pages/filesystem-hierarchy-standard.html )19:48
RikyPesI downloaded it two days ago19:48
HarryHaarenRikyPes, cool. Well I'm working on a suite of open-source LV2 plugins, but I don't currently have them available for windows19:48
HarryHaaren(don't have access to a windows development box atm)19:48
HarryHaarenRikyPes, are you a developer?19:48
RikyPesSorta. I'm studying computer engineering and still struggle on C language :P However I got the folder lv2-1.12.019:49
RikyPesShould I put it in that folder?19:49
HarryHaarenRikyPes, nope19:50
RikyPesin %APPDATA%/LV219:50
HarryHaarenRikyPes, have you built the example plugins in that lv2-1.12.0 directory?19:50
RikyPesNo, I left it untouched19:50
HarryHaarenok, so do you have a C compiler installed to compile source code?19:51
RikyPesYes19:52
RikyPesDevc++19:52
HarryHaarenthe lv2 directory contains example plugins - try building those19:52
HarryHaarenthere is no devc++ project file though. Cross platform projects like LV2 tend to rely on a "build system"19:52
HarryHaarena build system is a program that issues the build commands : waf is the build system used by LV219:53
HarryHaarenyou need python to run it19:53
RikyPesOk I will download it19:53
HarryHaarenRikyPes, what version of windows do you have?19:53
RikyPes7 ultimate x6419:54
HarryHaarenjust curious. Also, i won't be able to talk you trough this step-by-step as I don't have a win machine..19:54
HarryHaarenbut i can tell you what you're trying to do at any given time :)19:54
RikyPesThanks. I downloading python right now19:55
*** RikyPes has quit IRC19:59
*** falktx has quit IRC20:50
*** falktx has joined #lv221:14
*** john_cephalopoda has joined #lv221:53
john_cephalopodahi21:54
*** rncbc_ has quit IRC21:58
john_cephalopodaI got some code that keeps pretty close to the amp example, but is some kind of simple synth. But it doesn't work properly.21:59
john_cephalopodahttp://pastie.org/pastes/10201261/text?key=2zjuarzhgx2ciooqmgu8g21:59
john_cephalopodaWhen I add a signal to the input, it can be heard in the output signal, although it shouldn't be in there.21:59
john_cephalopodaI got no clue how it gets in there.21:59
john_cephalopodaAny idea what I could have done wrong?22:03
grejppijohn_cephalopoda: could you show the ttl files?22:05
rgareusRikyPes is gone, but for future reference22:05
rgareusa couple of x-platform LV2 (with Installer for OSX and Windows): http://x42-plugins.com/x42/  (sorry, gnu/linux is still only a tgz, no installer yet, but most distros have them anyway)22:05
john_cephalopodagrejppi: a.ttl   http://pastie.org/pastes/10201273/text?key=2xcvahyvvbxdxyy4gua22:07
*** falktx has quit IRC22:08
john_cephalopodagrejppi: manifest.ttl   http://pastie.org/pastes/10201274/text?key=wtqspo5cxiccbcexqcnstq22:08
grejppijohn_cephalopoda: a control port can only have a single value for one period22:10
john_cephalopodagrejppi: You are right.22:11
grejppirun() has freq[n] which goes outside the single value, and it might overlap with the buffer for input22:12
grejppijohn_cephalopoda: what if you change that to just (*freq)?22:15
john_cephalopodagrejppi: It works now, thanks.22:16
rgareusjohn_cephalopoda: change lv2:Instrument  to  lv2:InstrumentPlugin22:17
rgareusjohn_cephalopoda: that's not a /fatal/ error but there's no such URI as lv2:Instrument. it's http://lv2plug.in/ns/lv2core/#InstrumentPlugin22:18
rgareus^^ line 9  in http://pastie.org/pastes/10201273/text?key=2xcvahyvvbxdxyy4gua22:18
*** ventosus has left #lv222:19
grejppijohn_cephalopoda: also most plugins have a switch in connect_port() instead of if/else22:20
john_cephalopodagrejppi: Mmh, I prefer if/else over switch. Also I didn't want to transcribe the amp example line for line (because I don't learn from that) and I tried some things that were not in the example.22:22
rgareusif .. else if ... else if ..   is just a more verbose way of writing switch(). probably even results in the same machine code in this case.22:24
grejppijohn_cephalopoda: for a small number of ports if/else might be fine22:24
grejppiif the compiler doesn't optimize it, the plugin will have to go through (n^2 + n) / 2 if statements22:28
john_cephalopodaOooh, I got a 2-oscillator synth now!22:30
john_cephalopodaNow the madness starts.22:32
ssj71I'm writing a blogpost that mentions making your plugin RT safe. Is the worst case of non-RT-safe operations that your plugin will cause Xruns? or could it also crash the host or other programs22:38
HarryHaarenssj71, worst case is that *all* audio glitches22:50
HarryHaarenno crashing based on non-RT stuff22:50
HarryHaarenthe point is that if a plugin *can* glitch, it should be fixed.22:51
HarryHaarenno excuses here - in a 100% RT safe world with 1 stupid plugin, they may as well all xrun22:51
ssj71HarryHaaren: sure. I just wanted to make sure I get the facts right. I'm not planning any non-RT safe plugins22:52
HarryHaarencool :)22:53
HarryHaarenlink me when you're done, can give it a proof read22:53
HarryHaarenbedtime here now though - so tomorrow / when you finish it22:54
rgareusssj71: just re-post http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing22:54
ssj71thanks HarryHaaren22:54
ssj71rgareus: oh ya, that has some nice descriptive examples on why it matters22:55
*** john_cephalopoda has quit IRC22:56
rgareusnot LV2, but handy either way (lv2 inside jalv)  https://github.com/raboof/jack_interposer  will check for RT safety22:57
HarryHaarenrgareus, i presume you know fundamental's stoat? It can statically check the callgraph after white-listing the process() function22:57
HarryHaarenits really nice, generates a graph with green (ok) and red (non-RT) - https://github.com/fundamental/stoat22:58
rgareusHarryHaaren: yep. but requires the code to include annotations (which functions are supposed to be RT safe) and llvm22:58
HarryHaarenyup22:59
rgareusrelatively easy for LV2 plugins (only run)22:59
HarryHaarenyep: issue + white list for ArtyFX : https://github.com/harryhaaren/openAV-ArtyFX/issues/1023:00
HarryHaarenunfortunatly it doesn't magically fix thinkos..23:01
rgareusA single non-realtime function call was found    "printf()" :)23:07
rgareusconnect_port does not need to RT safe does it?23:08
rgareusHarryHaaren: I really think you should rename Roomy.23:14
HarryHaarenrgareus, 2nd person to say that to me.. why?23:14
rgareusHarryHaaren: how about  "Reeva" ?23:14
HarryHaarenHmm that could work23:15
HarryHaarenwont rename though, cool URIs dont' change. But I can "make another" reverb23:15
rgareuswell you can keep the URI.  users don't see that anyway23:15
HarryHaareni'm thinking of adding an input highpass filter, quite useful for synths / FX to not muddy the sound..23:16
HarryHaarenperhaps some compression + gating on the output too ;)23:17
rgareusmake it a "dreamy" reverb to go along with rĂªve23:17
* HarryHaaren will concider yup23:19
ssj71rgareus: I thought connect port got called right before every run()23:25
rgareusssj71: true for some hosts indeed23:29

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