*** john_cephalopoda has left #lv2 | 00:01 | |
*** gianMOD has joined #lv2 | 00:15 | |
*** gianMOD_ has joined #lv2 | 00:17 | |
*** gianMOD has quit IRC | 00:19 | |
*** gianMOD_ has quit IRC | 00:21 | |
*** gianMOD has joined #lv2 | 01:45 | |
*** gianMOD has quit IRC | 01:50 | |
*** badosu has joined #lv2 | 01:52 | |
*** gianMOD has joined #lv2 | 02:46 | |
*** gianMOD has quit IRC | 02:50 | |
*** gianMOD has joined #lv2 | 03:47 | |
*** gianMOD has quit IRC | 03:51 | |
*** grejppi has quit IRC | 04:41 | |
*** grejppi has joined #lv2 | 04:41 | |
*** gianMOD has joined #lv2 | 04:48 | |
*** gianMOD has quit IRC | 04:53 | |
*** gianMOD has joined #lv2 | 05:48 | |
*** gianMOD has quit IRC | 05:53 | |
*** gianMOD has joined #lv2 | 06:07 | |
*** gianMOD has quit IRC | 06:34 | |
*** gianMOD has joined #lv2 | 07:20 | |
*** gianMOD has quit IRC | 07:24 | |
*** edogawa has joined #lv2 | 07:53 | |
*** john_cephalopoda has joined #lv2 | 08:04 | |
*** gianMOD has joined #lv2 | 08:44 | |
*** edogawa has quit IRC | 08:56 | |
*** ddom has joined #lv2 | 09:27 | |
*** gianMOD has quit IRC | 09:38 | |
*** gianMOD has joined #lv2 | 09:39 | |
*** gianMOD has quit IRC | 09:39 | |
*** gianMOD has joined #lv2 | 09:40 | |
*** gianMOD has quit IRC | 09:40 | |
*** gianMOD has joined #lv2 | 09:41 | |
*** gianMOD has quit IRC | 09:41 | |
*** gianMOD has joined #lv2 | 09:42 | |
*** gianMOD has quit IRC | 09:47 | |
*** gianMOD has joined #lv2 | 09:54 | |
*** ricardocrudo has joined #lv2 | 10:11 | |
*** ricardocrudo has quit IRC | 10:53 | |
*** gianMOD has quit IRC | 11:03 | |
*** deva has joined #lv2 | 11:11 | |
deva | I have created a sequence and am trying to append a midi event to it. | 11:37 |
---|---|---|
deva | The sequence is to be passed to a plugin through lilv | 11:38 |
deva | http://pastebin.com/wLqE1kND | 11:38 |
deva | but my plugin receives an empty sequence... what am I doing wrong? | 11:38 |
*** gianMOD has joined #lv2 | 11:57 | |
*** gianMOD has quit IRC | 12:11 | |
*** falktx has joined #lv2 | 12:31 | |
*** rncbc_jolla has joined #lv2 | 12:53 | |
*** rncbc_jolla has quit IRC | 12:57 | |
*** ricardocrudo has joined #lv2 | 14:02 | |
*** NickSB2 has quit IRC | 14:03 | |
*** ricardocrudo has quit IRC | 15:45 | |
*** falktx has quit IRC | 16:03 | |
*** ricardocrudo has joined #lv2 | 16:17 | |
drobilla | deva: Looks like you set the output capacity to the size of an empty sequence | 16:50 |
drobilla | deva: So there's no space to append the event | 16:50 |
deva | drobilla, Thanks, I think I already figured it out ;) | 16:50 |
drobilla | Check the return code... | 16:50 |
deva | How is that handled in Ardour? | 16:50 |
deva | I mean, if a sequence is created with a default maximum size and a given buffer contains more midi events? | 16:51 |
deva | Will they be skipped? | 16:51 |
deva | Or is the sequence buffer size increased? | 16:51 |
drobilla | "default maximum size"? | 16:53 |
drobilla | I'm not sure what you mean. | 16:53 |
drobilla | The host allocates buffers, so they can be whatever size it wants | 16:53 |
drobilla | capacity != size | 16:53 |
deva | Whast I am currently doing is; create a char buffer of size n. Typecast it to a Sequence and use n as the capacity | 16:53 |
deva | But what if the sequence needs to hold more events that can be put in n bytes? | 16:54 |
drobilla | I assume you're talking about a different version of code than shown in this paste... | 16:54 |
deva | The buffer is assigned to the port once during initialisation is it not? | 16:54 |
drobilla | Well......... they won't fit? Obviously? :P | 16:55 |
drobilla | No. | 16:55 |
deva | Oh, yes, sorry | 16:55 |
drobilla | connect_port can be called numerous times | 16:55 |
deva | So, if there at some point need to be fed more midi events to the plugin during a single run call, then the sequence can simply be realloced and a new connect call can be performed? | 16:56 |
drobilla | not "during a single run call" | 16:57 |
drobilla | but you can connect to whatever then run | 16:57 |
deva | Hmm.. wont that be a kind of "chicken and the egg" problem? | 16:58 |
drobilla | Most hosts are real-time ones where this sort of situation doesn't really come up and you can't do that anyway | 16:58 |
drobilla | Why? The host passes things to be processed to the plugin | 16:58 |
drobilla | How can the amount of stuff it wants to be processed change after it's...... asked the plugin to process stuff? | 16:58 |
deva | If we read from one buffer (ie. the midi interface on the soundcard) and get some unknown number of midi events that we need to , in the same run, feed to a plugin? | 16:59 |
drobilla | If I connect a plugin to 1 2 3 4 and call run, well, 1 2 3 4 is what it gets. That can't somehow change while run() is running | 16:59 |
deva | It could be a plugin creating the events? | 16:59 |
drobilla | Outputs are an entirely different situation | 17:00 |
drobilla | I would need to know what actual situation you are considering to be able to say anything meaningful here | 17:00 |
deva | But if one writes a midi output plugin, it would still be using the buffer (sequence) allocated by the host? | 17:00 |
drobilla | But in general, allocating "big enough" buffers and hoping that's the case is just how RT programming goes | 17:00 |
drobilla | Yes. | 17:01 |
deva | ok, that was kind of what I was getting at ;) | 17:01 |
drobilla | The plugin can request larger buffer sizes with properties in its metadata | 17:01 |
drobilla | (or dynamically, but few hosts support that and it's a questionable idea) | 17:01 |
deva | Have you any "analysis" of how many midi events is a reasonable amount to use as a maximum? | 17:01 |
deva | ... and are you currently using a fixed one or one depending on the audio buffer size? | 17:02 |
deva | I'm thinking the larger the audio buffer (and thereby the timespan of each midi run call) the more events could potentially be triggered | 17:02 |
drobilla | Maximum for what? Where? When? | 17:03 |
deva | The buffer for the sequence as allocated by the host | 17:03 |
drobilla | In a host that gets this data from where? | 17:03 |
deva | The host that calls a plugin which produces midi events | 17:04 |
drobilla | .............. | 17:04 |
drobilla | I know what a host is. | 17:04 |
john_cephalopoda | Is lv2 also compatible with Mac OSX and windows operating systems? | 17:04 |
john_cephalopoda | wikipedia says "Unix/Linux" but lv2 sites talk about .dlls. | 17:04 |
drobilla | The reason I was asking about any kind of actually concrete situation is because many APIs tell you this. | 17:04 |
drobilla | e.g. if the host is using Jack, you use the MIDI buffer size from Jack | 17:05 |
deva | It is in no way concrete... mainly food for thought | 17:05 |
drobilla | Otherwise, whatever. Pick a number. | 17:05 |
drobilla | Roughly the same size as an audio buffer should be fine. Considerably smaller is probably also fine. | 17:05 |
deva | But lets assume it runs jack and jack has a 16 sample buffersize | 17:05 |
drobilla | It should be a parameter. | 17:05 |
drobilla | If it's Jack then you get this actual number from Jack and avoid the guesswork. | 17:05 |
deva | In this case it could be assumed that the midi plugin produces fewer events per iteration than it would if the jack buffer size were say 2048 samples | 17:06 |
deva | Does jack have a maximum number of midi events for each iteration? | 17:06 |
drobilla | Jack has a MIDI buffer size. | 17:07 |
drobilla | Which is configurable. | 17:07 |
deva | ok, and this buffer size is "resused" for the plugin->plugin communication because all calls go back into jack? | 17:08 |
deva | *reused | 17:08 |
drobilla | Well, the run block size is presumably also going to be the Jack block size | 17:10 |
deva | ok | 17:10 |
drobilla | So in the overwhelming majority of cases (instruments and filters) that'll do | 17:10 |
deva | I think that answers my question :-) | 17:10 |
drobilla | Only actual MIDI generator plugins could be problematic | 17:10 |
deva | ... unless you have an elephant sitting on your keyboard :p | 17:10 |
drobilla | Which is what the properties in http://lv2plug.in/ns/ext/resize-port/ are for | 17:11 |
deva | But then you probably have other problems than those of midi buffer sizes... | 17:11 |
john_cephalopoda | So is it possible to use lv2 on windows and mac or not? | 17:13 |
john_cephalopoda | A jumping elephant. | 17:13 |
deva | john_cephalopoda, actually a vibrating one... at 400 bpm ... shake that booty | 17:14 |
john_cephalopoda | A vibrating booty shaker elephant on a keyboard. That sounds like a great plot for a comic. | 17:15 |
deva | haha | 17:15 |
drobilla | john_cephalopoda: Yes. The API itself is just portable C declarations | 17:18 |
drobilla | john_cephalopoda: The usual host libraries work on all major OSs | 17:18 |
john_cephalopoda | Nice. | 17:21 |
*** ddom has quit IRC | 17:22 | |
*** edogawa has joined #lv2 | 17:27 | |
john_cephalopoda | deva: [nsfw-y]: http://picpaste.com/pics/be-voTKZGTe.1423677518.png | 17:58 |
john_cephalopoda | drobilla: ^ | 18:00 |
*** Anchakor_ has quit IRC | 18:06 | |
*** falktx has joined #lv2 | 18:08 | |
*** ricardocrudo has quit IRC | 18:08 | |
*** Anchakor_ has joined #lv2 | 18:11 | |
deva | john_cephalopoda, nice one ;) | 18:14 |
john_cephalopoda | Krita is out-of-order atm so I had to use mypaint. Never really used mypaint before. It is awesome for sketching. | 18:15 |
john_cephalopoda | http://picpaste.com/pics/pyqt-I3qhjc49.1423679278.png | 18:28 |
john_cephalopoda | Mypaint has the advantage that I am too lazy to learn it and look where I can change the layers. I just draw and erase instead of using 1000 layers. | 18:29 |
john_cephalopoda | But back to lv2 talk ;D | 18:29 |
*** mlpug has joined #lv2 | 18:56 | |
*** ricardocrudo has joined #lv2 | 19:03 | |
*** rncbc has joined #lv2 | 19:47 | |
*** rncbc is now known as rncbc|AFK | 19:52 | |
*** deva has quit IRC | 20:36 | |
*** ricardocrudo_ has joined #lv2 | 20:41 | |
*** ricardocrudo has quit IRC | 20:44 | |
*** ricardocrudo_ has quit IRC | 20:46 | |
*** mlpug has quit IRC | 20:56 | |
*** rncbc|AFK is now known as rncbc | 21:02 | |
*** NickSB2 has joined #lv2 | 21:04 | |
*** rncbc is now known as rncbc|AFK | 21:35 | |
*** gianMOD has joined #lv2 | 21:37 | |
*** rncbc|AFK is now known as rncbc | 21:57 | |
* drobilla re-enables accounts on dev.drobilla.net and gets 6 spam accounts in a few hours | 22:14 | |
drobilla | Sigh. I need to do something about this | 22:14 |
john_cephalopoda | Hmm, it would be cool to be able to run everything on the system through jack. | 22:19 |
john_cephalopoda | And patch it together. | 22:20 |
john_cephalopoda | With lv2 plugins. | 22:20 |
john_cephalopoda | You could route the output of mplayer through distortion, equalizers and vocoders. | 22:20 |
john_cephalopoda | I wonder if performance would change a lot. | 22:21 |
drobilla | That's what Jalv is for | 22:22 |
drobilla | But yes, performance impact vs a single plugin host would be severe | 22:23 |
*** edogawa has quit IRC | 22:31 | |
*** gianMOD has quit IRC | 22:38 | |
john_cephalopoda | It would be cool to be able to handle audio routing on kernel level. | 22:39 |
*** gianMOD has joined #lv2 | 22:40 | |
john_cephalopoda | But an address space switch every time you got some program there... | 22:40 |
john_cephalopoda | Somehow not efficient. | 22:40 |
*** gianMOD has quit IRC | 23:08 | |
drobilla | bugseverywhere seems the best, but also seems pretty dead. | 23:09 |
drobilla | debbugs is alright if not git-backed, but it needs a subdomain which I can't set up on lv2plug.in (and is probably less than fun to set up in the first place) | 23:09 |
*** falktx has quit IRC | 23:16 | |
*** NickSB2 has quit IRC | 23:18 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!