*** falktx has quit IRC | 00:19 | |
*** falktx has joined #lv2 | 00:27 | |
*** bgribble has joined #lv2 | 00:29 | |
*** bgribble has quit IRC | 00:52 | |
*** ricardocrudo has joined #lv2 | 01:07 | |
*** bgribble has joined #lv2 | 01:27 | |
*** bgribble has quit IRC | 02:07 | |
* drobilla tinkers with sequence-of-float plugins | 02:19 | |
*** ricardocrudo has quit IRC | 02:51 | |
*** drobilla has quit IRC | 04:40 | |
*** falktx has quit IRC | 06:59 | |
*** edogawa has joined #lv2 | 07:19 | |
*** falktx has joined #lv2 | 07:27 | |
*** falktx has quit IRC | 08:10 | |
*** falktx has joined #lv2 | 09:06 | |
*** edogawa has quit IRC | 09:16 | |
*** edogawa has joined #lv2 | 09:17 | |
*** triune has quit IRC | 09:17 | |
*** triune has joined #lv2 | 09:30 | |
*** Joeboy_ has joined #lv2 | 09:47 | |
*** Joeboy has quit IRC | 09:50 | |
*** Anchakor has quit IRC | 09:51 | |
*** Anchakor1 has joined #lv2 | 09:51 | |
*** falktx has quit IRC | 09:57 | |
*** NickSB2_ has joined #lv2 | 10:26 | |
*** NickSB__ has joined #lv2 | 10:28 | |
*** NickSB2 has quit IRC | 10:34 | |
*** NickSB_ has quit IRC | 10:34 | |
*** Joeboy has joined #lv2 | 10:50 | |
*** Joeboy_ has quit IRC | 10:55 | |
*** Yoda-- has quit IRC | 10:55 | |
*** Yoda-- has joined #lv2 | 10:57 | |
*** rgareus has quit IRC | 11:22 | |
*** rgareus has joined #lv2 | 11:23 | |
*** ddom has joined #lv2 | 11:39 | |
*** bgribble has joined #lv2 | 11:50 | |
*** edogawa_ has joined #lv2 | 11:51 | |
*** edogawa has quit IRC | 11:54 | |
*** bgribble has quit IRC | 11:54 | |
*** ricardocrudo has joined #lv2 | 12:31 | |
*** mlpug has joined #lv2 | 13:44 | |
*** drobilla has joined #lv2 | 14:12 | |
*** bgribble has joined #lv2 | 14:55 | |
*** ddom has quit IRC | 15:04 | |
drobilla | .................. shit | 15:08 |
---|---|---|
drobilla | The atom sequence output 'protocol' doesn't really allow for split cycles very well | 15:08 |
drobilla | No separate size/capacity | 15:09 |
drobilla | Maybe buffer capacity should be a different mechanism entirely instead of having to be in the data itself | 15:12 |
*** bgribble has quit IRC | 15:24 | |
drobilla | Anyone know any plugins with plain gtk UIs that don't modify style? | 15:35 |
drobilla | My style modification stuff in Ingen doesn't seem to be working any more, for my test plugin, anyway | 15:35 |
drobilla | (n/m, fixed it) | 16:43 |
drobilla | or maybe NULL-terminated sequences | 16:43 |
drobilla | The only alternative for hosts currently without changing the rules is to use a separate empty buffer for each sub-cycle, then copy :/ | 16:44 |
drobilla | I thought connecting to atoms directly was nice, but maybe that was a bad idea and there should have been a specific buffer type | 16:50 |
rgareus | drobilla: it'd be great to be able to specify min Atom buffersize as a * samples-per-cycle + b | 17:41 |
rgareus | for plugins that I wrote where a != 0 I use sample-per-cycle = 8192 (which is jackd's max) for setting the minSize | 17:43 |
rgareus | the hard part though is calculating 'b'. | 17:52 |
drobilla | rgareus: Yeah. Though if it was dynamic (i.e. in API) you can skip trying to express it and just specify the value for that instance | 18:37 |
drobilla | I am wondering if this might be a secondard excuse for a run(const void** inputs, void** outputs) extension | 18:37 |
drobilla | or run(const void** inputs, void** outputs, LV2_Buffer_Metadata** meta) | 18:38 |
rgareus | drobilla: the cycle-length can change. so the host would need to query it everytime the spp changes.. | 18:38 |
rgareus | drobilla: if it was in the .ttl the host could just compute it. | 18:38 |
drobilla | Hm, well, I guess indexing that way would be annoying.. otherwise, costs const-correctness :/ | 18:38 |
drobilla | Anyway, the metadata bit | 18:38 |
*** ricardocrudo has quit IRC | 18:39 | |
drobilla | rgareus: Yeah. Maybe just using the (possibly improved) constraints in data is the way | 18:39 |
drobilla | rgareus: The rules for sequence outputs where you can get the capacity from the output initially conflict with split cycles though | 18:40 |
drobilla | Using the data constraints, the rule could just be it's an empty sequence and you know the non-dynamic capacity from elsewhere | 18:40 |
drobilla | But for backwards compatibility we're stuck with the { atom:Chunk, capacity } | 18:41 |
rgareus | drobilla: how so? a split cycle looks to a plugin just like the spp changes 2 times. | 18:41 |
drobilla | could add "if type is not atom:Chunk, assume the buffer is initialized and do not clear it" or something, not too breakey | 18:41 |
drobilla | rgareus: But the host may want that output written to a buffer with an offset | 18:41 |
rgareus | drobilla: aah. | 18:42 |
drobilla | e.g. I might want to run a 1024 frame block in chunks, and get a single Sequence at the output for all 1024 at the end | 18:42 |
* drobilla is finally actually implementing this in Ingen, didn't think of it before | 18:42 | |
rgareus | drobilla: I don't think that should be up to the plugin. the host should re-connect the port-buffer to whatever offset it needs. | 18:43 |
drobilla | rgareus: That's the problem. With sequences, you can't. | 18:43 |
drobilla | rgareus: Workaround is to use a separate buffer and copy every sub-run(), but that's quite a bit of overhead | 18:43 |
drobilla | (not to mention nuisance) | 18:43 |
drobilla | I guess it's not terrible, but less than ideal... | 18:44 |
drobilla | In my case I can just not do sample-accuracy in the control-in-plus-sequence-out case | 18:44 |
rgareus | did you check ardour3? I think in the case of split cycles it completes the sub-cycle (and flushes seq buffers). | 18:44 |
*** zth has joined #lv2 | 18:45 | |
drobilla | Presumably. That copy is always there for ardour anyway | 18:45 |
drobilla | Ingen is a little fancier with buffer sharing and whatnot | 18:45 |
drobilla | Well... I'll just ignore this for now and see how far I can get | 18:47 |
drobilla | I have a float plugin with sequence in/out (atom:supports atom:Float) | 18:47 |
drobilla | Split cycles when such an output is connected to a control input, so you can do sample accurate stuff with plugins with control inputs | 18:47 |
drobilla | Working on "mix" down from float sequence => CV | 18:48 |
drobilla | Then I'll make the note etc internals have those outputs, and Ingen will be sorta 'value based' for programming ala pd (with a suitable set of plugins) | 18:49 |
drobilla | http://drobilla.net/files/ingen_expressions.png | 18:50 |
rgareus | the sane approach is to simply have the amp low-pass filter the gain and don't bother about sample-accuracy. | 18:53 |
drobilla | That might work for twiddling a knob, not so much for midi control | 18:54 |
drobilla | If you push a key at sample 64, everything related to that note start needs to start at sample 64 | 18:54 |
rgareus | for 99% of all cases sample-accuracy is just a marketing ploy. | 18:54 |
rgareus | midi is an order of magnitude less acurate anyway | 18:54 |
drobilla | nonsense | 18:55 |
drobilla | with large block sizes a synth built that way is totally unplayable | 18:55 |
rgareus | midi is what 32kbaud or something? 2 successive events have a min distance of at least 10 samples or so at 48KSPS | 18:56 |
rgareus | and unless you have isosynchroneous streams there's jitter | 18:56 |
drobilla | "Block accuracy for events is okay" ~rgareus | 18:57 |
drobilla | ;) | 18:57 |
rgareus | well, yeah. sample accuracy is great - identical input -> identical output. | 18:57 |
drobilla | Modular done that way is half useless. In practice it means you can't really connect controls, period. Anything trigger related has to be CV, or sequence | 18:58 |
drobilla | Interpolation/lowpass certainly has its place, but if you want to do decent visual DSP programming with plugins that unfortunately have control ports, this needs to work | 18:59 |
drobilla | Its not a big deal anyway, the splits happen internally to one node, not across the graph | 19:00 |
drobilla | Feedback won't work correctly, but that's... deeper | 19:00 |
*** ricardocrudo has joined #lv2 | 19:17 | |
*** falktx has joined #lv2 | 19:27 | |
drobilla | In related new I need a "Bang" object type | 19:31 |
drobilla | Time to take that note proposal and make an expression extension, perhaps | 19:32 |
*** ddom has joined #lv2 | 20:01 | |
*** mlpug has quit IRC | 20:03 | |
*** zth has quit IRC | 20:45 | |
*** zth has joined #lv2 | 21:06 | |
*** zth has quit IRC | 21:27 | |
*** falktx_ has joined #lv2 | 21:45 | |
*** rgareus_ has joined #lv2 | 21:50 | |
*** triune_ has joined #lv2 | 21:51 | |
*** falktx has quit IRC | 21:52 | |
*** rgareus has quit IRC | 21:52 | |
*** triune has quit IRC | 21:52 | |
*** triune_ is now known as triune | 21:52 | |
*** rgareus_ is now known as rgareus | 21:53 | |
*** edogawa_ has quit IRC | 22:04 | |
*** falktx has joined #lv2 | 22:11 | |
*** falktx has quit IRC | 22:12 | |
*** rncbc has joined #lv2 | 22:24 | |
*** ricardocrudo has quit IRC | 22:34 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!