Entwickler-Ecke

Multimedia / Grafik - Lautstärke einer *.wav Datei erhöhen


Raphael O. - Mi 01.01.03 23:05
Titel: Lautstärke einer *.wav Datei erhöhen
Wie kann ich die lautsärke einer wav-Datei erhöhen, die ich geladen habe, so wie es auch das Windows standard aufnahmegerät macht???
:?
Danke

Fiji-Fighter


Raphael O. - Mo 06.01.03 19:35

Weiss denn wirklich keiner etwas???
Kann ich mir nicht vorstellen bei den ganzen kompetenten Leutz hier :wink: :wink:
Sowas muss doch schonmal einer gemacht haben...
bräuchte nur den Quelltext...

Fiji-Fighter


matze - Mo 06.01.03 20:14

viellicht hilt dir das weiter: http://www.swissdelphicenter.ch/de/showcode.php?id=630


Raphael O. - Mo 06.01.03 20:24

ich glaube nicht...
in diesem "tutorial" wird doch nur die Ausgabelautstärke erhöht...

ich meinte die grundlautstärke einer wav datei so dass ich die ausgabe noch lauter machen kann, wenn die windows lautstärken schon alle voll aufgedreht sind...


Fiji-Fighter


tommie-lie - Mo 06.01.03 20:57

theoretisch musst du die Amplitude erhöhen, ohne die Frequenz zu ändern.
Also nimmst du jeden Frame in der Datei und multiplizierst ihn mit einer Zahl, die größer als 1 (kleiner als 1 für leise, aber nie kleiner als 0!) ist.
So. Jetzt musst du nur noch rausfinden, wie man die Wave-Datei zerpflückt. Also wie man die einzelnen Frames kriegt und deren native Amplitude.
Sowas dürfte man im Internet eher finden als das erhöhen der Lautsräke, falls du mit diesem stichwort bei Google und Co geschaut hast


Raphael O. - Mo 06.01.03 21:05

hatte schon gegoogelt und suche jetzt nochmal

schonmal danke...

Fiji-Fighter


USER 123 - Mo 13.01.03 22:43
Titel: Damit dürfte es funktionieren

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
unit uSoundMethods;

interface //Interface

uses MMSystem;

function fcnGetWaveVolume: DWord;
procedure pdrSetWaveVolume;

implementation //Implementation

{Liefert Lautstärke (WAVE) zurück
 Min Wert: 0
 Max Wert: 4294967295}
function GetWaveVolume: DWord;
var Woc : TWaveOutCaps;
    Volume : DWord;
begin
  result:=0;
  if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
       MMSYSERR_NOERROR then begin
    if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin
      WaveOutGetVolume(WAVE_MAPPER, @Volume);
      Result := Volume;
    end;
  end;
end;

{Setzt Lautstärke (WAVE) fest
 Min Wert: $00000000    Die ersten 4 Bits für linken Lautsprecher
 Max Wert: $FFFFFFFF    Die zweiten 4 Bits für rechten Lautsprecher
                        Links 0%, Rechts 100%: Volume := $0000FFFF
}
procedure SetWaveVolume(const AVolume: DWord);
var Woc : TWaveOutCaps;
begin
  if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
       MMSYSERR_NOERROR then begin
    if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
      WaveOutSetVolume(WAVE_MAPPER, AVolume);
  end;
end;
end.


(14.01. 09:34 Tino) Code-Tags hinzugefügt.


Raphael O. - Mo 13.01.03 22:50

:shock: WOW :shock:

Wenn das funktioniert...

auf jedenfall schonmal DANKE!!

Fiji-Fighter