• 1 Post
  • 458 Comments
Joined 1 year ago
cake
Cake day: February 10th, 2025

help-circle

  • My first ‘good’ computer was a Compaq (from Radio Shack!) 512MB RAM and a 10GB hard drive! It could run Windows 98 and Starcraft!

    Previously I had a 486dx with 64MB RAM and 512MB hard drive. We played qbasic games, like Snake and Gorilla, I shared a copy of Wing Commander with a friend (and hand copied the instruction booklet because the DRM at the time was that the game wouldn’t launch unless you could tell it what was the 5th word on the 3rd page or whatever).

    Later, I found a modem and was able to dial into BBSs to play MUDs. MajorMUD was the first I found, but they only let you do about 100 commands/day unless you paid ($15/month!).

    On the new PC we had dial-up from a local ISP and I could play MUDs via Telnet (or zMUD 5.55, the version who’s DRM broke and didn’t count down the 30 day free trial clock).

    We also used to have to fight off the dinosaurs on the way to school (which we walked to, barefoot, uphill in the snow) of course.





  • Yeah, setup a pi-hole container/server to do DHCP and disable it on your router. The documentation should cover it, but you have to use network_mode: host in order for it to do DHCP.

    You can then add an A record entry for your Immich server’s domain name pointing to the LAN IP and so any device on your LAN will resolve its domain to the LAN IP.

    You also get pi-hole DNS filtering/adblock and, probably, a larger DNS cache than what the router provides.


  • FauxLiving@lemmy.worldtoSelfhosted@lemmy.worldHairpin dns issue
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    3 days ago

    On your LAN DNS server (say, pi-hole), you could add an A record for your Immich’s domain name that points to the internal IP address so clients on your LAN would simply resolve the LAN IP instead of trying to do fancy NATing. Make sure your browser doesn’t try to do DNS over HTTPS, which would skip your local dns.

    Or you could run everything on a meshVPN like Tailnet. That way the (VPN) IP of the Immich server doesn’t change and the Tailnet will route the traffic over your LAN when your clients are local.





  • Can I put that in some config to make it stick?

    Make a file in pipewire.conf.d: ~/.config/pipewire/pipewire.conf.d/min-quantum.conf

    With this, replace the quantum with one you’ve found works best:

    context.properties = {
        default.clock.min-quantum = 512
    }
    

    Restart pipewire for it to take effect.

    I have two loopbacks (I like having music and games each grouped separately from other audio), an echo-cancel and a noise cancel (filter-chain with a single rnnoise node), all configured via .conf files. As an aside, is there a “best order” to chain echo cancel and noise cancel?

    Echo cancel seems to have a quantum/rate of 480/48000 across the board. Loopbacks, rnnoise and alsa_output (my headset) all have 0/0. I imagine it makes sense for the Loopbacks and rnnoise, but should it be something else for the main output?

    I have been doing echo-cancel -> rnnoise. That way echo cancel gets a clean stream to do what ever correlations that it needs to do and then rnnoise de-noises what is remaining.

    As far as the latency, I think it is because echo cancel needs a bit of a default wait in order to actually hear the sound coming out of your speakers (speed of sound is slow, smh) which is why I think that delay is there (though this is complete speculation, if someone knows better I’d love to know).

    The quantum of all of the devices is propagated through the chain so if you have echo cancellation in a graph then all everything will use at least its quantum (if there are not higher quantum objects in the chain). If a device doesn’t have a quantum, it’ll either use the min-quantum or the highest quantum of any node in the graph.

    Sounds like a compressor would be a good idea to have anyway. Is that also doable through the config? I’m not opposed to graphical tools, I just feel like working with the config directly is more educational. It’s also more prone to screwing things up, but that’s just bonus lessons on what not to do.

    I agree, learning the underlying system pays dividends.

    Any LADSPA filter will work as a node in pipewire. So the world is your oyster!

    This explains how to set it up better than I can here: https://forum.endeavouros.com/t/pipewire-filter-chains-normalize-audio-noise-suppression/31661

    Curiously, the reason I looked at echo-cancel in the first place is that Discord’s own echo fucks with things, cutting me out at times while also not cancelling the echo at others.

    Yeah, I’ve had similar experiences. I typically disable any sound processing done by the application and depend on my own plugins to handle that.


  • If it’s consistently breaking then your distro is messing up something. Bad defaults, broken scripts, etc.

    The problem is that the environment variables are expected to be there and they are not there.

    So, if you’re not doing something odd, then your distro is pushing misconfigurations or some other piece of software is interfering with your environmental variables. Whatever the vanilla setup for your distro is, it is not setup correctly.

    I do agree that it’s frustrating, just aim the ire in the right direction… whoever configured your system’s defaults.





  • That’s not a pipewire problem, that’s a systemctl problem.

    Failed to connect to user scope bus via local transport: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined

    The error means systemctl --user can’t reach your user’s D-Bus session because the required environment variables aren’t set. This typically happens when you’ve switched users via su or sudo rather than logging in directly, because htose don’t initialize a full systemd/PAM session. It could also be that your session wasn’t properly initialized by systemd-logind or a number of other things. Try spawning a proper user session:

    sudo machinectl shell your_username@
    

    and try the systemctl command again.


  • My pipewire seems to have issues with crackling audio and severely dampening my mic and I have no clue why.

    Pipewire’s default quantum (buffer size, effectively) is incredibly low, this is good for low latency audio but anytime your system is too busy to keep the buffers filled you get crackling.

    If you look at pw-top you’ll see all of your devices and nodes. The quant column is probably 1 or a very small number for the devices.

    You can increase the quantum with this command. This only lasts until pipewire restarts:

     pw-metadata -n settings 0 clock.min-quantum 512
    

    At a sample rate of 48000, this is roughly a 10ms buffer. 1024 is 20ms, etc. You want it as low as possible without getting crackling. Start with 512 and adjust from there (you don’t have to use a power of 2, a quantum of 1234 works just as well).

    severely dampening my mic and I have no clue why.

    By default pipewire doesn’t do any ‘mic boost’, as Windows calls it. You can get the same effect by raising the maximum volume.

    In your sound control panel you should be able to turn the mic up higher than 100%. In KDE Plasma, you can do this in System Settings -> Sound -> Configure Volume Controls… [top right button] -> Raise maximum volume.

    Alternatively, you can use EasyEffects to add a compressor. This will boost your mic volume and also prevent it from getting too loud

    Compressors basically reduce the dynamic range of an audio signal by attenuating loud sounds and boosting quieter ones, this would provide a better mix.

    Other useful plug-ins are noise canceling, (kills background noise) and echo canceling (lets you play sound out of your speakers which won’t get picked up by your mic). Sometimes apps, like Discord, will do this signal processing for you while others, like Signal, do no signal processing.




  • I was not actually presenting a scenario where my grandmother would use a VPN.

    I was pointing out that this community is full of people who are perfectly capable of learning to use a VPN. In response to this comment:

    Unfortunately, not everyone is tech-literate enough nowadays to understand how a VPN works, nor do they want to

    That’s a true statement about ‘everyone’ i.e. the entire population of the planet… but true about everyone here in this community.