Hi
Also ich habe mich auch mal damit auseinander gesetzt. Und das kam dabei raus
ich habe es wieder aus meinem Project raus genommen weil es nicht so funktioniert wie ich es mir erhofft hatte. es ist für Bass.dll feileicht kannst du damit etwas anfangen.
Delphi-Quellcode:
// Remove Vocal
type
PSample16 = ^TSample16;
TSample16 = record
data: Smallint;
end;
Procedure DSP_RemoveVocal_16Bit(DSPHandle: HDSP; Channel: DWORD; Buffer: PSample16; Length: DWORD; var User: DWORD); stdcall; export;
var
i: DWORD;
dmch: Smallint;
lch, rch: PSample16;
begin
try
i := 0;
lch := buffer;
rch := buffer;
Inc(rch);
while (i < length) do
begin
dmch := Trunc(((0 - lch.data) + rch.data) / 2);
lch.data := dmch;
rch.data := dmch ;
Inc(lch, 2);
Inc(rch, 2);
Inc(i, SizeOf(Smallint) * 2);
end;
except
//Error()
end;
end;
else
RvHandle:= BASS_ChannelSetDSP(Channel, @DSP_RemoveVocal_16Bit, 0, NumEQBands+3)
end
else
if RvHandle <> 0 then
if BASS_ChannelRemoveDSP(Channel, RvHandle) then
RvHandle:= 0;