*** drobilla has joined #lv2 | 00:26 | |
*** ricardocrudo has quit IRC | 00:30 | |
*** timbyr__ has quit IRC | 01:13 | |
*** timbyr__ has joined #lv2 | 01:25 | |
*** NickSB has quit IRC | 01:47 | |
*** NickSB has joined #lv2 | 01:47 | |
*** trebmuh has quit IRC | 02:18 | |
*** NickSB2 has joined #lv2 | 02:23 | |
*** timbyr__ has quit IRC | 02:46 | |
*** timbyr__ has joined #lv2 | 02:51 | |
*** falktx` has joined #lv2 | 04:35 | |
*** falktx has quit IRC | 04:39 | |
*** timbyr__ has quit IRC | 04:49 | |
*** timbyr__ has joined #lv2 | 04:52 | |
*** falktx` has quit IRC | 06:07 | |
*** falktx` has joined #lv2 | 06:08 | |
*** deva has joined #lv2 | 07:17 | |
*** son0p_ has quit IRC | 09:35 | |
*** son0p_ has joined #lv2 | 09:41 | |
*** Magnus_RM2 has quit IRC | 10:08 | |
*** trebmuh has joined #lv2 | 10:41 | |
*** edogawa has joined #lv2 | 11:36 | |
*** ventosus has joined #lv2 | 11:42 | |
*** ventosus has quit IRC | 11:47 | |
*** LAbot has joined #lv2 | 12:03 | |
*** ricardocrudo has joined #lv2 | 12:21 | |
*** sigma6 has joined #lv2 | 12:32 | |
*** rncbc has joined #lv2 | 12:44 | |
*** EntropySink has joined #lv2 | 12:51 | |
*** EntropyS1nk has quit IRC | 12:53 | |
*** SianaGearz has quit IRC | 12:54 | |
*** rncbc is now known as rncbc|AFK | 13:03 | |
*** LAbot has joined #lv2 | 13:16 | |
*** EntropyS1nk has joined #lv2 | 13:31 | |
*** EntropySink has quit IRC | 13:33 | |
*** son0p_ has quit IRC | 14:05 | |
*** grejppi has quit IRC | 14:52 | |
*** grejppi has joined #lv2 | 14:52 | |
*** falktx has joined #lv2 | 15:24 | |
*** rncbc|AFK is now known as rncbc | 15:27 | |
*** falktx` has quit IRC | 15:27 | |
*** drobilla` has joined #lv2 | 17:15 | |
*** drobilla has quit IRC | 17:17 | |
*** son0p_ has joined #lv2 | 17:27 | |
*** son0p_ has quit IRC | 17:34 | |
*** ventosus has joined #lv2 | 17:38 | |
*** Spark[Nick] has joined #lv2 | 18:48 | |
Spark[Nick] | Hello folks. I've got a LADSPA problem and I'm not sure where to turn, since LADSPA's site is dead and there's no chatroom for it. Is it okay if I ask here? | 18:49 |
---|---|---|
falktx | don't ask to ask, just ask? | 18:51 |
Spark[Nick] | well, okay, i wasnt sure if LADSPA questions were okay here :P | 18:52 |
Spark[Nick] | so i've written a LADSPA plugin that does nothing, but theoretically should load into programs fine | 18:52 |
Spark[Nick] | in audacity it loads but it can't be enabled; in LMMS it just doesn't load | 18:52 |
Spark[Nick] | so... can someone take a quick glance at the source code and lemme know if there's something glaring i've missed? http://pastebin.com/sSLXCaUF | 18:53 |
HarryHaaren | Spark[Nick]: not to rain on your parade, but is there a good reason you're not writing an LV2 (LADSPA V2) plugin? | 19:04 |
Spark[Nick] | yeah actually - i want to use it with LMMS and it doesnt support LV2, sadly. | 19:04 |
Spark[Nick] | I would much rather write LV2 | 19:04 |
HarryHaaren | Spark[Nick]: fair enough - actually LMMS does have an LV2 branch, where grejppi implemented a lot of LV2 functionality | 19:04 |
HarryHaaren | it works, and synths can play presets, but the control-port side of things wasn't finished yet | 19:05 |
HarryHaaren | (and there's no UIs there yet) | 19:05 |
Spark[Nick] | hmm, alright - i'll give that a shot | 19:05 |
HarryHaaren | Spark[Nick]: anyway, LADSPA code looks ok to me, nothing too crazy | 19:06 |
*** sigma6 has quit IRC | 19:06 | |
HarryHaaren | didn't test, just a glance | 19:06 |
Spark[Nick] | yeah, that's fine - at least i know there's nothing majorly off with the source | 19:06 |
Spark[Nick] | i'll try changing the compile settings and making a few minor changes, and if that doesnt work i'll use the LMMS LV2 branch :) thank you! | 19:06 |
falktx | use statics instead of heap allocation please | 19:07 |
falktx | for the metadata | 19:07 |
Spark[Nick] | hmm okay, i'll try that | 19:08 |
Spark[Nick] | i was basing it off of the source of TAP, but that _is_ a decade old so... | 19:08 |
falktx | make sure the descriptor symbol is exported | 19:09 |
Spark[Nick] | as in, the ladspa_descriptor function? | 19:10 |
falktx | yes | 19:11 |
Spark[Nick] | okay, will do. ty :) | 19:11 |
*** NickSB2 has quit IRC | 19:11 | |
Spark[Nick] | oh, and to be clear, when you say the metadata, you mean all the descriptor stuff, right? | 19:13 |
falktx | well, metadata, yes | 19:15 |
Spark[Nick] | okay, sorry just wanted to be sure | 19:16 |
Spark[Nick] | should i make the descriptor itself static too? or just its members? | 19:30 |
falktx | yes, and yes | 19:52 |
falktx | I mean, all static if possible | 19:52 |
falktx | no need for _init() and _fini() nonsense | 19:53 |
Spark[Nick] | ...OH | 20:23 |
Spark[Nick] | i thought that was required for LADSPA, i didnt realize it was just a TAP thing | 20:23 |
Spark[Nick] | that's what i get for trying to base it off someone else's code hah | 20:23 |
Spark[Nick] | that fixed it! thank you so much for pointing out my stupid mistake hah | 20:26 |
grejppi | HarryHaaren: Spark[Nick]: about lmms + lv2 | 20:29 |
grejppi | just wanted to say that I started to rewrite the whole thing | 20:29 |
HarryHaaren | grejppi: yeah? Oh ok, any particular reason? | 20:30 |
grejppi | HarryHaaren: see https://github.com/LMMS/lmms/issues/2616 | 20:31 |
grejppi | basically I want to reduce the number of reinvented wheels and consolidate all plugin formats that LMMS supports into a common base class, which will in turn make implementing LV2 support a lot easier | 20:31 |
HarryHaaren | grejppi: wow that sounds brilliant! | 20:33 |
* HarryHaaren checks commits / diffs | 20:33 | |
*** ventosus has left #lv2 | 20:34 | |
falktx | nice | 20:36 |
HarryHaaren | yeah looks good - inheritance is the right solution here for sure | 20:36 |
Spark[Nick] | lmao i think i just blew my speakers while testing my ladspa plugin | 20:39 |
HarryHaaren | Spark[Nick]: ouch - what happend? Really loud noises, or what?> | 20:45 |
Spark[Nick] | yea | 20:45 |
Spark[Nick] | i dunno what i did lol, but at least i've gotten the hard part done with | 20:45 |
Spark[Nick] | Ohh haha i was writing to the input instead of the output | 20:46 |
Spark[Nick] | no wonder | 20:46 |
falktx | that means the plugin is working though, so that's something | 20:47 |
Spark[Nick] | yea, its working now! | 20:47 |
HarryHaaren | awesome, good stuff | 20:47 |
Spark[Nick] | thank you all so much for your help! | 20:47 |
HarryHaaren | now the big quiestion - what type of distortion are you making? | 20:48 |
Spark[Nick] | i'm actually not sure, i'm just gonna mess with some weird formulas till i find a cool effect | 20:48 |
Spark[Nick] | this plugin is mostly just a test, so i know how to make future ones | 20:48 |
*** ricardocrudo has quit IRC | 20:51 | |
Anchakor_ | falktx: I've been off linux audio for a while, what is the current recommented convolution/IR plugin? | 21:06 |
*** ColaEuphoria has joined #lv2 | 21:06 | |
*** EntropySink has joined #lv2 | 21:07 | |
*** EntropyS1nk has quit IRC | 21:09 | |
HarryHaaren | Spark[Nick]: ah cool, good luck with it. If you do need some inspiration for DSP, there's a few good sources online: i like browseing the musicdsp.org archives for crazy ideas | 21:10 |
Spark[Nick] | alright, i'll check it out, thank you :D | 21:11 |
*** deva has quit IRC | 21:11 | |
HarryHaaren | there's also a few nice books (i know - old school :) that have detailed explainations of dsp/synth techniques that have not been much explored yet | 21:11 |
ColaEuphoria | are we talking about DSP? | 21:11 |
HarryHaaren | http://www.musicdsp.org/showmany.php | 21:11 |
ColaEuphoria | everything i learned about DSP was on dspguide | 21:11 |
HarryHaaren | ColaEuphoria: yup. Spark[Nick] is writing plugins, and hence -> DSP | 21:11 |
ColaEuphoria | http://dspguide.com/ | 21:12 |
ColaEuphoria | yeah | 21:12 |
HarryHaaren | ah yes, JOS has a brilliant guide there. Its pretty maths heavy at times though - I found it hard to follow a lot of it | 21:12 |
* HarryHaaren is not mathemathician, but mathemusician | 21:12 | |
ColaEuphoria | hehe | 21:12 |
Spark[Nick] | hah | 21:12 |
HarryHaaren | ColaEuphoria: when I was at LAC 2012 I met Julien, really nice guy, and now I read dspguide in his voice ;) | 21:13 |
ColaEuphoria | noice | 21:13 |
HarryHaaren | Cola what DSP stuff have you been working on? | 21:13 |
ColaEuphoria | http://www.synth.love/delicate/ | 21:13 |
ColaEuphoria | don't get too hyped or anything yet | 21:13 |
ColaEuphoria | i'm still in the process of figuring out exactly what i want to do with it | 21:14 |
ColaEuphoria | and i'm keeping it secret until then before people come rushing in with weird amorphous ideas ;) | 21:14 |
HarryHaaren | Col, sounds cool though | 21:14 |
ColaEuphoria | right now i'm looking into SIMD optimizations for better matrix multiplications | 21:14 |
HarryHaaren | ColaEuphoria: needs a UI for shiny-FX though... if you have something you can share (even privately with me - and I'll promise no-re-sharing) we could collaborate on a UI? | 21:15 |
HarryHaaren | I've been working on a standalone UI toolkit for a while: http://openavproductions.com/avtk/ | 21:15 |
ColaEuphoria | i've been thinking about a UI | 21:15 |
ColaEuphoria | although | 21:15 |
HarryHaaren | oh cool - sorry I presumed you hadn't yet :/ | 21:15 |
ColaEuphoria | i've also been thinking about how to make the UI cohere with the plugin the best | 21:16 |
HarryHaaren | do tell? | 21:16 |
ColaEuphoria | you know about IL Sytrus by any chance? | 21:16 |
ColaEuphoria | https://www.image-line.com/support/FLHelp/html/img_plug/plugin_gen_sytrus1.gif | 21:16 |
HarryHaaren | yep | 21:16 |
ColaEuphoria | that matrix on the right is pretty neat | 21:16 |
HarryHaaren | Kinda like http://openavproductions.com/ninja/ ? :D | 21:17 |
ColaEuphoria | but it lacks any support for matrix row/column operations | 21:17 |
ColaEuphoria | the biggest thing delicate will be focusing on is performance | 21:17 |
ColaEuphoria | and embeddability actually | 21:18 |
ColaEuphoria | i think i've decided that i should focus on that | 21:18 |
ColaEuphoria | so the UI should be a separate project altogether, perhaps | 21:18 |
HarryHaaren | sure - LV2 allows the UI to be in a different bundle totally - pretty neat :) | 21:19 |
HarryHaaren | but see how you get on, and if you want any feedback at any point, I'm always interested in testing + providing feedback. harryhaaren@gmail.com | 21:19 |
ColaEuphoria | thanks! i'll keep that in mind | 21:19 |
ColaEuphoria | right now i'm focusing on migrating the matrix parameters to lv2 parameters instead of ports | 21:20 |
ColaEuphoria | i'm using the same port for params as midi in | 21:20 |
ColaEuphoria | and i'm wondering | 21:20 |
ColaEuphoria | inside of the LV2_ATOM_SEQUENCE_FOREACH macro | 21:20 |
ColaEuphoria | is it guaranteed that they will all come in order? | 21:20 |
HarryHaaren | yeah I think so.. but why would it matter? | 21:21 |
Spark[Nick] | I should buy the domain for the ladspa site and attempt to make an updated resource for LADSPA developers | 21:21 |
HarryHaaren | for ninja's matrix, I send events like so: | 21:21 |
Spark[Nick] | and point them in the direction of LV2 as well :P | 21:21 |
HarryHaaren | event{ int row, int col, float value } | 21:21 |
ColaEuphoria | <HarryHaaren> yeah I think so.. but why would it matter? | 21:21 |
ColaEuphoria | so a parameter can be set at a specific time before a midi event plays | 21:21 |
HarryHaaren | Spark[Nick]: meh.. really LADSPA should go get in its grave. As much as it done for the community, LV2 should get all attention now | 21:22 |
HarryHaaren | ColaEuphoria: sure yes, that is true. | 21:22 |
Spark[Nick] | then maybe I could just buy the domain and have a redirect to the LV2 site :P | 21:22 |
HarryHaaren | ColaEuphoria: I imagined you were going down the "setRow(1); setCol(5); setValue(12348);" route - which is a bad idea | 21:22 |
HarryHaaren | Spark[Nick]: Now you're talking ;) | 21:22 |
HarryHaaren | nah really though, just write awesome LV2 plugins - better way of spending time + money :D | 21:23 |
ColaEuphoria | Spark[Nick] you could do that, but i wouldn't make it an autoredirect, it might lead to confusion if people are expecting LADSPA and they think it "migrated" to this new site | 21:23 |
Spark[Nick] | yeah, that's true | 21:23 |
ColaEuphoria | at least make it a page that says something akin to "dawg, this broject is obsoleted, cheggout this new one" | 21:24 |
Spark[Nick] | that is exactly what i will write | 21:24 |
Spark[Nick] | :P | 21:24 |
HarryHaaren | Yo dawg, we heard you like plugins, so we put some plugins in your plugin :) | 21:27 |
HarryHaaren | falktx: Can't carla do that ^ ? :D | 21:27 |
*** deva has joined #lv2 | 21:30 | |
grejppi | Spark[Nick]: btw, I once made a tool to generate a thin LADSPA wrapper around LV2 | 21:34 |
grejppi | just so that I could pretend to write only LV2 plugins and still run them in LMMS | 21:34 |
grejppi | Spark[Nick]: https://github.com/grejppi/bitrot/blob/master/ladspagen.py | 21:34 |
Spark[Nick] | that's awesome i'm 100% using that | 21:34 |
Spark[Nick] | bookmark'd | 21:35 |
grejppi | it's old and messy but does its job | 21:35 |
HarryHaaren | bahah grejppi you're awesome :) | 21:35 |
HarryHaaren | on that topic, are you hoping to go to miniLAC this year? | 21:35 |
grejppi | HarryHaaren: sure I am | 21:36 |
* HarryHaaren will donate drink-of-choice for your work at LMMS then :) | 21:36 | |
HarryHaaren | Spark[Nick]: i guess the US is a little far to travell to Berlin for a chat about linux-audio stuff? | 21:36 |
Spark[Nick] | yeah haha | 21:36 |
Spark[Nick] | especially since im 17 and dont even use linux :P | 21:36 |
Spark[Nick] | i like LMMS because its open source, mainly | 21:37 |
Spark[Nick] | really hope to start using linux in the future though, once i'm confident i wont mess anything up | 21:37 |
HarryHaaren | Spark[Nick]: re linux: use a USB stick to start out, and its pretty easy - check Ubuntu for starting, and there's a huge community / help out there | 21:38 |
HarryHaaren | if you're interested in low-level stuff, its really an awesome OS | 21:38 |
Spark[Nick] | alright, i'll try that | 21:38 |
HarryHaaren | I done some tuning to make it as fast as possible for real-time audio latency, and you can literally see what the process-scheduler in the OS is doing | 21:38 |
HarryHaaren | that type of info just ain't available in Windows / OsX world | 21:38 |
HarryHaaren | (most users won't care though - "if it works it works" mantra) | 21:39 |
HarryHaaren | but for code-hackers + interested like yourself, its a fantastic thing | 21:39 |
Spark[Nick] | yeah, plus i really like open source stuff | 21:40 |
HarryHaaren | in that case - even better. You a musician too? | 21:43 |
Spark[Nick] | sorta, I play piano and i write music, but i'm not very good | 21:43 |
HarryHaaren | ah cool - made me enjoy coding DSP stuff much more, given that you can play a piano plugin through your own stuff, and see what happens :D | 21:46 |
* HarryHaaren plays some piano, not very good, but enjoys it a lot. Always attempts to learn songs that are techincally too difficult | 21:46 | |
Spark[Nick] | hah same | 21:46 |
HarryHaaren | favorites? I'm a chopin / rach fan :) | 21:46 |
Spark[Nick] | well, i'm not really into classical, if i'm gonna be honest | 21:47 |
Spark[Nick] | i used to be, but then i discovered indie rock... | 21:47 |
*** deva has quit IRC | 21:50 | |
HarryHaaren | fair enough - i'm down with lots of music really, but for piano i do like classical a lot | 21:50 |
HarryHaaren | any "underground" indie you wanna link me? | 21:51 |
* HarryHaaren still curious | 21:51 | |
Spark[Nick] | well, i'm not into super super underground stuff, but I like stuff like The Shins, the Silversun Pickups, Neutral Milk Hotel, etc | 21:51 |
Spark[Nick] | oh and The Manic Street Preachers, they're more alt rock than indie but they're great | 21:52 |
HarryHaaren | i know Manic street, never heard of the rest :D | 21:53 |
* HarryHaaren lives in ireland, very different indie scene here I guess | 21:53 | |
Spark[Nick] | oh, yeah the first three are all american | 21:53 |
*** edogawa has quit IRC | 22:13 | |
Spark[Nick] | grejppi, since you seem to be knowledgeable about LMMS - i've found that my plugin crashes when I apply it to the master FX channel, but not when I apply it to a track, any idea what that might be about? | 22:58 |
HarryHaaren | Spark[Nick]: channel count? | 23:02 |
* HarryHaaren just guesses | 23:02 | |
HarryHaaren | aka, are you dealing with mono/stereo? | 23:02 |
grejppi | Spark[Nick]: would you mind sharing the source code? | 23:03 |
Spark[Nick] | uh mono | 23:03 |
HarryHaaren | is there gonna be an issue if 2 instances are started for a "stereo duplication" for the master track | 23:03 |
HarryHaaren | aka, are you using any static variables?> | 23:03 |
Spark[Nick] | i am using all static variable | 23:03 |
Spark[Nick] | s | 23:03 |
HarryHaaren | Spark[Nick]: ^ that's probably it: no statics allowed in plugins :/ | 23:03 |
grejppi | ouch | 23:03 |
Spark[Nick] | ...oh | 23:03 |
HarryHaaren | pass a struct around | 23:03 |
HarryHaaren | aka, LADSPA_HANDLE | 23:03 |
HarryHaaren | and cast it | 23:03 |
Spark[Nick] | i was told to use all statics | 23:03 |
HarryHaaren | NOOOO | 23:03 |
ColaEuphoria | oh oby | 23:03 |
Spark[Nick] | lol, that explains it, thanks | 23:03 |
ColaEuphoria | boy* | 23:03 |
Spark[Nick] | i guess that person was just messing with me | 23:04 |
grejppi | the functions should be static but not the data | 23:04 |
HarryHaaren | Spark[Nick]: it makes sense: loading multiple instances of a plugin into one address-space will overwrite the old instance if they're static | 23:04 |
Spark[Nick] | oh, that's true | 23:04 |
HarryHaaren | Static variables in this case | 23:04 |
HarryHaaren | static functions on the other hand, are really useful for plugins | 23:04 |
* HarryHaaren hates the multiple overloading of "static", its so hard to explain all the variations :/ | 23:05 | |
ColaEuphoria | static member functions, however... | 23:05 |
Spark[Nick] | actually, though | 23:05 |
Spark[Nick] | i realized that if i load the plugin into a track first, it's fine | 23:05 |
Spark[Nick] | and if I THEN put it in the master FX it's fine | 23:05 |
Spark[Nick] | but if i start out putting it in the master FX, it crashed | 23:05 |
Spark[Nick] | i'll go ahead and post my current source, i think it's actually fine since i'm only using statics for the metadata | 23:06 |
grejppi | 'into a track'... instrument track, or mixer track? | 23:06 |
Spark[Nick] | instrument track | 23:06 |
Spark[Nick] | http://pastebin.com/sSLXCaUF | 23:06 |
Spark[Nick] | i probably missed something obvious, but i'm not seeing it | 23:08 |
* grejppi takes a look | 23:09 | |
*** ricardocrudo has joined #lv2 | 23:10 | |
falktx | Spark[Nick]: I meant you should use all statics *for the metadata* | 23:13 |
Spark[Nick] | yeah, that's what i did | 23:13 |
Spark[Nick] | i misunderstood the question just then | 23:14 |
falktx | plugin instances can't use statics | 23:14 |
Spark[Nick] | I didn't | 23:14 |
falktx | ok good | 23:14 |
falktx | you're still allocating the descriptor on the heap though | 23:14 |
falktx | that's a small (but real) memory leak | 23:15 |
Spark[Nick] | oh, hm, i'll fix that | 23:15 |
falktx | if you make LADSPA_Descriptor a static you can return its pointer | 23:15 |
falktx | but "descriptor->instantiate = &instantiate_distorter;" doesn't seem 100% right | 23:16 |
falktx | although I guess it could be valid | 23:16 |
falktx | the '&' is not needed there | 23:16 |
Spark[Nick] | oh, okay | 23:17 |
grejppi | Spark[Nick]: you're missing port range hints | 23:17 |
Spark[Nick] | OH | 23:17 |
falktx | position variable is unused | 23:17 |
Spark[Nick] | okay, i'll add that | 23:17 |
grejppi | so it's lmms that's crashing | 23:17 |
Spark[Nick] | and yeah, i put the position variable thinking i'd use it but never did :P | 23:18 |
grejppi | https://github.com/grejppi/bitrot/blob/master/include/bitrot_reverser_wrapper.h | 23:18 |
grejppi | Spark[Nick]: ^ this is what my tool generates | 23:19 |
grejppi | posting if it may be of help | 23:19 |
falktx | now that's a nice static initialized plugin :) | 23:19 |
Spark[Nick] | okay, I'll look at that - tyvm | 23:19 |
falktx | grejppi: why use descriptor.instantiate and not ladspa_instantiate directly? | 23:19 |
falktx | oh wait, nvm | 23:20 |
grejppi | falktx: it's a hack really, descriptor is a static LV2 descriptor | 23:20 |
grejppi | this file is to be included in the main C file | 23:20 |
falktx | yeah, the similar names confused me | 23:20 |
falktx | seems like it's calling itself recursively :P | 23:21 |
*** rncbc has quit IRC | 23:24 | |
Spark[Nick] | grejppi your advice fixed it. cant thank you enough, really, you've set me on the right track for lots of plugin development in the future :) | 23:26 |
grejppi | Spark[Nick]: that's great to hear :3 | 23:27 |
grejppi | welp, I'm off to sleep now, so if you have any further questions jsut mention me | 23:28 |
grejppi | *just | 23:28 |
Spark[Nick] | alright, goodnight! | 23:28 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!