PatrikZero's CS:GO Hearing protection

Overview

PatrikZero's CS:GO Hearing protection

Program that lowers volume when you die and get flashed in CS:GO.
It aims to lower the chance of hearing damage by significantly reducing overall sound exposure.
Uses game state integration. Anti-cheat safe.

This will not get you VAC banned 100% as it does not hook into the game in any sort of way.

Usage

  • Download from releases on the right side ->

  • Chrome / Windows might flag it as a dangerous file because it doesn't know what it is but don't worry, as it is open source you can compile the code for yourself if you don't trust the .exe!

  • Put "gamestate_integration_VolumeFix.cfg" into your "Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg"

  • Run the .exe

    • You can also change how much the volume gets lowered by changing the decimal in "volume.txt"
  • To turn it off just right click the icon in the system tray and Quit.

How to autostart with Windows

This is really simple and recommended!

  • Place the main folder where you will not delete it (e.g. C:/)
  • Create a shortcut of the executable
  • Press Win + R
  • Type "shell:startup"
  • Place the shortcut in the "Startup" folder that opens up

How it works

Its simple, it lowers the volume when it detects a death and returns the volume when you get to freezetime. This effectively means your volume will be low for everything (e.g. Deathmatch) except actual matches (competitive / casual) where there is freezetime. It also mutes the game when you get flashed so you don't hear the horrible high pitched noise. (It only mutes it for the same duration as the game does so no disadvantage)

It is VAC safe because it uses game state integration and it only changes the Windows sound mixer settings for CS. So it doesn't touch the game at all. Game state integration is the same thing Steelseries for example uses for their mice to change color when you kill someone etc.

Reasonings

Players play CS with dangerously high peak volumes because they want to hear steps correctly. The risk of hearing damage can be severely reduced if you limit your exposure by lowering your volume when you die.

Even if you think your volume doesn't hurt you trust me it might over a long period of time. It took me 9 years of playing to develop tinnitus and I was playing at a reasonable volume. (Judged by multiple non-gamers and me)

I am no expert but I suspect this is due to a build up of small periods of very high volume (Shooting, Flashes, Grenades, Bomb explosion, Dinks).

When you spectate your teammates you get a multiple of the sound exposure you would normally get because on average you are going to have one duel and die, after that you don't need your full listening volume. My limited testing so far showed that lowering volume after death can lower exposure by 50% even if you live most of the round because most of the fighting and loud noises happen late round. (Pro play)

To be added

  • Flash volume reduction
  • Keyboard toggle to switch between High / Low volume
  • Dink (Helmet Headshot) volume reduction
  • Toggle for the app (On system tray)

How to build to .exe

  • pip install pyinstaller
  • pyinstaller --onefile --noconsole --icon Icon.ico --name "PatrikZeros CSGO Sound Fix" main.py

Sources

  • In sources.txt
  • Thanks to mdhedelund, Simon Brunning and Mark Hammond.
Comments
  • pycaw has a dependency of enum34 which pyinstaller reject

    pycaw has a dependency of enum34 which pyinstaller reject

    The 'enum34' package is an obsolete backport of a standard library package and is incompatible with PyInstaller
    

    @patrikzudel what version of python you are using? I am on windows with 3.7 and use pywin32 to install pycaw/pyinstaller since pyinstaller cannot cross-compile.

    I made some changes so my max volume is 0.2 while low volume is 0.0 but stuck due to this package enum34 not accepted by Pyinstaller.

    Can you let me know your python version and other dependencies? Are you using Python <3.4 for this?

    Thanks.

    opened by coralsundy 4
  • New feature needed

    New feature needed

    This program is excellent. Now I can play CSGO much more comfortably than before. I am a player from China. Many players here are also very interested in this project(avoid being deaf at Dust2 A long :) ). Many players also hope this program can reduce the sound of being headshot, which is also very loud. And another thing is that many people are still worried about being VAC although it has almost been proved VAC safe. I sincerely hope this project can be verified by Faceit and Valve as soon as possible. Very thankful for your work for the CSGO community!!!

    opened by Terman-thr 2
  • set autostart not possible

    set autostart not possible

    C:\Users\mO\Documents\PatriZero-CSGO-Hearing-Protection>"Start with windows.bat" Have you put the folder somewhere where you will not delete it (C:/ or Documents) (Y/[N])?Y C:\Users\mO\AppData\Local\Temp\24049-1466-13614-1174.vbs(6, 1) WshShortcut.Save: Die Verknüpfung "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PatrikZeros CSGO Sound Fix.lnk" wurde nicht gespeichert.

    opened by moxbo 2
  • I couldn't make it work

    I couldn't make it work

    I downloaded the .zip, extracted it and ran the .exe but nothing happened in game but the icon appeared in the tray.

    I'd be thankful if anybody can help

    opened by trautSS 2
  • csgo.exe volume level doesn't return after death

    csgo.exe volume level doesn't return after death

    The sound mutes after dying, but doesn't return to the level before. I'm not sure what debugging information I could provide.

    The readme says "returns volume when you get to freezetime", so I thought cl_disablefreezecam "1" was interfering with it, but setting it to 0 doesn't work either... so I'm not sure what "freezetime" is? I would absolutely love if it worked regardless of "freezetime" or not since I would love to have this feature everywhere (and I'm extremely excited about fixing the dink noise).

    I was only using this so far in "deathmatch" mode, and as far as I can guess (according to the wording), maybe the volume lowers upon dying and stays that way in a deathmatch, until the round pause timer (like pre-round stuff), then returns it?

    I suppose with that understanding, my issue is generally: I wish the getting hit/getting killed volume was lowered in general :(

    opened by mgavin 1
  • [BUG] Tray icon stuck sometimes after exit csgo

    [BUG] Tray icon stuck sometimes after exit csgo

    Hi @patrikzudel,

    The program sometimes stuck in tray after exiting csgo. Right click on the tray icon will not respond. Need to use task manager to end process.

    I havent dig into the code yet, but think it is something within this block: https://github.com/patrikzudel/PatrikZeros-CSGO-Sound-Fix/blob/main/main.py#L88-L98

    As of now I have no video recording yet. If I somehow get it happen again will see if I can record the issue.

    Thanks.

    opened by coralsundy 1
  • fixed typos, improved usage guide

    fixed typos, improved usage guide

    Just minor fixes. I found the usage guide a little confusing, might have gotten it wrong but from the code in volume.py the volume.txt decimal is the value the volume is set to not reduced by.

    great work btw :)

    opened by jannemannX 1
  • Volume is high initially, but then is lowered and stays lowered after first death

    Volume is high initially, but then is lowered and stays lowered after first death

    First, thanks for developing this tool!

    Description

    I have noticed that initially when joining a game, the volume has a level of (say) 100%. Then, after the first death (I think that's what triggers it), the volume is lowered and stays low. Is there a way to re-raise the volume after death?


    (Edited) From the README:

    Its simple, it lowers the csgo.exe volume when it detects a death and returns the volume when you get to freezetime. This effectively means your volume will be low for everything (e.g. Deathmatch) except actual matches (competitive / casual) where there is freezetime.

    Hmm, this could be the issue. I recall that I notice it mostly when playing DM, which means there is no freezetime. This could be the reason why the volume is never reset (raised) after the first death.

    Question: IIRC, GSI data (game state integration) exposes the type of the current match, i.e., whether it is DM, competitive, etc. This would allow putting in conditional code that (a) keeps the current behavior when playing competitive matches vs. (b) does not change the volume when playing DM?

    Here's an example snippet from the map provider of GSI, which includes the game mode. Example values for mode are:

    • "competitive"
    • "deathmatch"
    • "custom"
    • "casual"
    • "cooperative"
    • "scrimcomp2v2"
    • "skirmish"
    • "survival"
    • "training"
    {
        "map": {
            "mode": "competitive", // <-- this entry
            "name": "de_mirage",
            "phase": "live",
            "round": 0,
            "team_ct": {
                "score": 0,
                "consecutive_round_losses": 0,
                "timeouts_remaining": 1,
                "matches_won_this_series": 0
            },
            "team_t": {
                "score": 0,
                "consecutive_round_losses": 0,
                "timeouts_remaining": 1,
                "matches_won_this_series": 0
            },
            "num_matches_to_win_series": 0,
            "current_spectators": 0,
            "souvenirs_total": 0
        }
    }
    

    In the current gamestate_integration_VolumeFix.cfg, the map provider is disabled: https://github.com/patrikzudel/PatrikZeros-CSGO-Sound-Fix/blob/9da2a8ae7c1d9dbcd5a5eb16d1279a2965379faa/dist/gamestate_integration_VolumeFix.cfg#L19

    Enabling the map provider should have minimal impact because its data volume is small. Also, I can confirm that the data from the map provider is not restricted to spectators-only, i.e., it is actually available in any situation (i.e., when playing, when observing, etc.).

    Environment

    The software version is 1.1 as of Jan 2022. OS is Windows 11.

    My settings:

    • Death volume 40%
    • Flash volume 10%
    • Bomb explosion volume 20%

    Related Issues

    • This might be related to or the same issue as https://github.com/patrikzudel/PatrikZeros-CSGO-Sound-Fix/issues/15. The issue description sounds similar.
    opened by miguno 0
  • unhandled exception in script

    unhandled exception in script

    Traceback (most recent call last): File "main.py", line 5, in File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module File "gamestate.py", line 3, in File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module File "volume.py", line 6, in UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 157: illegal multibyte sequence

    opened by 2832167832 0
  • unhandled exception in script

    unhandled exception in script

    Traceback (most recent call last): File "main.py", line 5, in File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module File "gamestate.py", line 3, in File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module File "volume.py", line 6, in UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 157: illegal multibyte sequence

    opened by 2832167832 0
  • Modified version that works with Linux mint

    Modified version that works with Linux mint

    This version is a super-fast coded version that is tested and working with linux mint. Should work with other distros too. Works when you run the main.py from terminal (no compiled version, no autostart with linux, no systray etch).

    Might contain bad python practices, fist time I ever tried to code in this language.

    Works similar as the windows version, it finds all the sinks (audio sources) that is connected to csgo, and changes the volume for them in the different situations.

    opened by Cookiebot1 0
  • Used to work good, stopped all of a sudden

    Used to work good, stopped all of a sudden

    I got to use it for a few days and all was fine, but one day I just opened it and it had no effects on the sound after getting flashed or dying, etc. I tried reinstalling both the program and csgo and still doesnt work at all anymore.

    opened by papinub2 1
  • Not working well

    Not working well

    I've been using this since it came out and occasionally the volume reduces when dead and won't rise again when starting a round. Sometimes only on the next round will it return to normal.

    opened by yellowmatter 2
  • Advanced Sound Filtering

    Advanced Sound Filtering

    This is beyond what is currently being done, but I was thinking a potential direction for this project could be to use the game integration hooks to enable a band pass filter on the CS audio stream that can attenuate high frequencies. Another option to clip volumes that exceed a certain threshold altogether. I envision this is a lot more work, but wanted to bring it up as an idea.

    Either way, this would entail a transformation on the actual audio stream. My VERY rudimentary research has put me onto using Windows Audio Processing Objects which I believe is something along the lines of what may be needed.

    Wanted to bring up this idea and see what your thoughts are.

    opened by MSamman 3
Releases(v2)
  • v2(Jan 28, 2022)

    Program that lowers volume when you die and get flashed in CS:GO.
    It aims to lower the chance of hearing damage by significantly reducing overall sound exposure.
    Uses game state integration. Anti-cheat safe.

    📖 Usage

    • Download and unzip PatriZero-CSGO-Hearing-Protection.rar
    • Chrome might flag it as a dangerous file because it doesn't know what it is but don't worry, as it is open source you can compile the code for yourself if you don't trust the .exe!
    • Put gamestate_integration_VolumeFix.cfg into your Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg
    • Run the .exe
      • You can also change settings in settings.txt. If you want to disable a feature just put the value to 1.00.
      • For example "flashVolume": 1.00 would not change the game volume when flashed. "flashVolume": 0.30 will set the volume to 30% when flashed.
    • To turn it off just right click the icon in the system tray and Quit.
      • Right clicking the system tray icon also shows current settings.

    🎯 How to autostart with Windows

    This is really simple and recommended!

    • Place the main folder where you will not delete it (e.g. C:/ or Documents)
    • Open Start with windows.bat
    • Its done!

    ⚡ Features

    • Adjustable volume reduction (settings.txt)

      • When you die
      • When you get flashed (High pitched flash noise)
      • When bomb explodes
    • System tray icon which shows settings

    • Easy way to autostart with Windows

    Read more

    Source code(tar.gz)
    Source code(zip)
    PatriZero-CSGO-Hearing-Protection.rar(24.54 MB)
  • Release(Jan 27, 2022)

    This is the initial release.

    Its simple, it lowers the volume when it detects a death and returns the volume when you get to freezetime. This effectively means your volume will be low for everything (e.g. Deathmatch) except actual matches (competitive / casual) where there is freezetime.

    Usage

    • Download "PatriZero-Soundfix-Flash-Mute.zip"

    • Chrome / Windows might flag it as a dangerous file because it doesn't know what it is but don't worry, as it is open source you can compile the code for yourself if you don't trust the .exe!

    • Put "gamestate_integration_VolumeFix.cfg" into your "Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg"

    • Run the .exe

      • You can also change how much the volume gets lowered by changing the decimal in "volume.txt"
    • To turn it off just right click the icon in the system tray and Quit.

    Source code(tar.gz)
    Source code(zip)
    PatrikZero-Soundfix-OLD.zip(10.48 MB)
    PatriZero-Soundfix-Flash-Mute.zip(10.48 MB)
    README.html(38.46 KB)
Owner
Patrik Žúdel
Just a student doing fun projects.
Patrik Žúdel
A python program for visualizing MIDI files, and displaying them in a spiral layout

SpiralMusic_python A python program for visualizing MIDI files, and displaying them in a spiral layout For a hardware version using Teensy & LED displ

Gavin 6 Nov 23, 2022
Generating a structured library of .wav samples with Python.

sample-library Scripts for generating a structured sample library with Python Requires Docker about Samples are written to wave files in lib/. Differe

Ben Mangold 1 Nov 11, 2021
A Python library and tools AUCTUS A6 based radios.

A Python library and tools AUCTUS A6 based radios.

Jonathan Hart 6 Nov 23, 2022
Sparse Beta-Divergence Tensor Factorization Library

NTFLib Sparse Beta-Divergence Tensor Factorization Library Based off of this beta-NTF project this library is specially-built to handle tensors where

Stitch Fix Technology 46 Jan 08, 2022
MelGAN test on audio decoding

Official repository for the paper MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis The original work URL: https://github.com

Jurio 1 Apr 29, 2022
We built this fully functioning Music player in Python. The music player allows you to play/pause and switch to different songs easily.

We built this fully functioning Music player in Python. The music player allows you to play/pause and switch to different songs easily.

1 Nov 19, 2021
A GUI-based audio player with support for a large variety of formats

Miza-Player A GUI-based audio player with support for a large variety of formats, able to play from web-hosted media platforms such as YouTube, includ

Thomas Xin 3 Dec 14, 2022
Sound-Equalizer- This is a Sound Equalizer GUI App Using Python's PyQt5

Sound-Equalizer- This is a Sound Equalizer GUI App Using Python's PyQt5. It gives you the ability to play, pause, and Equalize any one-channel wav audio file and play 3 different instruments.

Mustafa Megahed 1 Jan 10, 2022
This is a short program that takes the input from your microphone and uses OpenGL to draw a live colourful pattern

Visual-Music This is a short program that takes the input from your microphone and uses OpenGL to draw a live colourful pattern Installation and Setup

Tom Jebbo 1 Dec 26, 2021
Linear Prediction Coefficients estimation from mel-spectrogram implemented in Python based on Levinson-Durbin algorithm.

LPC_for_TTS Linear Prediction Coefficients estimation from mel-spectrogram implemented in Python based on Levinson-Durbin algorithm. 基于Levinson-Durbin

Zewang ZHANG 58 Nov 17, 2022
Anki vector Music ❤ is the best and only Telegram VC player with playlists, Multi Playback, Channel play and more

Anki Vector Music 🎵 A bot that can play music on Telegram Group and Channel Voice Chats Available on telegram as @Anki Vector Music Features 🔥 Thumb

Damantha Jasinghe 12 Nov 12, 2022
Pyroomacoustics is a package for audio signal processing for indoor applications. It was developed as a fast prototyping platform for beamforming algorithms in indoor scenarios.

Summary Pyroomacoustics is a software package aimed at the rapid development and testing of audio array processing algorithms. The content of the pack

Audiovisual Communications Laboratory 1k Jan 09, 2023
This Is Telegram Music UserBot To Play Music Without Being Admin

This Is Telegram Music UserBot To Play Music Without Being Admin

Krishna Kumar 36 Sep 13, 2022
A Python port and library-fication of the midicsv tool by John Walker.

A Python port and library-fication of the midicsv tool by John Walker. If you need to convert MIDI files to human-readable text files and back, this is the library for you.

Tim Wedde 52 Dec 29, 2022
A library for augmenting annotated audio data

muda A library for Musical Data Augmentation. muda package implements annotation-aware musical data augmentation, as described in the muda paper. The

Brian McFee 214 Nov 22, 2022
A lightweight yet powerful audio-to-MIDI converter with pitch bend detection

Basic Pitch is a Python library for Automatic Music Transcription (AMT), using lightweight neural network developed by Spotify's Audio Intelligence La

Spotify 1.4k Jan 01, 2023
SU Music Player — The first open-source PyTgCalls based Pyrogram bot to play music in voice chats

SU Music Player — The first open-source PyTgCalls based Pyrogram bot to play music in voice chats Note Neither this, or PyTgCalls are fully

SU Projects 58 Jan 02, 2023
Gammatone-based spectrograms, using gammatone filterbanks or Fourier transform weightings.

Gammatone Filterbank Toolkit Utilities for analysing sound using perceptual models of human hearing. Jason Heeris, 2013 Summary This is a port of Malc

Jason Heeris 188 Dec 14, 2022
❤️ Hi There Im Cozmo Music Bot A next gen powerful telegram group Music bot for get your Songs and music @Venuja_Sadew

🎵 Cozmo MUSIC 🎵 Cozmo Music is a Music powerfull bot for playing music on telegram voice chat groups. Requirements FFmpeg NodeJS nodesource.com Pyth

Venuja Sadew 3 Jan 08, 2022
All-In-One Digital Audio Workstation and Plugin Suite

How to install Windows Mac OS X Fedora Ubuntu How to Build Debian and Ubuntu Fedora All Other Linux Distros Mac OS X Windows What is MusiKernel? MusiK

j3ffhubb 111 Sep 21, 2021