*** falktx has joined #lv2 | 03:55 | |
*** falktx` has quit IRC | 03:59 | |
*** deva has joined #lv2 | 07:50 | |
*** oofus_ has quit IRC | 08:11 | |
*** oofus_ has joined #lv2 | 08:11 | |
*** oofus_ has quit IRC | 08:20 | |
*** oofus_ has joined #lv2 | 08:21 | |
*** trebmuh has joined #lv2 | 08:57 | |
*** ricardocrudo has joined #lv2 | 09:00 | |
deva | Can I somehow make the LV2 host report tempochanges to my lv2 instrument plugin through midi events? | 09:21 |
---|---|---|
ventosus | deva: not through midi, but through time:Position events | 09:35 |
deva | ventosus, great thanks | 09:35 |
*** Yruama_Lairba has joined #lv2 | 09:43 | |
*** ocbtec has joined #lv2 | 10:17 | |
*** oofus has joined #lv2 | 10:27 | |
*** oofus_ has quit IRC | 10:27 | |
*** ocbtec has quit IRC | 10:56 | |
*** ricardocrudo has quit IRC | 12:07 | |
*** unclechu-audio has quit IRC | 12:25 | |
*** trebmuh has quit IRC | 12:39 | |
deva | Considering the time:beatUnit property. In the docs it says "xsd:nonNegativeInteger" but no such type exists as an atom. | 12:40 |
deva | I have tested it with "Atom Int" and it works with Ardour... but couldn't it theoretically be reported using "Atom_Long" in other hosts? | 12:41 |
*** trebmuh has joined #lv2 | 12:54 | |
rgareus | deva: jalv also sends atom_Int | 12:58 |
deva | Perhaps the spec should be updated to specify the datatype to int then? | 12:58 |
rgareus | drobilla: ^^ | 12:59 |
rgareus | deva: some example client code (works with jalv, ardour + MOD): https://github.com/x42/stepseq.lv2/blob/master/src/stepseq.c#L158 | 12:59 |
deva | On a similar note; any particular reason why the beatsPerBar and beatUnit is not the same datatype? | 12:59 |
deva | beatsPerBar is float | 13:00 |
deva | So that would legalize fragmented time signaures like say 3.8/4th - does that make any sense? | 13:02 |
deva | (I for sure wouldn't want to try playing to tha :-D ) | 13:02 |
drobilla | The xsd/atom thing is a bit odd at times | 13:02 |
rgareus | deva: listen to Mädchentotenlieder | 13:03 |
rgareus | deva: https://en.wikipedia.org/wiki/List_of_musical_works_in_unusual_time_signatures | 13:03 |
deva | touche ;) | 13:03 |
drobilla | deva: Maybe. That's less expressive, validator couldn't catch funny values, and nonNegativeInteger and friends are restrictions on integer | 13:03 |
rgareus | 1.5 /4 | 13:03 |
drobilla | deva: But this is more work to query out, soooooooooo *shrug* | 13:04 |
deva | A whole wikipage supporting the choice of datatype - awesome! | 13:04 |
drobilla | I copied the types more or less exactly from jack transport. The float numerator is kind of questionable if you ask me, but whatever | 13:04 |
drobilla | Out here in real life you'd do that as 3/8 in basically any actually existent piece of software :) | 13:05 |
deva | Unless you have half a bar, then you would have to denote it 1.5/4 | 13:06 |
deva | I mean some number of bars at 3/8th, then a single bar at 1.5/4th and then back to 3/8th | 13:06 |
rgareus | there is an ongoing debate if it makes sense | 13:07 |
rgareus | it's mostly to denote some specific expression on the composition. | 13:07 |
rgareus | e.g. some abrupt "death" rupture in the phrase | 13:07 |
deva | I agree | 13:07 |
rgareus | and a whole lot of convention | 13:08 |
deva | And the spec should not limit the composer but rather support whichever crazy idea he or she might have | 13:08 |
deva | So I'd stick with the float | 13:08 |
rgareus | another odd thing: mathematically 3/4 and 6/8 are the same, but musically quite different. | 13:08 |
deva | The question is if the numBeatsPerBar should also be a float? | 13:09 |
rgareus | and yeah float does not hurt for small numbers | 13:09 |
deva | eh... I meant beatUnit - sorry | 13:09 |
rgareus | I can't see how that'd work. | 13:10 |
deva | I mean it could make sense to have both in the same datatype | 13:10 |
deva | ... just my OCD talking :p | 13:10 |
deva | But I guess such a change would break the current spec | 13:11 |
deva | Let's just keep it at the doc change for time:beatUnit as Atom Int type then :-) | 13:11 |
rgareus | like you said 3 / 8 -> 1.5 / 4 is an odd notation, but you can play it without thinking too much.. 3 / 3.5 I'm lost. | 13:12 |
rgareus | deva: since a lot of hosts already implent it as Int. it'd be hard to change anyway | 13:13 |
deva | true | 13:13 |
rgareus | the only way would be to introduce a new property. (and deprecate the old) | 13:13 |
deva | 3 / 3.5 would just be half a 6/7th bar | 13:13 |
* rgareus looks forward to your next song. | 13:14 | |
deva | Haha :-D | 13:14 |
deva | I'm afraid you would ahve to talk to chaot4 about that :p | 13:15 |
rgareus | yeah metronoms will have a hard time. | 13:16 |
rgareus | that's probably why it's an integer . at least the base-time is evenly divided. | 13:17 |
deva | If you were to use 3/5th in Ardour and the position a change to 4/4th in the middle of a bar; what would happen? | 13:18 |
deva | Isn't it legal to position signature changes out of alignment with the bar? | 13:18 |
rgareus | it wasn't until 5.0 | 13:19 |
rgareus | I'll have to check what nick_m did, but I'm pretty sure metrum can only change on bars. | 13:20 |
deva | So does the metronome simply re-start at 1 on the position of the new time signature? | 13:20 |
rgareus | I think he relaxed it to beats .. maybe. | 13:20 |
deva | that would keep it as integral units then | 13:21 |
rgareus | deva: no idea. either ask him on #ardour or read the source | 13:21 |
deva | So that would make sense | 13:21 |
rgareus | I don't think ardour support float numerators. | 13:22 |
rgareus | LV2 could. | 13:22 |
deva | the numerator is selected in a dropdown menu, so I guess not | 13:22 |
*** unclechu-audio has joined #lv2 | 13:33 | |
drobilla | coercion methods would be nice in general | 14:19 |
drobilla | In some sense just having everything as a float would be easy and consistent with most of what we currently have | 14:21 |
drobilla | But I figured it was inevitable that at some point that's going to fall apart and we'd need to deal with actual integers, so might as well start now | 14:22 |
drobilla | But really I just avoided having to think too much by copying Jack transport. I like copying things :) | 14:23 |
drobilla | Though I did change all the ridiculous "some stuff is 1-based and others are 0-based" that has zero business in a low level API/protocol, I suppose | 14:23 |
* drobilla wonders if/how all this is going to play nice with Link | 14:24 | |
*** ocbtec has joined #lv2 | 14:46 | |
rgareus | drobilla: how about copying Ableton Link, next :) | 14:56 |
*** drobilla has quit IRC | 14:59 | |
ventosus | time seems to be the topic of the day... https://paste.open-music-kontrollers.ch/metronom.gif | 15:45 |
* ventosus slowly is getting the knack for the inline display | 15:45 | |
*** rncbc has joined #lv2 | 15:53 | |
rgareus | ventosus: nice! | 16:11 |
rgareus | ventosus: is that host-synced? | 16:11 |
ventosus | rgareus: yes | 16:12 |
rgareus | ventosus: is the display fixed, or do programmed in moony as lua-script? | 16:16 |
ventosus | rgareus: dynamically created in Lua, yes | 16:23 |
ventosus | rgareus: I do not direclty draw directly from Lua, instead the vector graphic is serialized into an atom stream which will be drawn via cairo later on | 16:27 |
ventosus | https://paste.open-music-kontrollers.ch/metronom.lua | 16:27 |
rgareus | interesting indirection. | 16:34 |
rgareus | I've looked at moony for inspiration about message for ardour lua-pluins, but have not yet found some overlap. | 16:35 |
rgareus | once there can be GUIs just moving around lua-tables directly seems more straight forward. than en/decoding LV2 Atoms | 16:36 |
rgareus | one reason to use some LV2ey abstraction would be to allow sharing scripts. LV2 bindings that can be used in /any/ lua script. | 16:38 |
rgareus | on the downside, one goal of ardour/lua scripts is to be able to have access to ardour's internal API to do things that plugins can't otherwise do. | 16:40 |
ventosus | I'll need to add a wrapper to make drawing/serializing simpler, like canvas:rectangle(0, 0, 1, 1):stroke() | 16:42 |
rgareus | ventosus: yeah having return the context they operate on is a nice twist. | 16:43 |
rgareus | I stuck to cairomm's API which does not do that | 16:43 |
rgareus | context:rectangle() context:stroke() .. the advantage here is to follow cairo's fill_preserve() etc. | 16:44 |
rgareus | :ectangle(0, 0, 1, 1):stroke() implies a cairo_path_new() at the end. | 16:44 |
rgareus | or sub_path at the beginning | 16:45 |
* ventosus has made his first steps with cairo today ... | 16:45 | |
rgareus | oops it's cairo_new_path () (not _path_new) | 16:45 |
rgareus | the alternative to cairo is https://skia.org/ cairo <> skia is not unlike gnome <> KDE, or vim <> emacs. | 16:49 |
rgareus | either are nice 2d vector graphics libs | 16:50 |
ventosus | I had a look at skia, but couldn't even get it compiled | 16:50 |
ventosus | rgareus: about interoperability: moony tries to be as low-level as possible, but adding compatibility wrappers later on is an option | 16:51 |
rgareus | code-wise it's also very low leve (lua c api) | 16:51 |
rgareus | not much overlap with ardour's C++ bindings :( | 16:51 |
* ventosus does not know any C++ :( | 16:52 | |
rgareus | it'd be nice to share some code and interfaces.. but It does not seem reasonable for the cases at hand :( | 16:52 |
rgareus | there's also http://lua-av.mat.ucsb.edu/blog/ | 16:52 |
rgareus | anyway dinnertime | 16:53 |
*** edogawa has joined #lv2 | 17:30 | |
*** oofus has quit IRC | 18:35 | |
*** deva has quit IRC | 18:35 | |
*** oofus has joined #lv2 | 18:35 | |
*** gianMOD has joined #lv2 | 18:38 | |
*** gianMOD has quit IRC | 18:54 | |
*** gianMOD has joined #lv2 | 19:00 | |
*** unclechu-audio_ has joined #lv2 | 19:22 | |
*** unclechu-audio has quit IRC | 19:24 | |
*** rncbc has quit IRC | 19:36 | |
*** rncbc has joined #lv2 | 20:26 | |
*** gianMOD has quit IRC | 20:39 | |
*** HarryHaaren has joined #lv2 | 21:58 | |
*** unclechu[m] has joined #lv2 | 22:00 | |
*** Yruama_Lairba has quit IRC | 22:03 | |
*** rncbc has quit IRC | 22:21 | |
*** gianMOD has joined #lv2 | 22:40 | |
*** gianMOD has quit IRC | 22:45 | |
*** ocbtec has quit IRC | 23:00 | |
*** edogawa has quit IRC | 23:01 | |
*** HarryHaaren has quit IRC | 23:28 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!