Thursday, 2017-10-26

*** artfwo has quit IRC01:37
*** diqidoq has quit IRC01:41
*** NickSB2 has quit IRC03:27
*** ssj71 has quit IRC05:50
*** rncbc has joined #lv206:03
*** rncbc has quit IRC06:28
*** sigma6 has joined #lv206:49
*** m4l3z has joined #lv207:53
*** NickSB2 has joined #lv208:54
*** wumpus has quit IRC08:56
*** wumpus has joined #lv208:58
*** NickSB2 has quit IRC10:30
*** NickSB2 has joined #lv210:31
*** m4l3z has quit IRC11:15
*** artfwo has joined #lv211:38
*** arguy has joined #lv211:48
*** yann-kaelig has joined #lv212:50
*** ssj71 has joined #lv214:39
*** sigma6 has quit IRC14:40
*** NickSB2 has quit IRC14:42
*** rncbc has joined #lv214:49
*** diqidoq has joined #lv216:50
*** deva has joined #lv218:08
*** trebmuh has quit IRC18:53
*** trebmuh has joined #lv218:57
*** deva has quit IRC19:16
*** yann-kaelig has quit IRC19:27
*** NickSB2 has joined #lv220:10
raphaal1could you give me a example lv2 plugin which requires instance access feature?20:47
ssj71raphaal1: as in it really needs it or just one that uses that feature?20:51
ssj71IIRC the V1 suite uses instance access20:52
raphaal1just one that uses...20:52
raphaal1ssj71: could you give me a link to this?20:53
ssj71https://sourceforge.net/p/synthv1/code/ci/master/tree/src/synthv1.lv2/synthv1_ui-qt5.ttl#l620:54
ssj71typically you want to avoid such a dependency20:55
ssj71most cases don't actually need it20:55
ssj71falktx: or rgareus may know of simpler examples than that20:55
*** NickSB__ has quit IRC20:56
raphaal1thanks20:56
rgareusapart from adding the meta-data key  lv2:requiredFeature<> to the .ttl,  you'll just iterate over features in the GUI21:05
rgareusalike  https://github.com/x42/meters.lv2/blob/master/gui/goniometer.c#L1059-L1069   and get a pointer to the DSP handle21:05
ssj71raphaal1: that goniometer probably is a simpler example to reference21:08
rgareusit's the only plugin that I wrote that uses instance access.  Passing *raw* audio-data for low-latency realtime visualization is one of the very few valid use-cases for instance access21:10
rgareusI'm not sure if it's good example, but it's the only one I wrote21:11
*** rncbc has quit IRC21:12
rgareusfalktx probably has no code for this. Carla completely separates the UI, no instance access.21:12
rgareusthe goniometer uses a shared lock-free ringbuffer. in general for instance access you also need to take care of atomics and memory barriers..21:14
raphaal1thanks again :)21:16
rgareusraphaal1: you're welcome21:18
raphaal1so, why ringbuffer is required, lv2 control ports are not enough?21:21
rgareusraphaal1: they are, you can pass raw audio via Atom ports just fine21:22
rgareusraphaal1: but they usually arrive at the host's liberty some time later21:22
rgareusthe goniometer use openGL and vblank (externalUI) to work around the host's event loop21:23
raphaal1interesting21:23
rgareusraphaal1: http://lv2plug.in/book/#_simple_oscilloscope  is an example how to pass raw audio data to the GUI21:24
rgareusin case of the scope it doesn't matter if it arrives late.  the scope triggers anyway21:24
raphaal1yeah, a saw that21:24
rgareusalso the GUI is usually run in the host's event loop. usually 25Hz or so (40ms)21:25
raphaal1the refresh rate is too slow or the refresh rate can vary? what is worse?21:27
rgareusdepends on the plugin21:28
rgareusif it's a dedicated meter both are equally bad :)21:28
rgareusif it's just some animation or visualiztion, nobody cares21:29
rgareusin general I'd say "too slow" is worse.  the human eye doesn't care much about jitter21:29
rgareus10fps looks ugly.   but some variable rate 23..28Hz may go unnoticed21:30
*** NickSB has joined #lv223:09

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