![]() |
rand und Random Delphi
Hallo
Wieder mal ich ;)
Code:
In dieser schleife werden zufällige WaveDaten generiert.
{
Random rand = new Random(); int x = 0; for (int i = 0; i < 1024; i++) { audioData[x] = (byte)rand.Next(0, 127); audioData[x + 1024] = (byte)rand.Next(128, 255); x++; } } Wie könnte ich diese nach Delphi übersetzen in verbindung mit Random bzw. ist das mit Random überhaupt zu verwirklichen ? Da Random ja nur über einen parameter verfügt. gruss Emil |
Re: rand und Random Delphi
Hallo Emil,
first try:
Delphi-Quellcode:
Freundliche Grüße
const
N = 1024; AMP = 128; var i: Integer; begin Randomize; for i := 0 to Pred(N) do begin audiodata[i] := Random(AMP); audiodata[i + N] := Random(AMP) + AMP end; end; |
Re: rand und Random Delphi
Zitat:
Danke mal wieder für deine Supi Hilfe. Gruss Emil |
Re: rand und Random Delphi
Nochmal ein kleines mit FFT :mrgreen:
EDIT: Übersetzt bis auf rand
Delphi-Quellcode:
dann kann ich testen..
function GetFreqData(audioData: array of byte): boolean;
Var fft : array of single; stepValue : single; val : single; begin SetLength(fft, 1024); stepValue := 1.0 / 1024; Randomize; for i := 0 to Length(fft) do begin val := (float)rand.Next(0, (1024 / 2)) * stepValue; fft[i] := val; end; for i := 1 to 1024 do begin try val := fft[i] * 255; if (val < 0) then val := 0; if (val > 255) then val := 255; audioData[i] := byte(val); audioData[i + 1024] := byte(val); except Result := false; end; Result := true; end; end; Sorry mit einigen sachen komme ich noch nicht zurecht. gruss Emil |
Re: rand und Random Delphi
Hallo Emil,
ich bin spät dran und du hast das bestimmt lösen können, aber trotzdemhier mein Versuch:
Delphi-Quellcode:
Randomize() darfst du aber nur einmal beim Start der Anwendung aufrufen, z.B. im OnCreate() der MainForm oder im Projektquelltext vor dem Eintritt in die Nachrichtenschleife. Nicht dass dir sonst der Himmel auf den Kopf fallen würde, aber der mehrmalige Aufruf von Randomize() kann unschöne Auswirkungen auf die Pseudo-Zufälligkeit der generierten Zahlen haben.
uses
Types; procedure GetFreqData(var audioData: TByteDynArray); var i: Integer; n, range: Word; b: Byte; begin n := Length(audioData) shr 1; range := SizeOf(b) shl 8; for i := 0 to Pred(n) do begin b := Random(range); audioData[i] := b; audioData[i + n] := b; end; end; Nebenbei: War audioData nicht ein array of ShortInt? Freundliche Grüße |
Re: rand und Random Delphi
Hallo marabu
Werde mir den Thread mal als PDF herunterladen. Allerdings hat sich der Thread schon erledigt da ich diese abfrage nur temporär benötigt habe. Da mein Sample jetzt fertig ist kann ich reale Daten übergeben und auswerten. Trotzdem Danke für deine Infos. Kann sie sicher noch brauchen ;) gruss EMil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz