ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<Lord_Nightmare> which patent are they talking about? US9996875?
<Lord_Nightmare> no, that's from a non microsoft entity, it would have to be US9606989 or similar
<Lord_Nightmare> it has to be one of those four
<Lord_Nightmare> the 8479112 patent is a real problem because it has a 10-year extension due to grant delays
<Lord_Nightmare> i think the 35 U.S.C. 154(b) term extension for patents is very broken
Xyz_39808 has quit [Ping timeout: 260 seconds]
<kode54> lol
<cr1901_modern> Proud to contrbute about 3000 of those unlabelled units (label your y-axis, damnit :P)!
<whitequark> *looks at profile* i tweet too much
<TD-Linux> what's the current hotness for using FM chips with DAWs?
<cr1901_modern> TD-Linux: Idk if it's the current hotness, but I was looking at using ADLplug/OPNplug with Ardour. I've no experience with using the LV2/VST variants though
<cr1901_modern> https://github.com/jpcima/ADLplug It uhh, works pretty well
<TD-Linux> is there something like that but can work with real hardware?
<cr1901_modern> Oh, hrm... wonder if anyone has written a VST/LX2 plugin for the OPL2Board
<cr1901_modern> That is to say, I don't know. Maybe ask theavalkyrie on hellsite. This seems to be something she's interested in.
<cr1901_modern> whitequark: Don't we all? You seem to be okay keeping the rage out of the public timeline tho. Maybe you contribute 50 rage units instead of 3000.
<whitequark> pff
* cr1901_modern would contribute less rage if I RT'd less, but doesn't see that happening
<cr1901_modern> >Xferring my Autodesk acct from old school email to personal email
<cr1901_modern> >"Gee I wonder how much 3ds max cost nowadays"
<cr1901_modern> $1620 per year. It's a f***ing subscription too. You GOTTA be shitting me.
<whitequark> it's $0 on rutracker.
<cr1901_modern> Good to know. How do they bypass the product "phoning home" to make sure your subscription is still valid?
<superctr_> autodesk is the bane of hobbyists
<whitequark> cr1901_modern: i didn't even check tbh, let me do it now
<whitequark> (i'm very certain it's there)
<whitequark> seems to be patched away *shrug*
<cr1901_modern> Yay :D! Thx
<whitequark> like, you're not gonna see russian pirates *not* patch away phoning home somewhere
<whitequark> that's just not about to fly, people here are *discerning*
<cr1901_modern> Ty for the hint
<cr1901_modern> superctr_: Absolutely no argument from me there. But 3ds max (and solvespace to a lesser extent) are what I know. At some point I'll learn Blender.
<cr1901_modern> I don't even have a project in mind; was just curious how Autodesk f***ed things up over the years.
<superctr_> because they know that companies pay $$$ for their products, so that's their only focus
<superctr_> it's funny because they acquire products that _are_ in the reach of hobbyists (like eagle) and then proceed to take it away
<Sarayan> whitequark as long as they don't patch it *in* ;-)
<whitequark> you could just use the windows firewall to prohibit it from making any connections
<Sarayan> probably, not something I need to care about :-)
futarisIRCcloud has joined ##yamahasynths
<andlabs> simple: the copied adobe, and because we still don't have a viable alternative to 3ds max for all possible use cases they got away with it
<andlabs> wait no, I'm thinking of AutoCAD
<andlabs> we do have a viable alternative to 3ds max for all possible use cases
<andlabs> it's called Blender
<andlabs> I do wonder how far behind FOSS CAD solutions are now
<andlabs> it's better than the "still at 0" it was 10 years ago
<andlabs> I know that much
<andlabs> (I mean actual CAD, not the motherboard design CAD that KiCAD handles or the 3D printer slicing definition of CAD that is also coming into fashion, both of which have Autodesk products and viable FOSS alternatives (though in the case of the latter no one uses the viable FOSS alternatives so maybe they aren't viable after all?))
<whitequark> andlabs: solvespace? :p
<whitequark> well, no
<whitequark> it's not an autocad competitor, it's a solidworks competitor
<cr1901_modern> I'm under the impression parametric CAD is fine for like 90% of the use cases of 3D models you'd build in a 3d modelling program?
<cr1901_modern> I didn't use 3ds max for CAD; I used it for 3D demos (OpenGL, etc).
<cr1901_modern> Do you need stuff like texturing and modifying UV-space in a CAD program?
<whitequark> generally not but people do use simple textures for renders
<Sarayan> anyone knows how in python I can turn 'D100110011001100' into a *signed* 8-bytes integer value?
<Sarayan> so that mongodb accepts storing it
Xyz_39808 has joined ##yamahasynths
<cr1901_modern> struct.pack
* cr1901_modern handwaves the actual invocation :P
<Sarayan> unpack won't take a hex string
<whitequark> >>> bytes.fromhex("D100110011001100")
<whitequark> b'\xd1\x00\x11\x00\x11\x00\x11\x00'
<Sarayan> >>> print(struct.unpack('q', bytes.fromhex('D100110011001100')))
<Sarayan> (4785147619639505,)
<Sarayan> getting it unsigned, damn
<cr1901_modern> capitalize the 'q'?
<Sarayan> no change
<Sarayan> also, >>> print(int('D100110011001100', 16))
<Sarayan> 15060055845909827840
<Sarayan> wtf over?
<Sarayan> (gdb) print 0xD100110011001100
<Sarayan> $1 = 15060055845909827840
<Sarayan> (gdb) print (long long)0xD100110011001100
<Sarayan> $3 = -3386688227799723776
<Sarayan> so it's $3 I want
<whitequark> oh
<whitequark> yeah so python doesn
<whitequark> 't have a way to parse an int as signed
<whitequark> you have to just manually add the sign bits
<whitequark> if x & (1<<63): x |= -1<<64
<whitequark> something like that
<Sarayan> ok, lemme try that
<Sarayan> >>> x = int('D100110011001100', 16)
<Sarayan> ... x -= 1<<64
<Sarayan> -3386688227799723776
<Sarayan> ...
<Sarayan> >>> if x & (1<<63):
<Sarayan> >>> print(x)
<Sarayan> yay
<Sarayan> thanks wq
<cr1901_modern> why or-equals?
<whitequark> why not?
<cr1901_modern> Brain's too fried right now. Can't convince myself it's equivalent to "-= 1<<64"
<Sarayan> it's not, expect in our case it is
<Sarayan> Iff your value is in the 1<<63 .. 1<<64 - 1 interval it is
<Sarayan> because two's complement, modular arithmetic, and fluffly bunnies
<cr1901_modern> I like bunnies.
<whitequark> cr1901_modern: if x interpreted as 64 bit value has sign bit set: add infinite sign bits to x interpreted as bigint
<Sarayan> now let's see whether mongodb is happier
<whitequark> is it web scale though
<Sarayan> web scale?
<cr1901_modern> . o O (how does a bigint library normally represent "-1"?)
<whitequark> infinite series of ones
<whitequark> try this
<whitequark> >>> (-1>>1000000000)&1
<cr1901_modern> ... huh, it's "1"
<whitequark> a bigint is basically a tuple of (length, list_of_digits_of_length, which_digit_above_length)
<cr1901_modern> That was my follow-up. 'cept I thought a bigint library stored in chunks, so you had to store a state bit for each chunk to know where the end of the value was (but your approach works too)
<whitequark> it's using chunks, of course
<whitequark> i'm talking about the logical view
<whitequark> it doesn't actually matter what the implementation of that list is
* cr1901_modern nods
<Sarayan> interesting design
<whitequark> i'm not sure how else you would do it
<whitequark> this is just the generalization of 2's complement to infinite width
<whitequark> or arbitrary width rather
<Sarayan> yeah
<Sarayan> but the chunks aspect
<Sarayan> that's what's interesting
<whitequark> oh
<Sarayan> that means you can have 1 << 1e100 without blowing up?
<whitequark> instead of a naive list you'd use a packed bit vector
<whitequark> python can't do that
<Sarayan> oh ok
<whitequark> OverflowError: too many digits in integer
<cr1901_modern> 2*(googol/10) is a lot of digits
<cr1901_modern> that should be exponentiati- ya know what, I'm just gonna be quiet now.
<cr1901_modern> The limitation that Python can't parse signed ints makes sense in the context of bigints now
<Sarayan> no it doesn't
<cr1901_modern> how do you know what the digits toward the infinitie's place should be?
<Sarayan> 1 if negative, 0 if positive
<cr1901_modern> You can choose to use the value of the msb of your parsed int
<cr1901_modern> or assume 0
<cr1901_modern> both seem reasonable
<Sarayan> if it's unsigned it's 0, if it's signed it's sign-extension, like alreays
<cr1901_modern> Pretty sure C literals do the same thing
<cr1901_modern> you can't create a signed hex literal in C without "-" in front
<whitequark> Sarayan: this doesn't work for hex numbers
<whitequark> what if you want to parse a hex number that has only 15 bits? python doesn't know what the last bit is
<Sarayan> q means it's 8 bytes, 64 bits, period, I'd say
<Sarayan> I mean when you're going unpack, you're low-level already
<Sarayan> I'll admit the limitation for int(str, base) sure, but unpack i different
<Sarayan> is
<whitequark> yes, that's a problem for int
<whitequark> not unpack
<Sarayan> int can only do negative with an explicit '-', no problem with that
<whitequark> the reason unpack didn't work for you is because you didn't read the manual
<whitequark> >>> struct.unpack(">q", bytes.fromhex("D100110011001100"))
<whitequark> (-3386688227799723776,)
<whitequark> wrong endianness
<Sarayan> oh fuck
<Sarayan> didn't realize indeed
<Sarayan> it's stored little-endian, but going through hex makes it big-endian
mofh has quit [Read error: Connection reset by peer]
l_oliveira has joined ##yamahasynths
mofh has joined ##yamahasynths
<cr1901_modern> wb mofh :)
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Xyz_39808 has quit [Ping timeout: 260 seconds]