Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   wie kann ich viele kurze töne schnell hintereinander spielen (https://www.delphipraxis.net/76369-wie-kann-ich-viele-kurze-toene-schnell-hintereinander-spielen.html)

dino 3. Sep 2006 09:07


wie kann ich viele kurze töne schnell hintereinander spielen
 
ich hab einen Sound in einer Listbox geladen(im Format:20kHz lauter tonhöhen, falls das jemand kapiert, was ich meine denn ich kenne die korrekte sprache dafür nicht).
Nun möchte ich jeden dieser Werte einzeln ne bestimmte Zeit lang abspielen.
Wenn ein ton hübsch nach dem anderen gespielt wird, sollte sich wieder der Ton ergeben.

Nur wie kann Delphi das?
(Ich möchte dies übrigens mit Delphi 5 programmieren)

sachen we beep oder sound, was es bei QBasic gibt, konnte ich nicht finden

Daniel B 3. Sep 2006 09:14

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Schau dochmal ob es aus der Unit SysUtils den Befehl gibt, der heisst einfach Beep;

Es gibt aber normal aus der Windows-Unit auch einen Beep Befehl, wo man auch die Freq. angeben kann.
Delphi-Quellcode:
function Beep(dwFreq: Cardinal, dwDuration: Cardinal): LongBool;
Oder gibts das bei Delphi3 nicht?

dino 7. Sep 2006 16:05

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
bin nun delphi 5 und da klappts nicht

CK_CK 7. Sep 2006 16:07

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Bei Delphi5 geht: Windows.Beep(...);

dino 7. Sep 2006 16:13

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
windows.beep(strtofloat('0,0049'),0.00000001);
oder wie?

Balu der Bär 7. Sep 2006 16:16

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Tippe doch einfach mal "Beep" ein, markier das Wort und drücke F1.

dino 7. Sep 2006 16:17

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
hab ich als erstes gemacht, hat mir aber nichts gebracht

dino 7. Sep 2006 16:22

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
übrigenskenne ich die Frequenz nicht :(

ich habe bloss einige Tausend ??? in meiner Listbox und wenn ich dieses schnell hintereinander spiele, gibts nen Ton

???: ich weiss nicht genau was ist, aber ich glaube das sind ne art Boxenstellungen. viele davon hintereinander bilden eine Kurve und viele davon hintereinander ergeben einen Ton

Balu der Bär 7. Sep 2006 16:23

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Delphi-Quellcode:
windows.Beep(800, 200);
Geht bei mir fehlerfrei.

dino 7. Sep 2006 16:31

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
ja, bei mir auch, aber das ist nicht mein Problem

Balu der Bär 7. Sep 2006 16:32

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Was ist denn dein Problem? :roll:

3_of_8 7. Sep 2006 16:44

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Ich glaube, er hat die Tonhöhen aus einer WAV-Datei und will die abspielen.

Tubos 7. Sep 2006 16:47

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Zitat:

ich weiss nicht genau was ist, aber ich glaube das sind ne art Boxenstellungen. viele davon hintereinander bilden eine Kurve und viele davon hintereinander ergeben einen Ton
Du meinst ein Sample.

3_of_8 7. Sep 2006 16:51

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Ein WAV spielt man mit dem MediaPlayer oder BASS ab.

dino 7. Sep 2006 17:12

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich kenne die Begriffe nicht, aber bei Goldwave kann man sich die Tonkurve ansehen und in einem sehr kurzen Intervall jede Graphlage(um 0 mehr oder weniger)als textdokument speichern, dieses Textdokument hab ich in delphi in eine listbox geladen, und wills nun 1.abspielen und 2. (aber das ist ein anderes Thema):interpretieren

beiliegend ein Textdokument, wo ein kurzer Ton vorkommt, wer ihn mit Delphi hörbar machen kann, weiss, wie es geht.

Aber es ist mein #Problem, und deshalb hoffe ich, ihr könnt mir ein wenig helfen

3_of_8 7. Sep 2006 17:20

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Warum so kompliziert? Das ist so, als würdest du zum Bäcker laufen und nebenbei nach Timbuktu gehen.

Speichere den Ton einfach als WAV und spiele ihn dann mit BASS ab. Wenn du ein Format wie in der Textdatei haben willst, dann extrahiere einfach aus der WAV-Datei die einzelnen Tonhöhen.

dino 7. Sep 2006 17:23

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
1. abspielen und 2.interpretieren!!!

ich muss den Ton analysieren, und dafür bringt mir WAV nichts.
ich könnte zwar beide Vormate parallel nutzen, aber wenn ich den ton höre, weiss ich noch nichts darüber...

in meinem Fall geh ich nur zum Bäcker, um den Weg nach Timbuktu zu erfahren

3_of_8 7. Sep 2006 17:28

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Nochmal: WAV benutzen und abspielen, zum Anzeigen WAV zerlegen, wie es das andere Programm tut.

dino 7. Sep 2006 17:30

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
ich will aber nicht zum Bäcker!!!
ich hab doch gerade geschrieben, dass ich wav und txt nebeneinander laufen lassen könnte, aber das bringt mir nichts.
mein Problem liegt nicht im Hören sondern im interpretieren, und wenn ich z.B. ne Möglichkeit finden würde die samples in Frequenzen umzuwandeln, dann kann ichs per beep abspielen und bin meinem hauptproblem auch noch ein gutes Stück näher

3_of_8 7. Sep 2006 17:35

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Dann schau mal in der Wikipedia nach zu dem Thema. Und beep ist 1. der interne Lautsprecher und 2. komplett ungeeignet um einen Klang abzuspielen.

Du willst zum Bächer, du weißt es nur nicht. ;)

Außerdem ist das Dateiformat, das dir vorliegt, komplett ineffizient bei längeren Klängen.

igel457 7. Sep 2006 17:56

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Das musst du einfach in eine WAV Datei schreiben.
Delphi-Quellcode:
procedure MakeSound(Duration{mSec}: Integer);
  {writes tone to memory and plays it}
var
  WaveFormatEx: TWaveFormatEx;
  MS: TMemoryStream;
  i, TempInt, DataCount, RiffCount: integer;
  SoundValue: byte;
  w: double; // omega ( 2 * pi * frequency)
const
  Mono: Word = $0001;
  SampleRate: Integer = 11025; // 8000, 11025, 22050, or 44100 <--Hier Samplerate einsetzen
  RiffId: string = 'RIFF';
  WaveId: string = 'WAVE';
  FmtId: string = 'fmt ';
  DataId: string = 'data';
begin
  with WaveFormatEx do
  begin
    wFormatTag := WAVE_FORMAT_PCM;
    nChannels := Mono;
    nSamplesPerSec := SampleRate;
    wBitsPerSample := $0032;
    nBlockAlign := (nChannels * wBitsPerSample) div 8;
    nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
    cbSize := 0;
  end;
  MS := TMemoryStream.Create;
  with MS do
  begin
    {Calculate length of sound data and of file data}
    DataCount := (Duration * SampleRate) div 1000; // sound data
    RiffCount := Length(WaveId) + Length(FmtId) + SizeOf(DWORD) +
      SizeOf(TWaveFormatEx) + Length(DataId) + SizeOf(DWORD) + DataCount; // file data
    {write out the wave header}
    Write(RiffId[1], 4); // 'RIFF'
    Write(RiffCount, SizeOf(DWORD)); // file data size
    Write(WaveId[1], Length(WaveId)); // 'WAVE'
    Write(FmtId[1], Length(FmtId)); // 'fmt '
    TempInt := SizeOf(TWaveFormatEx);
    Write(TempInt, SizeOf(DWORD)); // TWaveFormat data size
    Write(WaveFormatEx, SizeOf(TWaveFormatEx)); // WaveFormatEx record
    Write(DataId[1], Length(DataId)); // 'data'
    Write(DataCount, SizeOf(DWORD)); // sound data size
    {calculate and write out the tone signal} // now the data values
    w := 2 * Pi * Frequency; // omega
    for i := 0 to ListBox1.Count-1 do
    begin
      Write(StrToFloat(ListBox1.Items[i]),32);
    end;
    {now play the sound}
    sndPlaySound(MS.Memory, SND_MEMORY or SND_SYNC);
    MS.Free;
  end;
end;
Du musst halt ein wenig mit der Sample-Größe und der Frequenz spielen.

3_of_8 7. Sep 2006 18:40

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Man muss allerdings dazusagen, dass sich die Dateigröße in etwa verfünffacht bei diesem Format.

igel457 7. Sep 2006 18:46

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Zitat:

Zitat von 3_of_8
Man muss allerdings dazusagen, dass sich die Dateigröße in etwa verfünffacht bei diesem Format.

Ich frage mich überhaupt, für was man so ein Format braucht. Wer schreibt schon "per Hand" Sounds?

Was ich oben noch vergessen habe, ist dass du dir Duration noch ausrechnen musst. Und zwar mit SampleRate/SampleCount.

dino 7. Sep 2006 19:49

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
stellt euch vor, man gab mir einen richtig schönen sound und ich tat mir Arbeit an, um die Datenmengen zu verfünffachen, während die Tonqualität runter geht.
mir geht es wirklich nicht hauptsächlich um das hören, ich will aber verstehen, wie solche Werte einen Ton geben, und auch Delphi beibringen "Ja" von "Nein" zu unterscheiden

fwsp 7. Sep 2006 19:53

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
ein "sound", besser klang, entsteht, wenn eine menge an frequenzen interagieren. es ist nicht möglich daraus töne zumachen. jedenfalls nicht so, wie du dir das vorstellst. die musik kannst du so nicht entzaubern.

dino 7. Sep 2006 23:29

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Goldwave kann alle sampels(vertrau mal,dass die werte so heisse) schnell hintereinander spielen un daraus ergibt sich ein Ton.
Dass das nicht leicht ist, ist mir klar, aber wenn man sich ein wenig auskennt, müsste es doch Möglich sein aus den samples Frequenzen zu errechnen

3_of_8 7. Sep 2006 23:36

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Also ich bin 1. müde und hab 2. keine Ahnung.

Ich schreib jetzt hier trotzdem mal.

Ich glaube, dass diese Zahlen keine Töne sind, sondern die Oszillation des Lautsprechers/Mikrofons zu einem bestimmten Moment darstellen. Bei 44,1 kHz die Oszillation in 0,0226ms-Abständen. Du kannst daher also nicht einfach mithilfe von ein paar Sinustönen ein Geräusch abspielen, sondern du brauchst dazu nunmal eine Möglichkeit, diese Oszillationsdaten wiederzugeben. Du stellst dir das alles viel zu einfach vor.

grizzly 8. Sep 2006 07:11

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Wow: Bis gerade eben wußte ich gar nicht, daß man in GoldWave Sounddaten auch als ASCII ausgeben kann. Man lernt immer noch dazu.

Um alle Samples der Text-Datei "schnell hintereinander" abzuspielen ist es also am einfachsten folgendes zu machen:
1. Die Textdatei mit den Audiodaten (den Samples) in Goldwave laden.
2. Die Audiodatei als WAV abspeichern.
3. Die Wav Datei in Delphi mit SndPlaySound abspielen. (Ja, das ist wirklich nichts anderes als alle Samples (nicht Töne) in der angegebenen Geschwindigkeit schnell hintereinander abzuspielen)

Wenn es doch die harte Tour sein soll, dann funktioniert der Code von igel457 durchaus. Ein paar klitzekleine Anpassungen, eine Listbox und einen Button auf die Form, und ich konnte mir das Gezirpe auch mit Delphi anhören:

Delphi-Quellcode:
procedure TForm1.MakeSound;
  {Reads data from ListBox1, writes tone to memory and plays it}
var
  WaveFormatEx: TWaveFormatEx;
  MS: TMemoryStream;
  i, TempInt, DataCount, RiffCount: integer;
  SoundValue: byte;
  w: double; // omega ( 2 * pi * frequency)
  Sample: smallint;
const
  Mono: Word = $0001;
  // Eigentlich müßte man hier aus der ersten Zeile der Listbox die Infos zu Abspielfrequenz auslesen anstatt hart 22050 zu setzen
  SampleRate: Integer = 22050; // 8000, 11025, 22050, or 44100 <--Hier Samplerate einsetzen
  RiffId: string = 'RIFF';
  WaveId: string = 'WAVE';
  FmtId: string = 'fmt ';
  DataId: string = 'data';
begin
  with WaveFormatEx do
  begin
    wFormatTag := WAVE_FORMAT_PCM;
    nChannels := Mono;
    nSamplesPerSec := SampleRate;
    wBitsPerSample := $0010;
    nBlockAlign := (nChannels * wBitsPerSample) div 8;
    nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
    cbSize := 0;
  end;
  MS := TMemoryStream.Create;
  with MS do
  begin
    {Calculate length of sound data and of file data}
    DataCount := ListBox1.Items.Count-1; // sound data from Listbox
    RiffCount := Length(WaveId) + Length(FmtId) + SizeOf(DWORD) +
      SizeOf(TWaveFormatEx) + Length(DataId) + SizeOf(DWORD) + DataCount; // file data
    {write out the wave header}
    Write(RiffId[1], 4); // 'RIFF'
    Write(RiffCount, SizeOf(DWORD)); // file data size
    Write(WaveId[1], Length(WaveId)); // 'WAVE'
    Write(FmtId[1], Length(FmtId)); // 'fmt '
    TempInt := SizeOf(TWaveFormatEx);
    Write(TempInt, SizeOf(DWORD)); // TWaveFormat data size
    Write(WaveFormatEx, SizeOf(TWaveFormatEx)); // WaveFormatEx record
    Write(DataId[1], Length(DataId)); // 'data'
    Write(DataCount, SizeOf(DWORD)); // sound data size
    {calculate and write out the tone signal} // now the data values
    //w := 2 * Pi * Frequency; // omega
    DecimalSeparator := '.';
    for i := 1 to ListBox1.Count-1 do
    begin
     // Sample := round(StrToFloat(ListBox1.Items[i])*127)+128;
       Sample := round(StrToFloat(ListBox1.Items[i])*32767);
      Write(Sample,SizeOf(Sample));
    end;
    {now play the sound}
    sndPlaySound(MS.Memory, SND_MEMORY or SND_SYNC);
    MS.Free;
  end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.LoadFromFile('c:\temp\test-1.txt');
  MakeSound;
end;
Ich weiß nur nicht, ob es die MemoryStreams schon in Delphi3 gegeben hat...

Gruß
Michael

Edit 09.09.2006: vlees91 hat natürlich recht, das Aufruf von MakeSound erfolgt natürlich ohne Parameter. Hab' mal wieder zwei unterschiedliche Code-Zustände zusammenkopiert. Sorry.

vlees91 8. Sep 2006 16:26

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
MakeSound erwqartet bei dir doch keine Parameter?!

grizzly 9. Sep 2006 06:20

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Den Parameter hatte ich rausgeworfen, weil man die wichtigen Infos im gegebenen Fall eigentlich aus der ersten Zeile der Daten in der ListBox ("[ASCII 22050Hz, Channels: 1, Samples: 87556, Flags: 0]") holen müßte. Vielleicht hätte man der Prozedur auch gleich eine TStringList als Parameter übergeben können.
Aber all das hatte ich mir verkniffen. Ich wollte nur ganz flott mit igel457's Code etwas an meinen Lautsprechern hören. Nur um zu sehen, daß das ursprüngliche Problem eh schon lang gelöst war (3_of_8 WAV-Vorschlag oder igel457 ASCII to WAV Routine etc.) und die ganze nächtliche Diskussion in diesem Thread sich ein wenig verirrt hatte...

Gruß
Michael

Edit: (5 Minuten später...) Jetzt hab' ich es erst bemerkt, worauf vlees91 anspielt. In meiner Code-Kopie weiter oben war noch ein Parameter drin beim Aufruf von MakeSound. Ist natürlich Quatsch. Sorry. Mitternacht ist halt zu spät, aber 8 Uhr scheinbar auch zu früh...
Code editiert...

dino 10. Sep 2006 21:00

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
also den Vorgeschlagenen Quelcode werd ich mir noch paarmal ansehen, der rest war ziehmlich unnötig, weil ich schrieb, dass ich meine WAV-Dateien in GoldWave geladen hab und diese dann als Text gespeichert habe. Und: ich möchte mein mir selbst auferlegtes Problem möglichst selbst lösen (indem ich z.B. die samples in Frequenzen umrechne(welche ich für mein eigentliches Problem gut gebrauchen kann) und diese dann z.B. per Beep abspiele

3_of_8 10. Sep 2006 21:06

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
ARGH

Du kannst Samples nicht ohne weiteres in Frequenzen umrechnen.

dizzy 11. Sep 2006 00:19

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Um das weiter zu führen: Die Werte die du dort siehst, sind halt, wie oben schon mal beschrieben wurde, keine Frequenzangaben, sondern stellen sie die auszuführende Auslenkung der wiedergebenden Membran zum Zeitpunkt t relativ zum Nullpunkt dar. WIE schnell diese Werte hintereinander gesetzt werden, vermagst du dir evtl. grad nicht auszumalen. Bei einer Wave-Datei mit 44.1 kHz Sampleauflösung immerhin 44100 Werte pro Sekunde.
Die Frequenzen ergeben sich erst aus dem Hintereinanderabspielen eben dieser Werte (namentlich: Samples). Eine Frequenz ist ein Zeitphänomen, und kann nieeemals als Momentaufnahme betrachtet werden.
Du könntest allerhöchstens eine Menge an Samples nehmen, und mit Hilfe einer FFT diesen Abschnitt in seinen Frequenz- und Phasenraum überführen. Dann wirst du feststellen, dass da ganz erheblich mehr als nur eine Frequenz im Spiel ist, und zudem wichtig ist, wie phasenverschoben sie vorkommt. Das lässt sich im Leben nicht mittels "Beep" auch nur ansatzweise nachbilden. Vergiss es ganz einfach.

Was bei dir derzeit fehlt, ist die Unterscheidung von "Sample" und "Frequenz", bzw. deren Zusammenhang. Das sind 2 völlig verschiedene paar Schuhe. Analysen im Frequenzraum sind zudem meist nicht wirklich trivial, je nach dem, was man rausbekommen möchte. Aber mit ein bissi Textfile hier, und Beep da kommst du dahingehend vermutlich nicht allzuweit.

Grüß den Bäcker von mir :)

dino 11. Sep 2006 08:01

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
ausser das die Frequenzen ja auch verschiedene wellenlängen haben und somit nicht per beep wiedergegeben werden können, wusste ich alles schon.
aber ich glaube, dass sich in Punkto Wellenlänge und Ausschlag(Amplitude glaub ich) von Welle zu Welle nicht viel ändert, dann müsste man schon mit der kleinen Anzahl an Samples ungefähr den Frequenzverlauf errechnen lassen.(GoldWave kann dies schließlich auch)
ich weiß, es ist nicht leicht, aber es ist genau das, was ich tatsächlich brauche

dizzy 11. Sep 2006 14:23

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Ich würde echt gerne wissen, was du mit "Frequenzverlauf" meinst. Wenn du die Frequenzanteile über das gesamte Wave meinst, dann ist eine FFT das einzige was du brauchst. Und zwar nicht über ein Textfile, sondern du lädsts dein .wav-File, und hast alles was du brauchst, in einem effizienten Format. Hier in der DP hab ich irgendwo auch schon mal einen Loader für Wave Files geposted. Zur FFT findest du auch viel.
Falls nun wiedererwarten die FFT nicht ist was du suchst, würde ich mir wünschen, dass du dir zunächst über die Begrifflichkeiten im Klaren wirst, und dein Problem (bzw. Ziel(!)) nochmal in Ruhe komplett beschreibst, weil ich glaube, dass hier noch keiner so ganz verstanden hat wo du hin willst ;)

dino 16. Sep 2006 16:49

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
soweit ich weiss, ist die Frequenz für den ottonormalbürger die tonhöhe also die Wellenlänge (hast du die sinuskurve vor augen?) die amplitude(ausschlag nach oben und unten) ist die Lautstärcke(bei den Boxen sieht man, dass die noch stärcker vibrieren) nun habe ich meine samples und möchte mir eine Art sinuskurve achen, die aber wie gezwitscher nunmal aussieht keinerlei reelmässigkeiten hat sondern ganz chaotisch auf und ab geht.
wenn ich nun den graphen f(x)=tonhöhe zum zeitpunkt x kriegen könnte, wäre ich am Ziel.

Noch fragen?

3_of_8 16. Sep 2006 16:51

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
*seufz*

Ein Geräusch besteht nunmal nicht aus Sinustönen. Ein Geräusch hat an einer Position x nicht unbedingt eine spezifische Tonhöhe.

DGL-luke 16. Sep 2006 16:53

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
FFT, wie bereits gesagt. damit bekommst du genau das. Du kannst dir auch vom "BassPlayer" (such mal hier in der DP) die Visualisierungen ansehen, da sollte genau das gemacht werden, die Anzeige des aktuellen Frequenzspektrums.

Eine Tonhöhe abhängig von der Zeit gibt es übrigens äußerst selten, meist sind das viele Frequenzen. Kommt ganz drauf an, wie viele Kanäle/Instrumente im Stück sind. Wie genau das in der WAv abgespeichert ist, kann ich dir aber nicht sagen.

dino 16. Sep 2006 17:41

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
Liste der Anhänge anzeigen (Anzahl: 1)
zum ersten mal konnte ich immernochnicht herrausfinden, was fft sein soll und 2. müsste man anhand einiger Merckmale Fixpunkte der Kurve festmachen können(z.B. Wendepunkte) wenn man nun die einzelnen abstände berechnet und alle Abstände hintereinander als neuen graphen zeichnet, erhällt man dann nicht eine tonhöhenkurve?

(am besten würde es wahrscheinlich sein, wenn wir die möglichkeit hätten diese fagen anhand eines tones zu besprechen)

beiliegend eine visuallisierung eines tones

ok jetzt wo ich den ton gesehen habe, weiss ich, dass es nicht so einfach geht, nur irgendwie glaube ich, müsste es irgendwie Möglcih sein ganz grob eine durschnittliche Lautstärcken- und eine Tonhöhenkurve zu ersellen

DGL-luke 16. Sep 2006 18:11

Re: wie kann ich viele kurze töne schnell hintereinander spi
 
"Fast Fourier transformation", kann man sicher auch unter dem Kürzel FFT an vielen orten nachschlagen...

Mit der bass.dll kannst du dir afaik ein Array aus Fourier-Tabellen aus einer Sounddatei erstellen lassen. Diese repräsentieren das Frequenzspektrum der Datei und lassen sich zur Analyse oder zur Visualisierung des Sounds benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz