1,592 karma · joined June 15, 2023
> Note that I’m using the word “soundcard” very loosely here: in many cases sound hardware is onboard nowadays.
Mainstream computers haven't included "soundcards" (integrated onboard or otherwise) with any kind of built-in hardware synthesis (wavetable or FM) for nearly 30 years. What you have for hardware is mostly just a dumb digital to analog converter with some mixing features and possibly some basic canned DSP/codec functions.
> The point is your computer will have sounds you need built in.
> Whereas your computer’s sound hardware is likely to have a piano as a wave table instrument
They're going to be on the hard drive as files and synthesis is entirely in software, from which you have numerous options, including what comes with the OS. MacOS and Windows come with basic MIDI soundfont synthesizers, and on Linux you typically end up using something like fluidsynth or timidity tied to JACK/ALSA.
Hardware wave table synthesis as a usual thing is long gone (AC'97 is nearly 30 years old).
I don't think there is a straightforward way to portably configure and sequence MIDI and loopback the OS builtin synths if for some reason you don't want the audio going out the default sound device (yes, it is possible, key here is straightforward to configure programatically). What is relatively straightforward is using fluidsynth with a suitable soundfont though. Depending on what you're trying to accomplish you run a soft-synth entirely in the browser.
> You can then export your track as a WAV file and chop it up into individual notes using Audacity.
There are tons of freely available SF2 soundfonts, some with wide instrument coverage, some dedicated to single instruments with multiple layers, some very high quality (just google soundfonts). Poorly redigitizing and recreating one from the OS builtin soft-synth sounds like a waste of time.
No it doesn’t. If that were true dynamic linking would not be a thing, but it’s not even true in the most basic way either.
> Basically defined before use.
Also not true. But this is “not even wrong” since “before use” isn’t defined here, however if it is meant to be appears before in the input, then that is wrong.
> The one rule the linker needs is hey is this declared before you use it. That way the linker can eventually find the right code to call.
Because of the way C++ is defined this is somewhat true (not so much for incomplete types), but also a tortured avoidance of the compiler role (Translation phase 7) in the process, and really the meat of what is going on. I’d recommend someone just read cppreference first.
https://stackoverflow.com/questions/1410563/what-is-the-diff...
https://www2.law.ucla.edu/Volokh/rescue.htm
Duty to report are on the books, including in Massachusetts (ch 268 §40), requiring bystanders to report crimes, but not necessarily render aid. Duty to report laws are rarely enforced, which is what makes the Seinfeld setup more ironic. Although MA has one of the broadest duty to report laws (covering armed robbery and manslaughter in addition to sexual assault), the max penalty is a $2500 fine, but other states have jail time penalties. Duty to rescue is most always only for special relationships, such as parent/guardian/child, spouse, employer/employee, passenger, not random bystanders.
https://www.findlaw.com/legalblogs/law-and-life/in-which-sta...
No it is not.
https://github.com/LuaJIT/LuaJIT/issues/285#issuecomment-197...
> If your workload fits inside 2 GiB (IIRC) it will be fast.
This has nothing to do with the issue being mentioned here. You are understating the severity of this issue and seem to be confusing it with a different issue that is no longer relevant in 2.1.
Maybe I should say it is "still slow". Of course you can find examples of 5-10x over python performance (not that this is saying much), this is not the norm. There's just no way, PUC-Lua is still fundamentally dynamic hash tables for lookup with a big switch statement, there's a certain limit to how fast this can go. Let's just say there are plenty of game devs that have found that Lua quickly becomes too slow for the task it has been pressed into which then becomes an exercise of exporting more and more stuff to C++ or whatever. There is Luau of course, which sort of proves this point.
These interlanguage comparisons are mostly meaningless anyway. Python may be slow, but you do the heavy lifting in other ways and that ecosystem is huge. Since the Lua ecosystem is small though you are usually on your own. LuaJIT FFI is sorta cool, but wrapping can still be a PITA.
> Maybe you’re comparing it to AOT systems languages like C and C++? That’s obviously not fair.
Or C#/.NET/Java/Kotlin/JVM. Which you can often use as part of a plugin system.
> this is the first time I’ve heard someone claim it’s slow.
Quite ironic to say this, because I'm pretty sure this is why Mike Pall created LuaJIT in the first place. For example http://lua-users.org/lists/lua-l/2011-02/msg00742.html (but there are many other great in depth essays in the archive)
> LuaJIT is also one of the most advanced JIT compilers out there, frequently beating V8 and others.
No it's not these days. LuaJIT is awesome and may have been alien technology in 2005 but has a lot of missing functionality compared to the most advanced JIT implementations.
There were of course many examples of LuaJIT beating V8 on particular microbenchmarks through the years, and many of these are rehashed from over a decade ago and are outdated. I wouldn't say this means it "frequently" beats V8, especially in a practical sense.
Anyone that has much experience with LuaJIT and has stared at a few traces is aware of "NYI" - there is a ton of stuff that is not implemented in the JIT and means fallback to the interpreter, including even pedestrian uses of closures: https://github.com/tarantool/tarantool/wiki/LuaJIT-Not-Yet-I.... There is a ton of stuff that current V8 does to optimize real world larger applications that LuaJIT JIT will bail on.
LuaJIT does well when you write code in a particular style that exploits its strengths. It's not quite as amazing for general purpose use.
Elsewhere you suggest that a GC rewrite is actively being developed, but LuaJIT development has slowed tremendously, the mailing list is not very active and I wouldn't be holding my breath for anything major (this new GC has been talked about for well over a decade).
I think it’s gets about the right amount of credit. It isn’t obscure by any means, openresty is used quite a bit in odd places, so many games have used it. PyTorch (well what became it) was originally written in it (it was just torch but basically LuaTorch)
It doesn’t get more adoption because its warts and limitations really start to show once pushed into more into a “real” language. It doesn’t have the browser monopoly. It’s also quite slow, and LuaJIT doesn’t always magically fix that.
Gtk 1.2 did not really have great Win32 support, was basically a one man show primarily to get gimp to run on Windows. The Win32 backend took off after gtk2, there was more commercial push from Ximian to make it a cross platform toolkit via Gtk# as well. And it wasn’t dropped in 3 or 4, though it definitely has lost development steam as commercial interest in it and cross platform desktop GUI toolkits in general has flagged and consolidated.
Where the process really looks different to me is for large, extensive work, not the drive bys. Whether it should change is another debate, but I think the intentionality of gatekeeping narrative via process is oversold.
https://vt.social/@lina/112887550181123672
https://docs.google.com/document/d/1W2Vvwg0rwSVb5r4TQ_NmAF8S...
https://vt.social/@lina/112887550181123672
https://docs.google.com/document/d/1W2Vvwg0rwSVb5r4TQ_NmAF8S...
They pretty much straight up confirm the identity of Asahi Lina, so enough with the gaslighting that merely mentioning this (and having a totally reasonable discussion on contributor persona policies and sockpuppeting, which is what this is) is somehow unethical doxxing.
Most telephone interconnects will be at least 24 AWG, some short run cables may be 26 AWG (same as Cat 5). Really old interconnects will often be 22 and even as high as 18. And the thing is, these are usually worse from a high frequency transmission line standpoint as they weren’t designed for anything above 4khz voice.
Poor noise rejection, cross talk, poor loss characteristics, and inconsistent termination are the more challenging issues in pressing high speed out of the phone network.
Tcl had it’s web moment during the first dot com era within AOLserver.
Maybe some shit banks, but a decent bank like Ally will try to have the check delivered by the due date chosen (mailing out a few days prior). There isn’t much money to be made this way. If you knew they were always late you’d just adjust the date back anyway. Decent banks don’t play petty games like this.
For electronic payments the money is withdrawn similar to an ACH, for paper checks any reputable bank will withdraw the money only when the check is cashed.
Use a less shitty bank. For any reputable bank if the payment is made my paper mailed check the money is withdrawn only when the check is cashed.
2. Setup recurring bill pay for your check payment.
3. Setup recurring external transfer from your hipster bank to Ally or equivalent in step 1.
$6.99 isn’t worth replacing the above system that has another distinct advantage over this: you have two layers of cushion from your main account. My understanding is that this service will print your account details on the check. The “bill pay” services typically are not writing checks against your account, they withdraw the money and use their own account. Knowing the horror stories of intercepted checks that are cashed, this is not a triviality.
Unfortunately this very often it gets wrong, especially if it involves some multistep process.