ACS - Übersicht, Beispiele und Dokumentation -Wer kann helf

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

http://de.wikipedia.org/wiki/Samplingtiefe" onclick="window.open(this.href);return false;

Benutzeravatar
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:

Beitrag von af0815 »

John hat geschrieben:http://de.wikipedia.org/wiki/Samplingtiefe
Das beantwortet aber nicht meine Frage. Denn wenn du ein Wave hast, dann ist die Samplingtiefe festgelegt. Oder reden wir da aneinader vorbei ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

joa aber ich will diesen wert evtl. bekommen.
Geht das?

John

Christian
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:

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
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:

Beitrag von af0815 »

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.
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.

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).

Christian
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:

Beitrag von Christian »

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/

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Auf welche daten sollte ich dann zugreifen lassen wenn ich diese sinuswellen/ Amplituden erzeugen zu können?
property BitsPerSample : Integer read GetBPS; ???


John

Benutzeravatar
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:

Beitrag von af0815 »

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
John hat geschrieben:Ich habe eine .Wav(Bitspersample: 16bit, amplitude in 2erkomplementdarstellung), bei der ich die Samplingtiefen ermitteln will.
Sorry, aber irgendwie passt jetzt nichts mehr zusammen.

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).

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Ich will von einer vorhandenen Datei Infos. Nämlich die Infos die z.B. zum erzeugen dieser Sinuswelle nötig sind.


John

Christian
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:

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

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.
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.

John
Zuletzt geändert von John am Fr 4. Jan 2008, 23:48, insgesamt 1-mal geändert.

Christian
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:

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
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:

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
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:

Beitrag von Christian »

ach af hör doch ma auf er will keine fft das war von nfang an klar indicator mact was ganz anderes als er will.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Eigtl genau die antwort die ich suchte! danke! Eine Sache macht mich allerdings noch irgenwie stutzig:
Christian hat geschrieben: Mydata = ^array[0..0] of word;

MyData = Data;
Da weiß ich gerade iwie nicht genau mit was du meinst.


John

Antworten