| *** tytel has quit IRC | 00:35 | |
| *** NickSB has quit IRC | 01:29 | |
| *** artfwo has quit IRC | 01:31 | |
| *** NickSB has joined #lv2 | 01:54 | |
| *** dsheeler has quit IRC | 02:39 | |
| *** Guest4562 has joined #lv2 | 02:41 | |
| *** dsheeler has joined #lv2 | 02:46 | |
| *** Guest4562 has quit IRC | 03:05 | |
| *** oofus has quit IRC | 05:40 | |
| *** drobilla has joined #lv2 | 06:11 | |
| *** edogawa has joined #lv2 | 07:18 | |
| *** oofus_lt has joined #lv2 | 07:37 | |
| *** thesunnyk has joined #lv2 | 10:08 | |
| thesunnyk | hello | 10:16 |
|---|---|---|
| thesunnyk | I have a riddle for thee. Who is brave enough to answer | 10:17 |
| thesunnyk | ?!?! | 10:17 |
| *** thesunnyk is now known as thesunnyk__ | 10:20 | |
| *** thesunnyk has joined #lv2 | 10:21 | |
| *** thesunnyk__ has quit IRC | 10:22 | |
| thesunnyk | OK I'm just going to ask: | 10:42 |
| thesunnyk | I'm trying to build an LV2 plugin but in Rust, so I can't re-use the functions | 10:43 |
| thesunnyk | I think I've done it correctly, however, I seem to be getting extraneous events. | 10:43 |
| thesunnyk | Like I'll keep getting the same MIDI_NOTE_ON event over and over even though there was just the one. | 10:44 |
| thesunnyk | I'll also see a bunch of spurious MIDI_NOTE_OFF events too. | 10:44 |
| thesunnyk | Am I supposed to ACK the events in some way? | 10:44 |
| thesunnyk | I'm just confused as to what's going on | 10:44 |
| rgareus | atom messages? it's basically a list to iterate over | 10:50 |
| rgareus | there's no "ACK" it's a buffer | 10:51 |
| thesunnyk | Will the buffer contain messages from previous... frames...? I think I'm using the wrong term here with "frame" | 10:51 |
| thesunnyk | but it's the "n_samples" in your run() method | 10:52 |
| rgareus | inside run() the buffer will only have events relevant for the current run() cycle | 10:52 |
| thesunnyk | hmm... 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 |
| rgareus | it may well be that hosts don't zero-fill the buffer, but it's terminted | 10:53 |
| rgareus | thesunnyk: what LV2 host do you test with? | 10:53 |
| thesunnyk | Ardour5 | 10:54 |
| rgareus | thesunnyk: you will not get the note for every cycle | 10:54 |
| rgareus | note-one .... time passes note-off. | 10:54 |
| thesunnyk | hmm | 10:54 |
| thesunnyk | because I am seeing a bunch of note events that I'm definitely not sending | 10:54 |
| thesunnyk | maybe I'm just parsing it wrong | 10:55 |
| falktx | likely reading the buffer wrong | 10:56 |
| thesunnyk | yeah, the only reason I didn't think I was doing that is because the data isn't total garbage | 10:56 |
| thesunnyk | it's the same notes I'm playing | 10:56 |
| thesunnyk | but just flickering on and off | 10:56 |
| falktx | probably reading old data the host did not clear. you're suppose to use itenerators for the buffer | 10:57 |
| thesunnyk | Yeah I'm writing it in Rust so I have to roll my own :) | 10:57 |
| falktx | the host will only set the size to 0 if there's no data, it won't clear the entire buffer | 10:57 |
| thesunnyk | I'm honouring the size though | 10:58 |
| thesunnyk | waitaminute | 10:58 |
| thesunnyk | one second please | 10:58 |
| thesunnyk | fencepost error :P | 11:00 |
| thesunnyk | Thanks guys | 11:00 |
| rgareus | a plain C expansion (no atom-header macros) for iterating is https://github.com/Ardour/ardour/blob/master/libs/plugins/reasonablesynth.lv2/lv2.c#L149-L178 | 11:00 |
| thesunnyk | yep. I was iterating correctly. Unfortunately I was saying "If I overflow the size then stop iterating" | 11:02 |
| thesunnyk | when it's actually "When my size matches the size of the data structure, stop iterating" | 11:02 |
| rgareus | using lv2_atom_sequence_begin() lv2_atom_sequence_is_end() lv2_atom_sequence_next() that code ^^ would be a lot shorter | 11:02 |
| thesunnyk | (I mean my iterating _logic_ was correct, my end bit wasn't) | 11:02 |
| thesunnyk | anyway, all good it's working | 11:03 |
| rgareus | cool. | 11:03 |
| thesunnyk | Thanks heaps guys | 11:03 |
| rgareus | thesunnyk: will the plugin's source be available? | 11:05 |
| rgareus | some people have asked in the past about LV2 written in rust, it'd be nice to have some example code | 11:05 |
| thesunnyk | It will be a bit shit, but https://github.com/thesunnyk/synthz | 11:05 |
| thesunnyk | I'm trying to keep the "raw" code (C++ equivalent data structures) separate | 11:06 |
| thesunnyk | and then add a bit of a Rust layer to make it idiomatic. | 11:06 |
| thesunnyk | but really I probably won't have the time so at best it'll be some reference code for others to copypaste ;) | 11:10 |
| thesunnyk | time will tell | 11:10 |
| *** oofus_lt_ has joined #lv2 | 13:15 | |
| *** oofus_lt has quit IRC | 13:18 | |
| *** trebmuh has joined #lv2 | 13:24 | |
| *** sigma6 has joined #lv2 | 13:25 | |
| *** badosu has joined #lv2 | 13:30 | |
| *** artfwo has joined #lv2 | 14:04 | |
| falktx | drobilla: ping | 14:13 |
| *** Yruama_Lairba has joined #lv2 | 15:30 | |
| *** ricardocrudo has joined #lv2 | 15:31 | |
| *** deva has joined #lv2 | 15:40 | |
| *** yann-kaelig has joined #lv2 | 16:41 | |
| *** sigma6 has quit IRC | 17:04 | |
| *** oofus_lt_ has quit IRC | 17:28 | |
| drobilla | falktx: | . | | 17:33 |
| drobilla | Shit is better than nothing | 17:35 |
| drobilla | well...... sometimes, anyway :) | 17:35 |
| *** badosu has quit IRC | 17:50 | |
| *** rncbc has joined #lv2 | 19:45 | |
| *** NickSB has quit IRC | 19:59 | |
| *** NickSB has joined #lv2 | 20:17 | |
| *** edogawa has quit IRC | 20:21 | |
| *** edogawa has joined #lv2 | 20:31 | |
| *** deva has quit IRC | 20:31 | |
| *** rncbc has quit IRC | 21:04 | |
| *** rncbc has joined #lv2 | 21:10 | |
| *** trebmuh has quit IRC | 21:23 | |
| *** edogawa has quit IRC | 22:24 | |
| *** ricardocrudo has quit IRC | 22:35 | |
| *** yann-kaelig has quit IRC | 23:18 | |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!