Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#27

AW: Zuweisung der Hauptlautstärke

  Alt 30. Jan 2017, 15:46
Hallo Fangemeinde des musikalischen Hörgenusses,

ich bin kein Mathematiker und darum versuche ich es mal mit einfachen Worten zu erklären. Wenn man zwei Fader bzw. Werte (Volume rechts und links) mit einem einzigen Balance-Regler steuern will/muss/möchte dann ist das Maximum jeder Seite immer die Gesamtlautstärke und dann muss man ja nur noch abziehen:

Delphi-Quellcode:
procedure TFrmPlayer.BalanceChange(Sender: TObject);
var
  Vol, BalanceOffset, LeftVol, RightVol: Single;

  function CheckValue(const aValue: Single): Single;
  begin
    Result := aValue;
    if Result > 1.0 then Result := 1.0 else
    if Result < 0 then Result := 0;
  end;

begin
  Vol := GetMasterVolume;
  LeftVol := Vol;
  RightVol := Vol;
  BalanceOffset := Balance.Position * 0.01 * Vol; // Trackbar: Min = -100...Max = 100
  if BalanceOffset < 0 // Fader = links, Lautstärke rechts anpassen
  then RightVol := CheckValue(Vol + BalanceOffset) else
  if BalanceOffset > 0 // Fader = rechts, Lautstärke links anpassen
  then LeftVol := CheckValue(Vol - BalanceOffset);
  SetVolumeChannel(LeftVol, ch_LEFT);
  SetVolumeChannel(RightVol, ch_RIGHT);
end;
So funktioniert das zumindest bei mir. Die Adaption auf die Komponente dürfte dann wohl nicht mehr schwer fallen. HTH

Nachtrag: ch_LEFT und ch_RIGHT sind Konstanten die ich bei Bedarf vertauschen kann. Der User hat Ausgang-links => rechts angeschlossen
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS

Geändert von mm1256 (30. Jan 2017 um 16:55 Uhr)
  Mit Zitat antworten Zitat