Thursday, 2015-06-25

*** yann-kaelig has quit IRC00:09
*** edogawa has joined #lv206:29
*** edogawa_ has joined #lv206:29
*** edogawa_ has quit IRC07:00
*** ricardocrudo__ has joined #lv207:53
*** sigma6 has joined #lv207:58
*** edogawa has quit IRC08:11
*** ricardocrudo__ has quit IRC08:24
*** ricardocrudo has joined #lv208:25
*** NickSB2 has joined #lv208:39
*** falktx has joined #lv208:53
*** edogawa has joined #lv209:05
*** john_cephalopoda has joined #lv209:25
*** john_cephalopoda has quit IRC10:35
*** NickSB2 has quit IRC10:40
falktxwhat happens if I put port values as hexadecimal? ie, "lv2:default 0x1"11:27
*** rncbc_jolla has joined #lv211:35
*** ventosus has joined #lv211:43
rgareusrncbc_jolla: thanks for merging the qjackctl advanced setup!11:50
rgareusas las put it:  A new day dawns11:50
rncbc_jollargareus: a new decade perhaps;)11:51
rgareusrncbc_jolla: I was maybe a bit fast. thinking it over,  the "Port Maxiumum" shoud be on the normal settings page.11:52
rgareusrncbc_jolla: and the layout is a bit odd.  two half-filled pages (Settings, Advanced)11:53
rgareusrncbc_jolla: do you have any opinion about that?11:54
rncbc_jollargareus: yep maybe i was already makingsome moves11:55
rncbc_jollargareus: reordering some fields and set bold some labels11:56
rgareusaah the "Do not touch..." part is no longer bold :)11:56
rncbc_jollabut yours is one step up11:57
rncbc_jollai dont like html of it :)11:58
rgareusrncbc_jolla: it's nice that one can just cut/paste  stuff around in designer-qt.  no code changes needed11:58
rgareusnot very #LV2ey, probably more #LADdy11:59
rncbc_jollabut my moves were done earlier12:00
rncbc_jollanm.12:01
rncbc_jollaof course now the can is open12:02
rgareus?12:02
rgareusrncbc_jolla: if you move "Port Max" back to the "Settings" tab.  and "Server Name"  to the right colum. we can make a nice 3x6 grid.12:02
rncbc_jollatry it12:04
rgareusrncbc_jolla: related, what triggers the sensitivity of "Ignore H/W" ,  "Word Length", "Wait (usec)"  and "Channes"   they're always grayed out here12:05
rgareuss/Channes/Channels/12:06
rncbc_jollaporta12:07
rncbc_jollaportaudio12:07
rgareusaah. Windows12:07
rgareusrncbc_jolla: BTW, do you know if JackPilot (OSX) was deprecated recently and jackOSX now uses qjackctl?12:08
rncbc_jolladunno ask sletz12:08
rgareussome user got qjackctl on OSX  and it defaulted to "ALSA" :) https://github.com/jackaudio/jack2/issues/12612:09
rgareusand -Xcoremidi is not an option, either it seems.12:10
* rgareus suspects it's a PEBKAC though. probably qjackctl from homebrew or something12:11
rncbc_jollait always default to alsa . hardcoded12:11
rgareusthe image on that issue says qjackctl 0.3.6 from 2010  anyway. no idea what that guy is doing. It can't be sletz12:12
rncbc_jollaqjc should also migrate to use jackctl api12:12
rncbc_jollamaybe next decade12:13
rncbc_jolla:)12:13
rncbc_jollag2g12:16
*** rncbc_jolla has quit IRC12:16
rgareuswhile jack1 has a control-api it is not exposed, yet12:16
rgareusmmh too late12:16
*** yann-kaelig has joined #lv213:24
*** yann-kaelig has quit IRC13:30
*** yann-kaelig has joined #lv213:32
falktxrgareus: I have been doing a tool to check plugins for errors, your plugins have a small issue14:14
falktxrgareus: the port values that you set as integer have the value as float14:14
rgareusfalktx: nice. can you elaborate on te problem?14:14
falktxie, lv2:minimum 1.014:14
falktxit should be lv2:minimum 114:15
falktxrgareus: besides that and missing version, there's nothing else I think14:16
falktxhere's the full report: http://kxstudio.sourceforge.net/Paste/repo/8Zt3p14:16
rgareusfalktx: ok. that's really a nitpick.14:16
falktxI know :P14:17
falktxbut this is commercial stuff. nitpicking is necessary :)14:17
falktxrgareus: ah, I see a real error in 'http://gareus.org/oss/lv2/midifilter#midistrum'14:17
rgareusfalktx: the value is a float since it's a control-port14:17
falktxport scalepoint 'Up/Down 8th' has an out-of-bounds value: '0 < 4 < 3'14:17
falktx lv2:maximum 3.0, lv2:scalePoint [ rdfs:label "Up/Down 8th" ; rdf:value 4.0 ]14:19
falktxrgareus: well, I know. but this is to catch some devs putting integer property by mistake14:20
falktxI noticed some mda plugins have integer property but their values are always float (0.0 - 1.0 range)14:20
rgareusfalktx: thanks, fixed.14:21
rgareusfalktx: integer vs value is float.  I dunno, man. When querying the value I do get a float. both in the host as well as plugin14:22
rgareusbesides 1.0 is a double;  1.f woul be a float :)14:23
falktxrgareus: btw 'http://gareus.org/oss/lv2/midifilter#channelmap' has the same issues14:23
falktxall your scalepoints for that plugin have +1 value than max14:23
rgareusfalktx: how hard is it to expand the check to catch  fractions?   having  1.5  on a integer port would be an error14:24
falktxrgareus: yeah, but without this there would be no way to detect the misusage like in the mda case14:24
rgareus 1.0  or 2.0  I suggest a warning14:24
falktxI can make it a warning I guess14:24
falktxbut that would be for 1.0 or 2.0 values14:25
falktxif the port is integer and has value 1.5, that will be an error14:25
rgareus   fmod (val, 1.0)  != 0;14:25
falktxthis is python14:27
rgareusfalktx: great that you're doing this!14:28
rgareusI've added version-info to all my plugins last week so that part should be good with the next release14:28
rgareusfalktx: I probably won't go thoug all scale-points. I was hoping to release a new version today.14:29
rgareusmmh more out-of-bounds14:30
falktxwell, out of bounds scalepoints are errors14:32
falktxplease fix them before release14:32
rgareusyes, those are fixed already14:38
rgareusfalktx: and now the ".0"  is also gone on midifilters14:43
falktxnice14:45
falktxrgareus: if you do a new test source tarball I'll re-run the tests for you14:45
rgareusfalktx: does the "download zip"  button on https://github.com/x42/midifilter.lv2  count ?14:47
rgareusfalktx: the midifilters don't have any dependencies (except LV2-dev).14:48
falktxrgareus: I don't package that single. I need the full x42-plugins14:48
rgareusk14:48
rgareusfalktx: do you need a full package? or can the tool run on a .ttl file alone?14:48
falktxthe tool verify if the binary is there14:49
falktx*fies14:49
falktxit also verifies presets :)14:49
falktxrgareus: you have no idea the amount of errors this finds14:51
falktxbroken port properties, bounds, missing presets...14:52
falktxI mean, you have no idea the amount of errors present in released plugins14:52
falktxhmm, I can check if symbols are duplicated. and names14:55
rgareusfalktx: is the tool already published?14:59
falktxyes15:00
falktxlet me finish these changes and I'll post the link15:00
rgareusfalktx: take your time. I won't get to look into this before this evening anyway15:00
falktxrgareus: there will be some mod specific warnings in there15:09
falktxrgareus: we need some short names for plugin name, author and port names. this is not mandatory by lv2, but it's a should-have for getting better mod experience15:10
rgareusfalktx: p8r recently reported an issues. jack1 apparently has a 31char limit for port-names.15:11
rgareusfalktx: or client-name.15:12
falktxrgareus: yes, I know15:12
falktxjack2 limit is 25515:12
rgareusjalv takes the plugin-name as client-name..  jack2 has no issues with that15:12
falktxmaybe I'm wrong, but... I think...15:13
falktxjack1 can register a client with more than 31 chars15:13
falktxbut can't register a port with more than 3315:13
falktxie, register as it doesn't fail.15:13
falktxrgareus: short port names sounds like something jalv could use. instead of the current symbol which doesn't look nice15:14
rgareusI agree that names should be short[er].  Some of my plugins have/had too long names.15:15
falktxlv2:name has no restrictions15:15
falktxI'm using doap:shortname property15:15
rgareusbut really jack1's 33 char restriction is tight.15:16
falktxrgareus: https://github.com/portalmod/mod-sdk/blob/master/modsdk/lilvlib.py15:18
falktxno documentation, just read the code :)15:20
rgareus# Cut generic names    is radical. wow15:22
falktxI copied that code from carla15:22
* rgareus prefers concise names15:22
falktxrgareus: it's a fallback mechanism. only when plugins are missing info15:22
falktxwe'll be patching plugins for doap:shortname soon15:23
falktxthat function is waaaay too much for what mod needs, but meh will work in the mean time15:25
*** rncbc has joined #lv215:25
*** ricardocrudo has quit IRC16:39
*** sigma6 has quit IRC16:42
*** ricardocrudo has joined #lv216:47
ssj71falktx: I like verbose names, but I also like the idea of a shortname. One of the biggest complaints with original rakarrack was the terse labeling. FB. LRCr. ES. etc. etc.16:54
ssj71my ports probably err on the other side of the spectrum though16:55
ssj71falktx: is your script equvalent to sord_validate? I've never had good luck with getting usable output16:57
ssj71your scripts output is great16:58
falktxssj71: no, it does not validate rdf data16:59
ssj71ok. I'll have to keep trying to figure out sord_validate16:59
falktxyou need a clone of the lv2 source17:00
ssj71not just lv2-dev?17:01
ssj71falktx: do you have a fully passing plugin bundle I can use for an example? I thought I had doap:description right but I still am getting errors17:03
rgareusssj71: did you see http://lv2plug.in/pages/validating-lv2-data.html ?17:08
falktxssj71: it's not doap:description I think17:08
ssj71falktx: thats what Harry used. I just copied his. You want rdf:comment17:09
ssj71rgareus: I tried it. It could be as falk suggested I need lv2 from git, not just lv2-dev package17:10
falktxssj71: actually it's rdfs:comment17:10
falktxssj71: you're running sord-validate wrong17:10
rgareusindeed, you need all the .ttl files,  lv2-git is an easy way.17:10
falktxit needs the path to all folders containing ttls17:11
falktxlv2-dev doesn't have those files17:11
ssj71ah there it is17:11
ssj71that was my issue. I'll be sure to do it correctly before another release17:12
ssj71rkrlv2 is about 3 ports away from completion17:12
ssj71but the question is how much testing before an announcement :\17:12
rgareusssj71: announce a -rc ?!17:14
ssj71thats what I should do. I was hoping more people would test as I went along. maybe an rc will generate more interest17:17
ssj71time will tell :)17:17
rgareusssj71: I think it's a user-base issues.  guitarits  vs  people who build from source.  not much overlap17:21
ssj71I'll just get falktx to package a git version for me :)17:22
ssj71falktx: FWIW I think doap:description makes more sense than rdfs:comment17:23
ssj71https://github.com/harryhaaren/openAV-ArtyFX/blob/master/artyfx.lv2/kuiza.ttl#L3717:24
falktxssj71: ah yes, but those are 2 different things17:26
falktxdoap:description is more of a subtitle17:26
falktxwhat we want for mod is a complete description17:26
falktxie, a comment17:26
ssj71"Plain text description of a project, of 2-4 sentences in length"17:27
falktxI was going for lv2:documentation at first, but most plugins already use rdfs:comment17:27
ssj71:) sorry I don't know why I'm being so argumentative17:27
falktxssj71: perhaps I can require both :)17:27
falktxdescription *and* comment17:27
ssj71I'll add rdfs:comment. Status-quo and all17:28
falktxrakarrack seems like the right kind of fx toolset for guitarists and mod17:29
*** ricardocrudo has quit IRC17:35
rgareusfalktx: according to drobilla,   lv2:documentation  is for creating documentation of LV2 specs itself, not for plugins17:40
*** flexus has joined #lv217:50
falktxok, perfect then18:11
edogawaardour.org18:18
edogawaoh man, sorry18:18
* edogawa alwys confused by 2 keyboards18:19
*** john_cephalopoda has joined #lv218:22
john_cephalopodahi18:23
falktxhi18:35
ssj71falktx: I hope rkr-lv2 will be popular. I will use some modules, but I hope the community uses all of them18:36
ssj71I think mod will be a  big source of users. I hope18:36
ventosusfeature or bug? if I state:save a LV2_ATOM__URI, state:restore returns a LV2_ATOM__URID18:39
falktxwhich unmaps to LV2_ATOM__URI right?18:42
ventosusfalktx: yes, unmapping does the trick18:44
ventosusI just thought somehow that the type would be preserved...18:45
falktxand it is18:45
falktxeverything in lv2 is mapped to an urid18:45
falktxyou always do stuff in urids18:45
*** tytel has joined #lv218:47
ventosusfalktx: thanks, got it: URI and URID are stored in the same format in state.ttl18:57
*** ricardocrudo has joined #lv219:00
*** ventosus has left #lv219:01
*** tytel has quit IRC19:12
john_cephalopodaHmm, I got some problem with lv2. Every second, it clicks.19:30
john_cephalopodaHere's the code: https://bpaste.net/show/7dc6ab7d9aba19:33
ssj71just call it a metronome feature :)19:35
john_cephalopoda:D19:36
john_cephalopodaThe frequencies are the right ones, only that click every second is weird19:37
ssj71falktx: your script should give a warning if the name is over X characters and has no shortname19:37
falktxssj71: doesn't it?19:38
ssj71IDK :p I was just thinking about it19:38
ssj71sorry19:38
ssj71falktx: do you have an example plug that passes the script?19:39
ssj71john_cephalopoda: your problem is you are resetting current sample every second19:40
ssj71thats not going to be at the end of a wavecycle, rather each second19:40
ssj71john_cephalopoda: ln 92 of paste19:41
falktxssj71: not yet. I'm working through the mod plugins first to make them work 100%. then I'll move to patching other people's projects19:41
john_cephalopodassj71: I think it also does that click without that.19:42
ssj71are any of the mod ones pasing? I've looked at mod-pitchshifters and mod-distortions and they don't have everything. just give me a ping please when you have one :D19:42
john_cephalopodaOh, it actually works now.19:43
ssj71john_cephalopoda: with arbitrary frequencies you can't have a single counter I think19:44
ssj71when it overflows it will still click19:44
john_cephalopodaYeah.19:44
john_cephalopodaHmm.19:44
ssj71unless it happens to be an integer multiple of freq/4800019:44
john_cephalopodaThanks for the tip.19:44
ssj71np19:47
john_cephalopodaHmm, how can I reset the counters without getting the click? Even when I use one individual counter for every osc, I get a click when I reset the counters.19:50
ssj71you need to reset it such that the input to sin is always equivalent output so if freq*2*3.14159265*curr)/48000) > 2*pi then subtract 2*pi out19:54
ssj71its a bit difficult with an integer counter. I'd probably approach it with foat counters and add in freq/sample_rate each step19:55
ssj71then when counter > 2*pi; counter -=2*pi19:56
ssj71there are many mathematically equivalent approaches19:56
john_cephalopodaBut after 48000 samples I'll have exactly sin(freq*2*3.14159265*48000/48000), which is sin(freq*2*pi). Freq is an integer value.19:57
john_cephalopodaOr wait...19:57
john_cephalopodaFreq is a float.19:57
john_cephalopodaThat's the reason.19:57
john_cephalopodaWhen I divide by ints, I always get full multiples. But with floats, it will destroy my calculations.19:58
ssj71sin(freq*2*pi*1) != (freq*2*pi*0)19:59
ssj71oops forgot sin on RHS19:59
john_cephalopodaWhen freq is an int, it would work.19:59
ssj71john_cephalopoda: yes20:00
john_cephalopodaBut it would reduce resolution a lot, especially in the LFO.20:00
ssj71also when you change freq it will move your counter20:00
ssj71it will cause clicks each time you move freq param20:01
ssj71the float counter is nice for that20:03
john_cephalopodaPhew, complicated.20:07
john_cephalopodaAnd I haven't even got midi yet, only two frequency knobs :D20:07
*** Anchakor_ has joined #lv220:13
ssj71:) there are lots of good examples you can study. http://musicdsp.org/ helped me learn some common practices20:15
john_cephalopodaThanks20:20
john_cephalopodaSynths are really interesting. There can be so much done. With the right algorithms everything is possible :)20:20
grejppijohn_cephalopoda: why would it destroy your calculations?20:38
john_cephalopodagrejppi: I calculate the current output with "sin((freq*2*3.14159265*curr)/48000)".20:39
john_cephalopodaThat means, when I got one period, I am at sin(freq*2*pi).20:40
john_cephalopodaAfter that, I reset everything to zero because if freq is integer, the sin will be always 0 (since multiples of 2*pi)20:41
*** tytel has joined #lv220:41
john_cephalopodaWhen I use floats though, I will get a sin(something), where something is not a multiple of 2 pi, so I get a jump in my signal and an audible click.20:41
john_cephalopodaThat means, I have to reset as soon as the output signal is reasonable close to 0.20:42
*** tytel has quit IRC20:46
grejppijohn_cephalopoda: there are many other ways though20:48
grejppilet's say the sample rate is 4800020:49
grejppiyou have a floating point counter instead of an integer20:49
grejppievery time the counter is equal to greater than 48000 you subtract that from it20:50
grejppiif (counter >= rate) counter -= rate;20:50
ssj71falktx: how explicit should description be? do I really need to explain a phaser?20:51
falktxssj71: 1 or 2 lines comment20:51
falktxssj71: the more the better. but doesn't have to be fancy20:52
john_cephalopodagrejppi: The counter is actually a float.20:53
grejppijohn_cephalopoda: then why are you using only integer values?20:54
john_cephalopodaI didn't think I'd need that because I thought that frequencies are ints21:01
john_cephalopodaAlso, when I got frequencies under 1 Hz, I got problems.21:02
john_cephalopodaAfter one second, I will be at pi/2, so at 1. When I go back to a counter value where it works, it would have to be negative.21:03
grejppijohn_cephalopoda: that doesn't matter21:04
john_cephalopodaI'd have to go back 3/4 of a period. After 1/4 of a period (1 second), I'd be at -pi/2, last one before that would be one period back.21:06
john_cephalopodaOr whatever. My sketch looks a bit werid. But it looks pretty much like I will get more and more negative values.21:07
john_cephalopodaOh, so I just let it run til 48000...21:07
grejppijohn_cephalopoda: I tend to do something like this in my synths nowadays: https://gist.github.com/grejppi/d326f90d3222b6b37dfe21:08
rgareusgrejppi: curious.  what benefit does that have compared to just counting samples at SR?22:01
rgareusgrejppi: no need for a modulo  if the compiler properly maps uint32_t ?22:02
rgareusthen again, there are 3 divisions, one lrintf and two multiplications in the inner-loop.   I'll take the modulo :)22:04
*** ricardocrudo has quit IRC22:05
grejppirgareus: sure, this could be optimized a lot. but the idea is to let integer overflow do what the modulo would do22:12
grejppiI think this technique was mentioned by wrl sometime on #lad22:14
john_cephalopodaLetting ints overflow is ugly. It is undefined behaviour iirc. So on some compilers it could go wrong.22:17
rgareus& 0xffffffff22:22
grejppiisn't uint32_t guaranteed to be 32 bits anyway?22:22
rgareusdepends on the platform and compiler22:23
john_cephalopoda& 0xffffffff would not change anything.22:23
rgareuswell I was rather thinking of oddities in the float mantissa when dividing by (2^31 -1)22:24
john_cephalopodaI think uint32_t should be 32 bit. But the overflow behaviour isn't defined in the C standard iirc. So compilers can do what is easiest. Most just get negative because it is easy. But probably other compilers do other things.22:24
grejppiunsigned won't go negative22:24
john_cephalopodaI once wrote some code that gets a binary float and prints it: https://cs.au.dk/~sortie/str2.cpp22:24
grejppiit just wraps back to zero22:25
john_cephalopoda(not my website)22:25
john_cephalopodagrejppi: Right, uint won't. Probably. You never know what the compiler maker thought when writing that part.22:25
john_cephalopodaWell, it will not get negative in any case.22:26
john_cephalopodaBut it might not go to 0.22:26
rgareusjohn_cephalopoda: pork? can't you beef this up a bit :)22:26
grejppiwhere else?22:26
john_cephalopodargareus: But... PORK!22:26
john_cephalopodargareus: Also "//TODO: Nothing, the code is perfect."22:27
john_cephalopodaBalanced ternary is a really interesting number system.22:32
*** yann-kaelig has quit IRC22:33
ssj71falktx: you should be asleep :)22:50
ssj71falktx: to run your script should just be "python3 lilvlib.py /usr/lib/lv2/rkrlv2.lv2" right?22:51
*** edogawa has quit IRC23:07
falktxssj71: yes23:24
falktxssj71: and I should be sleeping yes. the new release of portal2:mel got me curious23:27
falktxgame mod that's actually a full new game. and man that thing is hard23:27
falktxk, cya later23:28
*** falktx has quit IRC23:28
*** john_cephalopoda has quit IRC23:33
*** rncbc has quit IRC23:36
*** flexus has quit IRC23:55

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