Comment régler le volume de windows automatiquement

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Mesa
Messages : 1098
Inscription : mer. 14/sept./2011 16:59

Re: Comment régler le volume de windows automatiquement

Message par Mesa »

Je dois rectifier une affirmation fausse de spock qui comme presque toujours a, à la fois tord et raison.
G-Rom a raison, le mieux c'est de faire ça en Hard !
par contre pour la pub, pas d'interet , car il compress le son , ils ne montent pas le volume
Si les pubs nous hurlent dans les oreilles, ce n'est pas parce que le diffuseur augmente le volume (les décibels n'augmentent pas) encore moins parce qu'il y aurait une quelconque compression (que vient faire la compression la dedans !) mais parce ce que ces satanés ingénieurs du son connaissent le fonctionnement de l'oreille humaine qui n'est pas linéaire mais logarithmique. L'oreille humaine perçoit mieux les fréquences de la voix qui se situent autour de 1 KHz. Les pubs sont donc fabriquées pour que leur spectre sonore se situe au maximum autour de cette fréquence. Et donc on les perçoit mieux et donc elle nous "cassent" les oreilles.

La prochaine fois que vous écouterez une pub, essayez d'identifier les graves et les aiguës, il n'y en a quasiment pas. Par contre, les musiques, les bruits comme les coup de feu, les claquement de portes, et bien sûr les voix tournent tous autour des 1000 Hz.
Si les pubs ne nous semblent pas monotones, c'est que les ingés-son sont très forts !

Pour plus d'info lire ici
https://fr.wikipedia.org/wiki/Psychoacoustique

par exemple ce passage:
Les modèles psychoacoustiques ont abouti à la construction de plusieurs modèles raffinés de la sonie, à finalité principalement environnementale. Si les tribunaux, dans la plupart des pays, utilisent principalement la mesure pondérée de la pression acoustique en dB (A) (décibel pondération A), et si depuis 2011 la télévision a mis en place une mesure simplifiée de son niveau sonore25, Zwicker (de), puis Stevens, ont élaboré des méthodes visant à s'approcher beaucoup plus de la perception auditive, au prix d'une analyse plus précise et d'un calcul plus compliqué26.

M.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment régler le volume de windows automatiquement

Message par nico »

Je cherchais comment changer le volume général pour Sapi et c'était sur le site, merci Spock. :roll: :)

@Micoute, est ce que ce n'est pas la fonction Loundness (égalisation) que tu cherches a mettre en oeuvre?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment régler le volume de windows automatiquement

Message par nico »

Oui et je vais rajouter les events dessus pour avoir les notications de changement de volume par l'utilisateur.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment régler le volume de windows automatiquement

Message par Shadow »

Bonsoir,

Se que veux Micoute je pense, est de faire en sorte que le programme ajuste automatiquement
en temps réel le volume globale de windows sur une vidéo ou une musique, un son etc.

Je parle pas sur la vidéo ou une musique ou un son directement...

Certaine vidéo, film, son, musique ne sont pas linéaire dans le volume du son.
Par exemple dans certain film, les dialogue son bas et la musique forte en comparaison.

Le programme surveille le niveau sonore.

Le programme dois alors augmenter le volume générale quand c'est les dialogues (Pour l'exemple) (Quand le son est au plus bas)
et diminuer celui-ci quand c'est la musique ou des effet spéciaux ou le niveau sonore est trop élevé.

Par exemple ont dis au programme la chose suivante:

Si le son est trop fort, par exemple au dessus de 50 décibel (Pour l’exemple)
Alors le programme baisse le son jusqu’à être dans une fourchette, ici donc ce serra env entre 45 et 50.

Mais si le son est trop bas, par exemple au dessous de 45 décibel (Pour l’exemple)
Alors le programme augmente le son jusqu’à être dans une fourchette, ici donc ce serra env entre 45 et 50.

Niveler le son en temps réel.
Je sais pas si je suis clair mais en gros c'est ça.

Ya aussi plusieurs barre sur le volume du son de windows.
Une barre grise et verte.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment régler le volume de windows automatiquement

Message par Micoute »

Oui, c'est bien résumé, c'est le principe de la contre réaction.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Re: Comment régler le volume de windows automatiquement

Message par Torp »

Hello,

VLC est capable de faire cela : http://www.pcastuces.com/pratique/astuces/3802.htm
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Comment régler le volume de windows automatiquement

Message par celtic88 »

ta demande est faisable avec la librairie "Bass.dll" et "basswasapi.dll" tu l trouve
ici avec les exemples
http://www.un4seen.com/
la dll "basswasapi.dll" permet d' obtenir le son des baffes et L'analyse du son Elle se fait par "Bass.dll" :)
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Comment régler le volume de windows automatiquement

Message par celtic88 »

Bonne chance.
.....i Love Pb :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment régler le volume de windows automatiquement

Message par nico »

Je ne pense pas que ça suffise, l'interface que tu as besoin est IAudioMeterInformation, voir ici sur le site de Microsoft, il y a un exemple d'utilisation:
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Comment régler le volume de windows automatiquement

Message par celtic88 »

Oki Essayez ce code :D

Code : Tout sélectionner

;////////////////////////////////////
;          Author Celtic88(c)
;///////////////////////////////////

IncludeFile "bass.pbi"
IncludeFile "basswasapi.pbi"

Debug Hex(BASS_WASAPI_GetVersion())

Procedure Get_Device_SPEAKERS()
  Protected info.BASS_WASAPI_DEVICEINFO ,DeviceiD=-1
  For ok=0 To 99
    If Not BASS_WASAPI_GetDeviceInfo(ok,@info) : Break : EndIf
    If info\flags & #BASS_DEVICE_ENABLED And info\flags &  #BASS_DEVICE_LOOPBACK And info\type &  #BASS_WASAPI_TYPE_SPEAKERS
      Debug PeekS(info\name,-1,#PB_Ascii)
      DeviceiD=ok
      Break
    EndIf
  Next
  ProcedureReturn DeviceiD
EndProcedure
Procedure LoWord(value)
  ProcedureReturn value & $FFFF
EndProcedure
Procedure HiWord(value)
  ProcedureReturn value >> 16 & $FFFF
EndProcedure
Procedure _CallBack_WASAPIPROC(*buffer, length.l, user.i)
  ProcedureReturn length
EndProcedure

DeviceiD=Get_Device_SPEAKERS()
If DeviceiD = -1
  Debug "Error Get_Device_SPEAKERS"
  End
EndIf

BASS_SetConfig(#BASS_CONFIG_UPDATETHREADS, 0)
If BASS_Init(0, 44100, #BASS_DEVICE_DEFAULT, 0,0)
  If BASS_WASAPI_Init(DeviceiD,0,0,#BASS_WASAPI_BUFFER,1.0,0.5,@_CallBack_WASAPIPROC(),1006)
    If BASS_WASAPI_Start()
      
      Repeat
        GetLevel=BASS_WASAPI_GetLevel()
        left_channel = LoWord(GetLevel)*100/32768 
        Right_channel = HiWord(GetLevel)*100/32768 
        
;         If left_channel Or Right_channel
;           Debug "left channel Level" + Str(left_channel)
;           Debug "Right channel Level" + Str(Right_channel)
;         EndIf
        
        If left_channel > 10 Or Right_channel > 10
          BASS_WASAPI_SetVolume(#BASS_WASAPI_CURVE_WINDOWS,0.10)
        ElseIf  left_channel < 5 And Right_channel < 5
          BASS_WASAPI_SetVolume(#BASS_WASAPI_CURVE_WINDOWS,0.05)
        EndIf
        Delay(100)
      ForEver
      BASS_WASAPI_Stop(1)
    EndIf
    BASS_WASAPI_Free()
  EndIf
  BASS_Free()
EndIf
Debug "Error "+Str(BASS_ErrorGetCode())
les dll avec les pbi télécharger ici
http://www.mediafire.com/download/mqlv2 ... i_bass.rar
.....i Love Pb :)
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment régler le volume de windows automatiquement

Message par Shadow »

Merci celtic88 :)
Mais moi rien ne se passe :(

Le programme se lance ok mais rien ne se passe, j'ai juste ça qui s'affiche:
2040102
VX248-C (NVIDIA High Definition Audio)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Comment régler le volume de windows automatiquement

Message par celtic88 »

Shadow a écrit :Merci celtic88 :)
Mais moi rien ne se passe :(

Le programme se lance ok mais rien ne se passe, j'ai juste ça qui s'affiche:
2040102
VX248-C (NVIDIA High Definition Audio)
ok essai avec ce code et dit moi l erreur qui te Reçoit

Code : Tout sélectionner

;////////////////////////////////////
;          Author Celtic88(c)
;///////////////////////////////////

IncludeFile "bass.pbi"
IncludeFile "basswasapi.pbi"

Debug Hex(BASS_WASAPI_GetVersion())

Procedure Get_Device_SPEAKERS()
  Protected info.BASS_WASAPI_DEVICEINFO ,DeviceiD=-1
  For ok=0 To 99
    If Not BASS_WASAPI_GetDeviceInfo(ok,@info) 
      Errcode=BASS_ErrorGetCode()
      If Errcode
        Debug "Error N : 1 Code : "+Str(Errcode)
      EndIf
    Break : EndIf
    If info\flags & #BASS_DEVICE_ENABLED And info\flags &  #BASS_DEVICE_LOOPBACK And info\type &  #BASS_WASAPI_TYPE_SPEAKERS
      Debug PeekS(info\name,-1,#PB_Ascii)
      DeviceiD=ok
      Break
    EndIf
  Next
  ProcedureReturn DeviceiD
EndProcedure
Procedure LoWord(value)
  ProcedureReturn value & $FFFF
EndProcedure
Procedure HiWord(value)
  ProcedureReturn value >> 16 & $FFFF
EndProcedure
Procedure _CallBack_WASAPIPROC(*buffer, length.l, user.i)
  ProcedureReturn length
EndProcedure

DeviceiD=Get_Device_SPEAKERS()
If DeviceiD = -1
  Debug "Error Get_Device_SPEAKERS"
  End
EndIf

errorp=0:Errcode=0
BASS_SetConfig(#BASS_CONFIG_UPDATETHREADS, 0)
If BASS_Init(0, 44100, #BASS_DEVICE_DEFAULT, 0,0)
  If BASS_WASAPI_Init(DeviceiD,0,0,#BASS_WASAPI_BUFFER,1.0,0.5,@_CallBack_WASAPIPROC(),1006)
    If BASS_WASAPI_Start()
      
      Repeat
        GetLevel=BASS_WASAPI_GetLevel()
        If GetLevel = -1
          Errcode=BASS_ErrorGetCode()
          errorp=5
          Break
        EndIf
        left_channel = LoWord(GetLevel)*100/32768 
        Right_channel = HiWord(GetLevel)*100/32768 
        
        If left_channel Or Right_channel
          Debug "left channel Level : " + Str(left_channel)
          Debug "Right channel Level : " + Str(Right_channel)
        EndIf
        
        If left_channel > 10 Or Right_channel > 10
          If Not BASS_WASAPI_SetVolume(#BASS_WASAPI_CURVE_WINDOWS,0.10)
            Errcode=BASS_ErrorGetCode()
            errorp=6
            Break
          EndIf
        ElseIf  left_channel < 5 And Right_channel < 5
          If Not BASS_WASAPI_SetVolume(#BASS_WASAPI_CURVE_WINDOWS,0.05)
            Errcode=BASS_ErrorGetCode()
            errorp=6
            Break
          EndIf
        EndIf
        Delay(100)
      ForEver
      
      BASS_WASAPI_Stop(1)
    Else
      Errcode=BASS_ErrorGetCode()
      errorp=4
    EndIf
    
    BASS_WASAPI_Free()
  Else
    Errcode=BASS_ErrorGetCode()
    errorp=3
  EndIf
  
  BASS_Free()
Else
  Errcode=BASS_ErrorGetCode()
  errorp=2
EndIf

Debug "Error N : "+Str(errorp)+" Code : "+Str(Errcode)
.....i Love Pb :)
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment régler le volume de windows automatiquement

Message par Shadow »

Je reçois ceci:
2040102
VX248-8 (NVIDIA High Definition Audio)
Error N : 6 Code : 37
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment régler le volume de windows automatiquement

Message par Shadow »

Hum, sujet vieux certes mais toujours pas eu se que je voulais hélas :(
J'ai demander à l'auteur mais pas de réponses !

PB peut régler le volume sonore mais ne peut pas renvoyer celui-ci....
Je ne sais pas ou chercher, je n'est rien trouver !

Il n'y à pas de langage ou de programme qui ferais ça ?
Un langage qui peut manipuler le signale sonore ?
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Répondre