Monday, 2017-03-13

*** tytel has quit IRC00:35
*** NickSB has quit IRC01:29
*** artfwo has quit IRC01:31
*** NickSB has joined #lv201:54
*** dsheeler has quit IRC02:39
*** Guest4562 has joined #lv202:41
*** dsheeler has joined #lv202:46
*** Guest4562 has quit IRC03:05
*** oofus has quit IRC05:40
*** drobilla has joined #lv206:11
*** edogawa has joined #lv207:18
*** oofus_lt has joined #lv207:37
*** thesunnyk has joined #lv210:08
thesunnykhello10:16
thesunnykI have a riddle for thee. Who is brave enough to answer10:17
thesunnyk?!?!10:17
*** thesunnyk is now known as thesunnyk__10:20
*** thesunnyk has joined #lv210:21
*** thesunnyk__ has quit IRC10:22
thesunnykOK I'm just going to ask:10:42
thesunnykI'm trying to build an LV2 plugin but in Rust, so I can't re-use the functions10:43
thesunnykI think I've done it correctly, however, I seem to be getting extraneous events.10:43
thesunnykLike I'll keep getting the same MIDI_NOTE_ON event over and over even though there was just the one.10:44
thesunnykI'll also see a bunch of spurious MIDI_NOTE_OFF events too.10:44
thesunnykAm I supposed to ACK the events in some way?10:44
thesunnykI'm just confused as to what's going on10:44
rgareusatom messages?  it's basically a list to iterate over10:50
rgareusthere's no "ACK"  it's a buffer10:51
thesunnykWill the buffer contain messages from previous... frames...? I think I'm using the wrong term here with "frame"10:51
thesunnykbut it's the "n_samples" in your run() method10:52
rgareusinside run()  the buffer will only have events relevant for the current  run() cycle10:52
thesunnykhmm... But if a note played and is being sustained across several run cycles, will I get the note for each call of run() ?10:53
rgareusit may well be that hosts don't zero-fill the buffer,   but it's terminted10:53
rgareusthesunnyk: what LV2 host do you test with?10:53
thesunnykArdour510:54
rgareusthesunnyk: you will not get the note for every cycle10:54
rgareusnote-one ....    time passes    note-off.10:54
thesunnykhmm10:54
thesunnykbecause I am seeing a bunch of note events that I'm definitely not sending10:54
thesunnykmaybe I'm just parsing it wrong10:55
falktxlikely reading the buffer wrong10:56
thesunnykyeah, the only reason I didn't think I was doing that is because the data isn't total garbage10:56
thesunnykit's the same notes I'm playing10:56
thesunnykbut just flickering on and off10:56
falktxprobably reading old data the host did not clear. you're suppose to use itenerators for the buffer10:57
thesunnykYeah I'm writing it in Rust so I have to roll my own :)10:57
falktxthe host will only set the size to 0 if there's no data, it won't clear the entire buffer10:57
thesunnykI'm honouring the size though10:58
thesunnykwaitaminute10:58
thesunnykone second please10:58
thesunnykfencepost error :P11:00
thesunnykThanks guys11:00
rgareusa plain C expansion  (no atom-header macros) for iterating  is  https://github.com/Ardour/ardour/blob/master/libs/plugins/reasonablesynth.lv2/lv2.c#L149-L17811:00
thesunnykyep. I was iterating correctly. Unfortunately I was saying "If I overflow the size then stop iterating"11:02
thesunnykwhen it's actually "When my size matches the size of the data structure, stop iterating"11:02
rgareususing  lv2_atom_sequence_begin()   lv2_atom_sequence_is_end()  lv2_atom_sequence_next() that code ^^ would be a lot shorter11:02
thesunnyk(I mean my iterating _logic_ was correct, my end bit wasn't)11:02
thesunnykanyway, all good it's working11:03
rgareuscool.11:03
thesunnykThanks heaps guys11:03
rgareusthesunnyk: will the plugin's source be available?11:05
rgareussome people have asked in the past about LV2 written in rust, it'd be nice to have some example code11:05
thesunnykIt will be a bit shit, but https://github.com/thesunnyk/synthz11:05
thesunnykI'm trying to keep the "raw" code (C++ equivalent data structures) separate11:06
thesunnykand then add a bit of a Rust layer to make it idiomatic.11:06
thesunnykbut really I probably won't have the time so at best it'll be some reference code for others to copypaste ;)11:10
thesunnyktime will tell11:10
*** oofus_lt_ has joined #lv213:15
*** oofus_lt has quit IRC13:18
*** trebmuh has joined #lv213:24
*** sigma6 has joined #lv213:25
*** badosu has joined #lv213:30
*** artfwo has joined #lv214:04
falktxdrobilla: ping14:13
*** Yruama_Lairba has joined #lv215:30
*** ricardocrudo has joined #lv215:31
*** deva has joined #lv215:40
*** yann-kaelig has joined #lv216:41
*** sigma6 has quit IRC17:04
*** oofus_lt_ has quit IRC17:28
drobillafalktx: | .      |17:33
drobillaShit is better than nothing17:35
drobillawell...... sometimes, anyway :)17:35
*** badosu has quit IRC17:50
*** rncbc has joined #lv219:45
*** NickSB has quit IRC19:59
*** NickSB has joined #lv220:17
*** edogawa has quit IRC20:21
*** edogawa has joined #lv220:31
*** deva has quit IRC20:31
*** rncbc has quit IRC21:04
*** rncbc has joined #lv221:10
*** trebmuh has quit IRC21:23
*** edogawa has quit IRC22:24
*** ricardocrudo has quit IRC22:35
*** yann-kaelig has quit IRC23:18

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