ACS - Übersicht, Beispiele und Dokumentation -Wer kann helf
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Das beantwortet aber nicht meine Frage. Denn wenn du ein Wave hast, dann ist die Samplingtiefe festgelegt. Oder reden wir da aneinader vorbei ?John hat geschrieben:http://de.wikipedia.org/wiki/Samplingtiefe
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Leute, schaut euch doch mal die Klassen an die Meissten Eigenschaften sind doch selbsterklärend
property BitsPerSample : Integer read GetBPS;
property Position : Integer read FPosition;
{ Read this property to get the sample rate (sampling frequency) in Hz
for the input audio stream.
}
property SampleRate : Integer read GetSR;
{ Read Channles to determine the number of channels in the input audio stream.
Possible values are 1 (mono) and 2 (stereo).
}
property Channels : Integer read GetCh;
{ Read Size to determine the size of the input stream in bytes.
}
property Size : Integer read FSize;
1:1 aus den acs sourcen kopiert ist doch alles beschrieben.
property BitsPerSample : Integer read GetBPS;
property Position : Integer read FPosition;
{ Read this property to get the sample rate (sampling frequency) in Hz
for the input audio stream.
}
property SampleRate : Integer read GetSR;
{ Read Channles to determine the number of channels in the input audio stream.
Possible values are 1 (mono) and 2 (stereo).
}
property Channels : Integer read GetCh;
{ Read Size to determine the size of the input stream in bytes.
}
property Size : Integer read FSize;
1:1 aus den acs sourcen kopiert ist doch alles beschrieben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Deswegen habe ich nachgefragt, denn es könnte ja sein, das er die wirklich verwendete (ausgenutzte) Samplingtiefe wollte (Denn auch die ist in der Wiki beschrieben gewesen). Denn nur da helfen dir die eingebauten Methoden/Properties nichts.Christian hat geschrieben:Leute, schaut euch doch mal die Klassen an die Meissten Eigenschaften sind doch selbsterklärend
...
1:1 aus den acs sourcen kopiert ist doch alles beschrieben.
Ansonsten nehme ich an, das die Sourcen sowieso lesbar und verständlich sind. Zumindest in dem Bereich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Es ist auch in den Sourcen alles für Pasdoc dokumentiert man hat also die gesamte Doku in den Sourcen und kann diese auch mit PasDoc neu erstellen ich glaub aber ich hate sie auch in die Zip pakete mit reingepackt von daher versteht ich die Fragen teilweise überhaupt nicht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
John hat geschrieben:Auf welche daten sollte ich dann zugreifen lassen wenn ich diese sinuswellen/ Amplituden erzeugen zu können?
property BitsPerSample : Integer read GetBPS; ???
John
Sorry, aber irgendwie passt jetzt nichts mehr zusammen.John hat geschrieben:Ich habe eine .Wav(Bitspersample: 16bit, amplitude in 2erkomplementdarstellung), bei der ich die Samplingtiefen ermitteln will.
Willst du von einer vorhandenen Datei Infos haben oder selbst was erzeugen ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Hab ich dir schonmal erklärt aber da scheinen die rudimentärsten grundlagen zu fehlen beschäftige dich ersmal mit Tonerzeugung / Aufname / Widergabe an sich das scheinst du immernoch nich verstanden zu haben.
Eine Audioaufnahme besteht aus sog. Samples das sind einfach Werte die haben einen bestimmen Datenyp den bekommst du über BitsPerSample raus 16 bit wäre z.b. n Word.
Über die SampleRate bekommst du raus wie viele Samples pro sekunde es gibt.
Über Channels die Anzahl der Kanäle im einfachsten Fall 1 für Mono und 2 für Stereo.
Dami hast du alle infos die du brauchst um in dem Datenstrom das richtige Sample zu finden. Wenn du jetzt alle Samples hintereinander auf nen canvas zeichnest hast deine Welle, wenn du die auseinanderziehn wills musst linien dazwischen Zeichnen oder ne Interpolation nehmen.
Wenn du sie zusammenschieben willst musst Samples weglassen.
Zu dieser erkenntnis hätest aber in den 3 Wochen in denen du dich nun damit beschäftigst eigentlich selbst kommen müssen.
Eine Audioaufnahme besteht aus sog. Samples das sind einfach Werte die haben einen bestimmen Datenyp den bekommst du über BitsPerSample raus 16 bit wäre z.b. n Word.
Über die SampleRate bekommst du raus wie viele Samples pro sekunde es gibt.
Über Channels die Anzahl der Kanäle im einfachsten Fall 1 für Mono und 2 für Stereo.
Dami hast du alle infos die du brauchst um in dem Datenstrom das richtige Sample zu finden. Wenn du jetzt alle Samples hintereinander auf nen canvas zeichnest hast deine Welle, wenn du die auseinanderziehn wills musst linien dazwischen Zeichnen oder ne Interpolation nehmen.
Wenn du sie zusammenschieben willst musst Samples weglassen.
Zu dieser erkenntnis hätest aber in den 3 Wochen in denen du dich nun damit beschäftigst eigentlich selbst kommen müssen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Ja, zu dieser Erkenntnis bin ich ja auch schon lange gekommen, mein Problem ist auf den Datenstrom zuzugreifen zu können. Diese Ergebnisse habe ich auch schon alle. Und ich will jetzt die werte von den Samples finden. Hier liegt mein Problem.Christian hat geschrieben: Dami hast du alle infos die du brauchst um in dem Datenstrom das richtige Sample zu finden. Wenn du jetzt alle Samples hintereinander auf nen canvas zeichnest hast deine Welle, wenn du die auseinanderziehn wills musst linien dazwischen Zeichnen oder ne Interpolation nehmen.
Wenn du sie zusammenschieben willst musst Samples weglassen.
Zu dieser erkenntnis hätest aber in den 3 Wochen in denen du dich nun damit beschäftigst eigentlich selbst kommen müssen.
John
Zuletzt geändert von John am Fr 4. Jan 2008, 23:48, insgesamt 1-mal geändert.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
na GetData wird mi nem zeiger aufgerufen die Daten dahinter kanns jetzt einfach wie n array of word behandeln
Mydata = ^array[0..0] of word;
MyData = Data;
for i := 0 to Size do
Canvas.Pixels[i,MyData] := clBlue;
array iof word na. nur bei 16 bit Samplesize bei 8 array of byte.
Mydata = ^array[0..0] of word;
MyData = Data;
for i := 0 to Size do
Canvas.Pixels[i,MyData] := clBlue;
array iof word na. nur bei 16 bit Samplesize bei 8 array of byte.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
der acs_indicator macht alles was du suchst, nur holt der halt immer 1024 Einträge, legt ein Fenster drüber und anschliessend eine FFT um von der Zeitdomain in die Frequenzdomain zu kommen. Wenn du das weglässt, siehst du, wie die Einträge je nach Input zerlegt werden (1-2 Kanalig, 8 -16 Bit Werte).
Schaut zwar im ersten Moment etwas üppig aus, wenn man es sich aber Schritt für Schritt vornimmt, ist es gar nicht so schwer nachzuvollziehen.
Schaut zwar im ersten Moment etwas üppig aus, wenn man es sich aber Schritt für Schritt vornimmt, ist es gar nicht so schwer nachzuvollziehen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).