badosu | drobilla: nice!, gonna take lok at and apply | 00:52 |
---|---|---|
drobilla | badosu: Haven't pushed yet, fixing some other preset stuff | 00:57 |
drobilla | Working towards Jalv and Ardour being on the same page with half decent preset management | 00:58 |
badosu | drobilla: how do you know thich categorie a preset belongs to? | 01:03 |
drobilla | They have to be explicitly in banks | 01:03 |
drobilla | Not sure how to expose preset deletion in Jalv with just a menu.. :/ | 01:07 |
drobilla | 'Delete current preset' I suppose | 01:07 |
badosu | I didnt find the vocabulary for bank in lv2 | 01:08 |
drobilla | That's because there wasn't one | 01:09 |
drobilla | I guess I can push that part | 01:09 |
drobilla | LV2 had no concept of "preset bank" until last night, on my machine | 01:10 |
badosu | drobilla: ok, nice to hear | 01:10 |
badosu | is there any other plugin with massive plugin quantity like amsynth? | 01:10 |
badosu | s/plugin q/preset q/ | 01:11 |
*** edogawa_ has quit IRC | 01:11 | |
drobilla | Hrm. deletion is tricky | 02:36 |
drobilla | Anything that nukes things on the filesystem makes me nervous... | 02:36 |
badosu | https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac | 02:47 |
drobilla | haha | 02:50 |
badosu | omg, can't stop cracking up everytime I see this again | 02:50 |
badosu | I like how the first guy responding is totally cool with it: https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123 | 02:51 |
badosu | " I have to work tommorow, and require my computer, so this could be a late night reinstalling/recovering my personal files. Oh well, I guess that is what I get for alpha testing ;D" | 02:52 |
badosu | priceless | 02:52 |
drobilla | rm -rf in install scripts, good grief | 02:52 |
badosu | DAT blink at the end | 02:52 |
badosu | there's also this one https://github.com/ValveSoftware/steam-for-linux/issues/3671 | 02:53 |
drobilla | I wonder if we should have some sort of "user saved" property in the spec for this | 03:18 |
drobilla | There isn't really any difference between ones that comes with plugins and those, currently, so this stuff will happily delete plugin-installed presets assuming the user has permission to do so. | 03:18 |
* drobilla meticulously scans code to figure out what to free() | 05:10 | |
drobilla | I really hate C sometimes | 05:10 |
*** curlymorphic has quit IRC | 06:02 | |
*** curlymorphic has joined #lv2 | 06:12 | |
drobilla | This is taking waaaaaaay more time than it was supposed to :/ | 06:56 |
drobilla | rgareus: massive issues with unloading stuff + sord btree too. sigh. | 07:22 |
drobilla | That was for #ardour-dev, but I suppose it fits anyway | 07:23 |
drobilla | Serves me right for half-assed test suite updates | 07:23 |
*** edogawa has joined #lv2 | 08:24 | |
drobilla | badosu: Pushed preset vocab to lv2, committed support in Jalv, and submitted a patch to amsynth's tracker that implements banked presets | 08:49 |
drobilla | badosu: Also implemented support for preset deletion in Jalv and improved the menu a bit | 08:50 |
badosu | drobilla: nice! | 09:02 |
badosu | do they actually merge these patches? I submitted an issue there 2 days ago as well | 09:02 |
drobilla | They have merged some of mine in the past | 09:03 |
badosu | you made the label mandatory for presets? | 09:04 |
badosu | oh, forget it | 09:05 |
badosu | read it wrong | 09:05 |
badosu | so lv2 is just a bunch of ttls and sample plugins from what I see | 09:06 |
drobilla | always has been. | 09:11 |
drobilla | API headers (obviously), some utility headers | 09:12 |
badosu | og fod, how svn is slow | 09:13 |
badosu | I am seeing your changes on lilv, lv2 and jalv | 09:13 |
badosu | and svn -l n --diff is slow as hell | 09:13 |
badosu | cool, you actually test lilv | 09:14 |
badosu | it's impressive how lv2 is flexible, bank addition did not require any changes on the parser | 09:17 |
badosu | I like how the patch you sent to amsynth does not have anything to do with banks | 09:20 |
badosu | did you send the bank patch by email? I can't find it on https://code.google.com/p/amsynth/issues/list | 09:22 |
drobilla | Turtle's a standard language, just adding some stuff isn't going to need any parser changes. | 09:24 |
drobilla | You can add basically whatever you want there, it doesn't have to be LV2 standard stuff. It's completely extensible. | 09:24 |
* drobilla notices he botched the captcha, actually submits ticket | 09:24 | |
badosu | yep, looks like separating data from code payed for itself | 09:32 |
badosu | you forgor the patch | 09:32 |
badosu | I guess you need some sleep, lol | 09:33 |
badosu | I mean, you sent the issue but forgot to attach the patch | 09:33 |
*** falktx has joined #lv2 | 09:51 | |
drobilla | attached | 09:54 |
drobilla | stupid thing clears the file when captcha fails | 09:54 |
badosu | drobilla: visualization is still not the best, but at least it's much better, thanks! | 10:10 |
drobilla | visualization? | 10:23 |
* drobilla passes out | 10:28 | |
*** Anchakor1 has quit IRC | 11:19 | |
*** wend has joined #lv2 | 11:36 | |
wend | Hi guys | 11:36 |
wend | in the run() function for plugins, does n_samples refer to the length of the entire audio to be processed, or a small window of it, such as 1024 samples? | 11:38 |
badosu | wend: more like small window | 11:51 |
wend | Thanks. I'm working on a plugin for Ardour. If I set the buffer size to 1024 in Ardour, n_samples == 1024? | 11:54 |
badosu | wend: I can't imagine why that would be the case, but I am not an experto on this matter | 11:57 |
grejppi | badosu: why not | 11:58 |
grejppi | that should be exactly what it's going to do | 11:59 |
badosu | grejppi: so that | 12:04 |
badosu | 's it :-) | 12:04 |
badosu | I thought it was more complicated than this | 12:05 |
grejppi | that's it, indeed | 12:06 |
badosu | thanks | 12:06 |
grejppi | so the answer to wend's question would be: yes | 12:06 |
grejppi | as the plugin simply does not know about anything outside the samples it's given to process | 12:08 |
badosu | this is quite surprising for me, I thought for some reason audio applications could schedule how many samples to process dynamically | 12:08 |
badosu | I don't know why I thought this anyway | 12:09 |
grejppi | they can, but usually they use a fixed size | 12:09 |
wend | Thanks guys :) | 12:09 |
badosu | grejppi: oh, so this applies specifically for Ardour | 12:10 |
badosu | theoretically an application can request x samples to be processed on one occasion and y samples on another | 12:10 |
grejppi | badosu: and jalv, lmms, pretty much everything actually | 12:11 |
badosu | grejppi: cool, I am not exactly arguing, I am just trying to understand it better | 12:11 |
wend | I'm new to dsp and am trying to make an equalizer plugin. What do yo think of using FFT to accomplish this? | 12:11 |
badosu | wend: this might be useful for you https://github.com/LMMS/lmms/pull/1443/files | 12:14 |
badosu | In particular the EqEffect and EqFilter files | 12:14 |
wend | Thanks. This EQ uses cascading filters or something like that I think. The theory behind it is way over my head atm so I'm reluctant to pull ideas from these kinds of EQs atm. | 12:20 |
wend | I'm wondering though if using an FFT is a feasible way to make an EQ. | 12:21 |
grejppi | wend: it should be possible at least | 12:21 |
wend | Would it be too heavy on the CPU, doing an FFT every 2014 samples? | 12:22 |
wend | Then applying relvant gains, and doing a reverse FFT? | 12:22 |
grejppi | wend: yeah, it could be quite heavy | 12:33 |
grejppi | that might be one reason why it's more common to use a series of filters | 12:33 |
wend | Thanks man :) | 12:45 |
*** ricardocrudo has joined #lv2 | 12:55 | |
*** ricardocrudo has quit IRC | 13:29 | |
*** rncbc has joined #lv2 | 14:18 | |
rgareus | re ^^ "If I set the buffer size to 1024 in Ardour, n_samples == 1024?" yes. | 14:26 |
rgareus | except for a few special cases. If ardour is looping it splits the cycle. n_samples will be at most 1024 samples, but can be less. | 14:26 |
rgareus | (end of loop -> process a few samples, go back, set new parameters that apply to the beginning -> process the rest) | 14:27 |
rgareus | but all other plugin hosts that I know don't do that. the [jack] buffersize is what's used for run(). | 14:28 |
rgareus | wend: FFT in realtime, yes you can. but FFT for an EQ.. that's neither very efficient not appropriate. | 14:30 |
rgareus | wend: for one thing how do you handle parameter changes smootly? | 14:30 |
rgareus | doing frequency warping or 'hand drawn' EQ curves.. sure that's fun . I'd love if someone would port http://freqtweak.sourceforge.net/ to LV2! | 14:34 |
rgareus | note that n_samples can also be zero (!) - usually done at the very beginning to determine the latency of the plugin. | 14:40 |
rgareus | all documented at http://lv2plug.in/doc/html/structLV2__Descriptor.html#a1378c3b31f8be8f16892aa4b8f929cda | 14:40 |
wend | Hey rgareus, thanks. How would you recommend implementing an EQ? | 14:43 |
rgareus | wend: bank of filters. have a look at http://nedko.arnaudov.name/soft/lv2fil/download/lv2fil-2.0.tar.bz2 for example | 14:44 |
rgareus | wend: also check http://www.musicdsp.org/archive.php?classid=3 | 14:46 |
rgareus | the musicdsp archive is brilliant. | 14:47 |
grejppi | rgareus: freqtweak seems great! why haven't I heard of that before... | 14:47 |
rgareus | grejppi: it's an oldie but goodie. | 14:47 |
rgareus | last release 11 years ago. still runs :) | 14:48 |
* grejppi is now really tempted to port it to lv2 | 14:49 | |
rgareus | grejppi: the GUI might be a bit of work.. but since it's gtk.. maybe not too much | 14:49 |
wend | Thanks! :) rgareus, you mentioned that an EQ implemented using FFTs wouldn't be appropriate. By that, do you mean it wouldn't function correctly? | 14:51 |
*** rncbc has quit IRC | 14:51 | |
rgareus | wend: it will be very hard to make parameter-changes smooth (clickless) and getting the signal-phase correct is not trivial, either. | 14:52 |
wend | If the gain parametres were constant, would it sound ok? | 14:53 |
rgareus | wend: besides in nearly all cases it's overkill. unless you want to have N bands with, say, N > 100 all filter implementations are going to beat it CPU wise. | 14:53 |
rgareus | wend: sure. | 14:53 |
rgareus | wend: jamin has a FFT based EQ for example. (though the x-over filters there are not correct, even in flat mode the signal is not identical). | 14:54 |
rgareus | http://jamin.sourceforge.net/en/about/scr02.png | 14:55 |
rgareus | I don't think there's a FFT based LV2 EQ, yet | 14:55 |
rgareus | calf maybe? | 14:55 |
wend | That's a bug in jamin's FFT code though, correct? Would the FFTW3 library have the same issue? | 14:56 |
rgareus | wend: yeah it'a long standing bug in jamin. | 14:56 |
rgareus | not related to FFTW at all but implementation in jamin | 14:56 |
rgareus | wend: sorry to side-track you even further, but when using fftw for audio-plugins there are some caveats: https://github.com/FFTW/fftw3/issues/16 | 14:58 |
rgareus | tl;dr you need to statically link against fftw3 until the issue is resolved.. | 14:58 |
rgareus | ..or the plugin-host may crash | 14:59 |
wend | Exactly the issue I'm having right now lol | 14:59 |
wend | Thanks for sharing | 15:00 |
rgareus | wend: https://github.com/x42/meters.lv2/blob/master/static_fft.sh may help | 15:00 |
rgareus | combined with https://github.com/x42/meters.lv2/blob/master/Makefile#L165 # though that part is a bit convoluted | 15:02 |
grejppi | now that I think of it, isn't the swh multiband equalizer FFT based? | 15:23 |
wend | rgareus: If I understand correctly, I must statically compile fftw and statically link it against my EQ code? | 15:23 |
wend | Yep, seems to be. He mentions it's CPU intensive also. | 15:26 |
*** ricardocrudo has joined #lv2 | 15:37 | |
*** rncbc has joined #lv2 | 15:48 | |
*** ricardocrudo has quit IRC | 16:24 | |
*** edogawa_ has joined #lv2 | 16:52 | |
*** edogawa has quit IRC | 16:55 | |
*** falktx has quit IRC | 17:17 | |
*** falktx has joined #lv2 | 17:18 | |
*** rncbc has quit IRC | 17:38 | |
*** ricardocrudo has joined #lv2 | 18:07 | |
*** ricardocrudo_ has joined #lv2 | 18:11 | |
*** ricardocrudo has quit IRC | 18:13 | |
*** Anchakor has joined #lv2 | 18:17 | |
drobilla | You definitely can't expect hosts to use a fixed block size. If you need this, you must require lv2plug.in/ns/ext/buf-size#fixedBlockLength (or one of the other ones, depending on what your actual restriction is) | 18:18 |
*** ricardocrudo__ has joined #lv2 | 18:34 | |
*** ricardocrudo_ has quit IRC | 18:35 | |
*** ricardocrudo__ has quit IRC | 18:48 | |
* drobilla spends entirely too much time trying to get GtkAccelMap to actually work, gives up | 18:51 | |
*** ricardocrudo__ has joined #lv2 | 18:53 | |
*** ricardocrudo_ has joined #lv2 | 18:57 | |
*** ricardocrudo__ has quit IRC | 18:59 | |
*** ricardocrudo_ has quit IRC | 19:14 | |
*** ricardocrudo_ has joined #lv2 | 19:26 | |
wend | Hi again guys. My reverse FFT with a window of 1024 sounds incredibly distorted. Is this to be expected? | 19:27 |
*** ricardocrudo_ has quit IRC | 19:34 | |
*** ricardocrudo_ has joined #lv2 | 19:43 | |
*** ricardocrudo_ has quit IRC | 20:19 | |
*** ricardocrudo_ has joined #lv2 | 20:31 | |
*** ricardocrudo_ has quit IRC | 21:28 | |
*** ricardocrudo_ has joined #lv2 | 21:36 | |
*** ricardocrudo__ has joined #lv2 | 21:38 | |
*** rncbc has joined #lv2 | 21:40 | |
*** ricardocrudo_ has quit IRC | 21:40 | |
*** ricardocrudo has joined #lv2 | 21:41 | |
*** ricardocrudo__ has quit IRC | 21:43 | |
*** ricardocrudo_ has joined #lv2 | 22:11 | |
*** ricardocrudo has quit IRC | 22:13 | |
*** ricardocrudo__ has joined #lv2 | 22:28 | |
*** ricardocrudo_ has quit IRC | 22:28 | |
*** ricardocrudo__ has quit IRC | 22:34 | |
*** ricardocrudo__ has joined #lv2 | 22:46 | |
*** falktx has quit IRC | 23:08 | |
*** rncbc has quit IRC | 23:31 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!