*** john_cephalopoda has left #lv2 | 01:45 | |
*** NickSB2 has joined #lv2 | 02:04 | |
*** o0o0o has quit IRC | 02:52 | |
*** zth_studiocomp has quit IRC | 02:52 | |
*** zth_studiocomp has joined #lv2 | 02:57 | |
*** o0o0o has joined #lv2 | 03:14 | |
*** edogawa has joined #lv2 | 06:24 | |
*** falktx has joined #lv2 | 07:24 | |
*** gianMOD has joined #lv2 | 08:09 | |
*** gianMOD has quit IRC | 08:33 | |
*** gianMOD has joined #lv2 | 09:19 | |
*** gianMOD has quit IRC | 09:23 | |
*** john_cephalopoda has joined #lv2 | 09:25 | |
john_cephalopoda | hi | 09:30 |
---|---|---|
*** gianMOD has joined #lv2 | 09:59 | |
*** ricardocrudo has joined #lv2 | 10:10 | |
*** ricardocrudo has quit IRC | 10:20 | |
*** HarryHaaren has joined #lv2 | 10:59 | |
*** falktx has quit IRC | 11:13 | |
*** falktx has joined #lv2 | 11:32 | |
*** falktx has quit IRC | 11:47 | |
*** gianMOD has quit IRC | 11:57 | |
*** gianMOD has joined #lv2 | 12:27 | |
*** ricardocrudo has joined #lv2 | 12:56 | |
*** HarryHaaren has quit IRC | 13:19 | |
*** gianMOD has quit IRC | 13:52 | |
*** gianMOD has joined #lv2 | 13:52 | |
*** gianMOD has quit IRC | 13:57 | |
*** NickSB2 has quit IRC | 14:41 | |
*** gianMOD has joined #lv2 | 14:53 | |
*** gianMOD has quit IRC | 14:58 | |
*** gianMOD has joined #lv2 | 15:03 | |
*** ricardocrudo has quit IRC | 15:19 | |
*** edogawa_ has joined #lv2 | 15:37 | |
*** edogawa has quit IRC | 15:40 | |
john_cephalopoda | Can you recommend any good synths? I am using obxd atm but it only has two wave generators with saw and pulse, it seems. | 15:44 |
*** ricardocrudo has joined #lv2 | 15:57 | |
*** ricardocrudo has quit IRC | 16:04 | |
*** falktx has joined #lv2 | 16:27 | |
*** gianMOD has quit IRC | 17:12 | |
*** unclechu has joined #lv2 | 17:42 | |
*** rncbc has joined #lv2 | 17:58 | |
*** rncbc has quit IRC | 18:18 | |
Anchakor | if you are after oscillator count, then you should use ingen :) | 18:20 |
*** gianMOD has joined #lv2 | 18:23 | |
john_cephalopoda | Oh, looks a bit like ams. | 18:27 |
*** gianMOD has quit IRC | 18:27 | |
*** rncbc has joined #lv2 | 18:34 | |
*** edogawa_ is now known as edogawa | 18:40 | |
*** gianMOD has joined #lv2 | 19:02 | |
*** gianMOD has quit IRC | 19:21 | |
*** rncbc has quit IRC | 19:22 | |
*** gianMOD has joined #lv2 | 19:43 | |
*** gianMOD has quit IRC | 19:44 | |
rgareus | john_cephalopoda: modular synths? or just synths in general? | 19:45 |
*** gianMOD has joined #lv2 | 19:47 | |
rgareus | heck, looks like no LV2-dev likes QT. | 19:54 |
*** gianMOD has quit IRC | 19:54 | |
rgareus | lv2 project - not plugin that is. It's amazing, but OSX/cocoaUI and windowsUI support is better than QT. | 19:55 |
drobilla | rgareus: Rui is the main one that comes to mind | 20:02 |
drobilla | I've been reading too much about the abysmal state of desktop Linux lately. I'm still miffed I have to abandon GWorld, but all hope is lost. I might abandon the whole bloody platform at this point. | 20:03 |
* drobilla needs to steal and/or coopt a pugl-based toolkit | 20:03 | |
drobilla | ... and figure out if I can embed UIs in a pugl-based ganv | 20:05 |
rgareus | speaking of embedding openGL: http://robin.linuxaudio.org/tmp/setbfree_lv2_win_a3.png | 20:11 |
rgareus | still some issues with window-resize and borders.. | 20:12 |
drobilla | rgareus: cool | 20:12 |
rgareus | drobilla: it's a native windowsUI. I've uploaded a patch for suil to your tracker | 20:13 |
rgareus | pugl also needs some tweaks for keyboard handling. | 20:13 |
rgareus | but one step at a time. | 20:13 |
rgareus | drobilla: https://github.com/pantherb/setBfree/commit/e9d23d30 (parse windows key wParam) | 20:15 |
rgareus | the static is ugly, but I don't think there's a way around it. | 20:16 |
drobilla | rgareus: thanks, I'll merge it tonight | 20:18 |
drobilla | probably time to remove the LV2_1_6_0 #ifdef junk from suil | 20:18 |
rgareus | drobilla: I'll check next why resizes don't work. | 20:19 |
rgareus | drobilla: while you're merging. it'd be cool to have http://dev.drobilla.net/ticket/997 upstream, too | 20:19 |
drobilla | ... in exchange for telling me if the waf currently in serd svn works on 10.6 ;) | 20:19 |
rgareus | drobilla: yes it does !! | 20:20 |
drobilla | rgareus: Hm... I thought I did that, but apparently not | 20:20 |
rgareus | drobilla: but compiles with clang :( | 20:20 |
falktx | is a x11/gtk2-on-qt5 useful? | 20:21 |
falktx | I think I can do that one | 20:21 |
drobilla | rgareus: meh. can't make gcc the default always and a bunch of OSX version figuring out stuff would probably be rejected. I can't be bothered. | 20:22 |
rgareus | drobilla: 10.6 has gcc-4.2 (much more mature) than the experimental clang-1.5 (tags/Apple/clang-60 from those days. | 20:22 |
drobilla | rgareus: I'll be surprised if he even merges this simple bug fix | 20:22 |
*** gianMOD has joined #lv2 | 20:22 | |
rgareus | drobilla: well, I've added CC=gcc CXX=g++ to the build scripts | 20:22 |
rgareus | that also still works with new waf/suil | 20:23 |
drobilla | rgareus: Yeah, anyone who knows enough to care what compiler is used should know how to change it. I just don't want a straight up crash in configure | 20:23 |
drobilla | falktx: No idea if anyone is using qt5, but it can't hurt, I suppose. I can upgrade the jalv test one, perhaps | 20:23 |
falktx | qtractor can use qt5 | 20:24 |
rgareus | falktx: why is there anything x11 specific? gtk2-in-qt5 does not care about the underlying window system, does it? | 20:24 |
falktx | I didn't made suil, don't ask me | 20:25 |
falktx | I don't even use it myself | 20:25 |
drobilla | One might ask the opposite question: why is there anything plugin-toolkit specific? | 20:25 |
rgareus | falktx: suild has qt4_in_gtk2.cpp and gtk2_in_qt4.cpp (no x11) | 20:26 |
drobilla | rgareus: Actually it only works on X11 because GtkPlug doesn't work anywhere else | 20:26 |
rgareus | there's also x11_in_qt4.cpp but that's different | 20:26 |
falktx | yes, but I'm not talking about qt5-in ... whatever, that can't be done | 20:26 |
drobilla | rgareus: I believe it doesn't exist in Gtk3 at all, too, as a bonus | 20:26 |
falktx | what can be done is ... -in-qt5 | 20:26 |
falktx | qt5 can't embed itself on other things | 20:27 |
falktx | not with the current code | 20:27 |
drobilla | A better design might be separate 'map UI X to native window' and 'embed native window in Y'. I don't know if any functionality would be lost here, but I guess it would probably require actually implementing XEmbed which sounds rather un-fun | 20:27 |
rgareus | drobilla: that would get rid of the the number of permuations | 20:28 |
*** rolo has joined #lv2 | 20:29 | |
rolo | Hey guys | 20:29 |
rgareus | drobilla: but I think currently that's not a big deal. there's not too any of them and some don't even make sense e.g. qt4-in-qt5 | 20:29 |
drobilla | rgareus: Yes, it doesn't really matter | 20:31 |
rgareus | mmh I can have multiple windows open& close them ad lib. but closing the last one -> Segfault/corrupt stack. | 20:40 |
rgareus | last time I've seen this was due to pugl classNameBuf. | 20:40 |
rolo | Hey guys I'm trying to make a simple delay plugin. It compiles fine but when I try to run it with Ardour, Ardour crashes with some broken pipe error. After googling, it seems this has something to do with the plugin not being thread safe. Any precautions on making it threadsafe? | 20:41 |
rgareus | rolo: do you use custom threads in your plugin? or static global variable? | 20:42 |
rgareus | rolo: https://github.com/x42/nodelay.lv2 # < very simple LV2 delayline. | 20:43 |
drobilla | rolo: Your plugin probably taking forever in run() | 20:44 |
drobilla | rolo: No blocking in run(), e.g. no mutex locks, etc | 20:44 |
rolo | I haven't declared any static global variables or custom threads. | 20:46 |
rolo | How do you mean by no blocking? | 20:46 |
rolo | I'll be honest, I'm not too sure about all this constant pointer to constant...etc. stuff. | 20:46 |
drobilla | I wouldn't think you had, in a simple delay. Thread safety is irrelevant, then. | 20:46 |
*** gianMOD has quit IRC | 20:47 | |
rgareus | rolo: non-blocking : "never wait for anything" | 20:47 |
drobilla | rolo: It would be easiest if you just show us your code | 20:47 |
rgareus | we brake for nobody: http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing | 20:47 |
rolo | blocking as in sleep()ing? | 20:48 |
drobilla | uh, yeah, that would certainly count :P | 20:48 |
rolo | I don't pause for input or call any function in the run(). Just assignments, operations, a n_sample for loop. | 20:48 |
rolo | Yeah, I don't have any sleep()s there ^^ | 20:48 |
rgareus | rolo: heh | 20:49 |
rolo | Is Pastebin good, yeah? | 20:49 |
rgareus | rolo: yep. pastebin away | 20:49 |
rgareus | rolo: before testing in ardour. I find jalv as lv2-host a lot easier for plugin development. (running in gdb, valgrind,...) | 20:50 |
rgareus | ardour is the last step (multiple instances etc). | 20:50 |
*** gianMOD has joined #lv2 | 20:51 | |
drobilla | I was kind of hoping you wrote a "delay" with run() { sleep(5); memcpy(out, in); } :) | 20:51 |
rgareus | lol | 20:52 |
*** unclechu has quit IRC | 20:52 | |
rolo | http://pastebin.com/LNmqCSKG | 20:53 |
rolo | lol | 20:53 |
falktx | rgareus: are your pugl changes in the "upstream" repo yet? | 20:53 |
rgareus | falktx: no | 20:53 |
falktx | rgareus: my UIs got broken for win32 since the event-rework, so I'm hoping you have fixes | 20:53 |
rgareus | falktx: upstream diverged too much. | 20:53 |
rgareus | and I don't have time to keep up. esp if things work here. | 20:54 |
rolo | rgareus, I'll look into that. I don't use C/C++ much so still gotta get the hang of gdb | 20:54 |
* rgareus reads | 20:54 | |
falktx | yeah, I kinda feel like going backwards now... | 20:55 |
rolo | It's says reverb at the moment, but I haven't implemented that yet. Just starting with a simple delay plugin first. | 20:55 |
drobilla | Most of them are. I did it manually. | 20:56 |
rgareus | rolo: mmh. I don't yet spot an obvious error. looks good | 20:56 |
falktx | rgareus: is your code up? mind link me please? | 20:56 |
rgareus | rolo: be aware that output_left and input_left can point to the same data (in place processing) | 20:57 |
rgareus | rolo: what happens if you just leave run empty? add a return; at the top. does that prevent crashes? | 20:57 |
rgareus | falktx: I have not completed work (and not merged into robtk, either) | 20:58 |
rolo | I thought the .ttl file would correctly point the ports. | 20:58 |
rolo | Trying now. | 20:58 |
rgareus | falktx: current state is https://github.com/pantherb/setBfree/blob/master/pugl/pugl_win.cpp | 20:58 |
rgareus | falktx: also see the diff linked above | 20:58 |
rgareus | rolo: the ttl and the c PortIndex need to match | 20:59 |
drobilla | falktx: What broke on win32? | 20:59 |
falktx | drobilla: size is not correct | 21:00 |
rgareus | falktx: resizing is still broken, here as well | 21:00 |
rgareus | and there's a border | 21:00 |
drobilla | Was it ever? | 21:01 |
falktx | it was better before I think | 21:01 |
falktx | but anyway, the new pugl changes seem to be made specifically for x11 | 21:02 |
rolo | I tried just a return in run(). Still crashes. The ttl and c indexes match. | 21:02 |
*** gianMOD has quit IRC | 21:02 | |
falktx | I kinda like the old simpler aproach | 21:02 |
rolo | But I tried using an empty project and it worked! | 21:02 |
rolo | As in, it doesn't crash | 21:02 |
rgareus | rolo: empty project? | 21:04 |
rolo | A new Ardour project. | 21:04 |
rgareus | rolo: try jalv.gtk http://localhost/plugins/reverb | 21:05 |
drobilla | falktx: The callback interface makes event delegation extremely tedious. There's a reason absolutely everything else does it with event structs. | 21:05 |
rolo | When I make a new project and instantiate the plugin, it works. However, If I load an audio file and THEN instnatiate the plugin, it crashes. | 21:05 |
drobilla | Emulating glut at all was a mistake, really. | 21:05 |
rgareus | or later gdb --args /usr/bin/jalv.gtk http://localhost/plugins/reverb | 21:06 |
rgareus | rolo: are you familiar with gdb? | 21:06 |
rgareus | rolo: Reverb* reverb = (Reverb*)malloc(sizeof(reverb)); | 21:06 |
*** gianMOD has joined #lv2 | 21:06 | |
rgareus | rolo: -> Reverb* reverb = (Reverb*)malloc(sizeof(struct Reverb)); | 21:06 |
drobilla | oooooooh right. missed that. | 21:07 |
rgareus | rolo: rolo line 43 | 21:07 |
drobilla | valgrind is your friend | 21:07 |
rolo | jalv.gtk http:local.... "works" I think | 21:07 |
rolo | I'm not familiar with gdb I could learn though | 21:07 |
rolo | I'm looking at that rgareus I don't see what's wrong ^^ | 21:08 |
drobilla | rolo: reverb is a pointer. sizeof(reverb) == sizeof(void*) | 21:08 |
drobilla | (i.e. probably 4 or 8) | 21:08 |
rolo | AAAAH | 21:08 |
rolo | Dam, nice one ^^ | 21:09 |
*** NickSB2 has joined #lv2 | 21:09 | |
drobilla | also using calloc generally doesn't hurt | 21:09 |
*** HarryHaaren has joined #lv2 | 21:11 | |
*** gianMOD has quit IRC | 21:11 | |
*** gianMOD has joined #lv2 | 21:12 | |
rolo | Hmm...When I slide the delay value, it crashes. I think it has something to do with line 107. | 21:17 |
rgareus | rolo: add a printf ("debug %f\n", *reverb->delay); // | 21:18 |
rgareus | (don't leave this in the final version, printf() is not RT-safe, but handy to debug) | 21:18 |
rgareus | rolo: but the problem is *delay_pos = (*delay_pos != dt ? *delay_pos + 1 : 0) | 21:18 |
rgareus | rolo: you slide it, and delay_pos can become larger than the max. | 21:19 |
rgareus | e.g delay_pos = 500. then you slide 'dt' to become 400. and delay_pos will increment to infinity.. | 21:19 |
rgareus | also dt can become > .5 (LV2 does not guarntee that values are always in strict bounds - though they usually are) | 21:21 |
rolo | dt is (sample_rate * delay_slider_value) | 21:21 |
rgareus | rolo: you assume that *(reverb->delay) the delay_slider_value is always between 0 and 0.5 | 21:22 |
rolo | I have it's min as 0 and max as 500 | 21:23 |
rolo | in the .ttl | 21:23 |
rgareus | 500 * reverb->sample_rate | 21:23 |
rgareus | that's more than you allocate | 21:23 |
rgareus | left_delay_buffer = (float*)calloc((int)(rate * 0.5), sizeof(float)); | 21:24 |
rolo | Ahhh, yes I see. Forgot that the rate is 44.1 and not 44100. | 21:24 |
rolo | Cheers man | 21:25 |
rgareus | rolo: either way. even though specified in the ttl, there is no guarntee that the vaue always will be in that range. add a if() check. or a min(max(,),) for the final version | 21:25 |
rolo | Will do, thanks man. | 21:26 |
rgareus | most LV2 hosts to properly honor the range.. but for floating point data... who knows. e.g. range -1.2347 .. 0.49182 #< may be rounded | 21:26 |
rgareus | off by one or whatever | 21:27 |
rolo | Thanks again guys, peace. | 21:57 |
*** rolo has quit IRC | 21:57 | |
*** gianMOD has quit IRC | 22:55 | |
*** edogawa has quit IRC | 22:57 | |
*** HarryHaaren has quit IRC | 23:20 | |
*** john_cephalopoda has left #lv2 | 23:22 | |
*** ricardocrudo has joined #lv2 | 23:46 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!