Autor Beitrag
Querkopf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Di 25.03.03 19:36 
Hallo,

wenn ich den Code der Schweizer

www.swissdelphicente...showcode.php?id=1086

benutze, erfolgt bei einem Test leider ein Fehler an folgender Stelle :

ausblenden Quelltext
1:
2:
3:
4:
5:
  Rslt := mixerGetLineControls(Mixer, @MixerLineControls, 
    MIXER_GETLINECONTROLSF_ONEBYTYPE); 
  if Rslt <> 0 then 
    raise Exception.CreateFmt('Can''t find peak meter control (%d)', 
      [Rslt]);


Es ist natürlich kein Fehler im Quelltext, ich würde nur gerne wissen, wie ich das Programm dazu bringe, einen Peakmeter Control zu finden.

Wenn jemand eine andere Möglichkeit kennt, wie ich die Lautstärke eines WaveOutDevice herausbekomme, wäre ich ebenfalls dankbar. Allerdings *nicht* die Lautstärke, die eingestellt ist in der Lautstärkeregelung, sondern den jeweils aktuellen Pegel z.B. einer Wave- oder mp3-Datei.

Ich sollte das bis Samstag hinbekommen haben, denn Discolichter per Zufall (oder Programm, was auch noch nicht in mein Proggie implementiert ist) zu schalten, ist nut beschränkt Party tauglich :wink: .

I hoff, mr ko gholfa wärra. Danksche
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Fr 28.03.03 18:10 
Ich glaube, das geht mit WaveIn. Man muss halt in der Systemsteuerung den Eingang auf Loop stellen.

Ich habe da ein Beispiel namens "WaveIn Beispiel von Jérôme Thormann", du solltest mal googeln.

Mit WaveIn kann man den Pegel nicht direkt lesen, sondern nur aufnehmen und dann auswerten. Dürfe aber deinen Anforderungen genügen.

PS: Mach dir nix draus... Ich habe 'nen SB Audigy für über 100€, und selbst mit der Karte funzt's nicht (wie du es oben beschreiben hast). WaveIn geht immer.

_________________
Life is a bad adventure, but the graphic is really good!
Querkopf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Sa 29.03.03 11:03 
Hallo

danke für Deine Antwort, das mit WaveIn klappt gut, ich habe nur ein Problem damit: es ist sehr schnell beim maximalen Ausschlag. D.h. ich müsste in der Lautstärkeregelung die Lautstärke des WaveIn auf fast 0 machen, damit sich eine benutzbare Kurve ergibt. Das Leiserstellen wiederum ergibt natürlich keinen guten Klang, wenn man den OutPut mit einer Anlage verstärkt.

Weisst Du da vielleicht Rat?

Gruss, Pierre
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 29.03.03 11:48 
Nee, das check' ich jetzt nicht. Ganz langsam: Die maximale Amplitude ist dir also zu hoch? Wenn das so ist: Hier das PCM-Format:

8-Bit: Die Daten bestehen aus "unsigned Byte", also BYTE. Du müsstest den Wert durch 128 Teilen und 1 abziehen (mit Gleitkomma!). Dann wären 1.0 und -1.0 maximale Amplitude, 0.0 wäre halt nix.

16-Bit: "signed Word", also SmallInt. Amplitude durch $7FFF teilen. Amplitude 1 oder -1 = vollausschag.

Oder leigt das Prob wo anders, ich versteh die Frage nicht so ganz...

Ich würde dir übrigens ein anderes Format empfehlen, als in der Demo (44.1kHz, 16Bit, Mono): es langt eine Samplingrate von ~8000, da du ja nur die Beats brauchst. Außerdem langen 8-Bit Mono locker. Außer du willst diene Lichteffekte in Stereo ;-)

PS: Heute ist Samstag... Ranhalten!

_________________
Life is a bad adventure, but the graphic is really good!
Querkopf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Sa 29.03.03 12:41 
Hi

Ich hab mir den Wert von PArrayBuf(hdr.lpData^[0] und ^[i] ausgeben lasssen ausgeben lassen

ausblenden Quelltext
1:
2:
form2.Canvas.MoveTo(0,PArrayBuf(hdr.lpData)^[0]);
for i:=0 to hdr^.dwBytesRecorded-1 do form2.Canvas.lineTo(round(r*i),PArrayBuf(hdr.lpData)^[i]);


ich versuchs mal mit deinem Hinweis, danke
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: So 06.07.03 20:02 
Hallo,

sorry, dass ich dir damals nicht helfen konnte. Hast du's hingekriegt? Wie dem auch sei, ich habe mich jetzt mal in das Thema vertieft, und einen ganz tollen, aber simplen Peak-Meter gecodet, der auf WaveIn basiert, also immer tun sollte. Wenn du willst, schicke ich dir das Delphi-Projekt per eMail. Es "mittelt" die Werte (Stereo), so dass sie nicht so schnell auf- und abspringen. Dei Samstag ist rum, aber villeicht interessiert es dich ja immer noch.

_________________
Life is a bad adventure, but the graphic is really good!
Querkopf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31

Win XP SP2
Turbo Delphi 2006 Explorer
BeitragVerfasst: Mo 07.07.03 15:54 
Hi

ja gerne, hatte nur die letzten 3 Monate aufgrund meines Studíums nicht mehr die Zeit mich weiter um das Projekt zu kümmern, da ich andere Programme fürs Studium schreiben musste, die teilweise ziemlich zeitraubend waren. Deswegen habe ich mich erstmal nicht weiter mit diesem Thema beschäftigt. Also, ich bin natürlich weiter daran interessiert, ich hatte es auch schon auf ähnlicher Weise probiert, war aber leider nicht sehr erfolgreich, also wenns mit deiner Version funktioniert, wäre prima, eMail steht ja unten.

Gruss und danke im Voraus, Pierre
torstenheinze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: Sa 27.09.03 18:32 
@Andreas

könntest du mir das programm auch senden?
das wäre sehr net, denn ich höcke auch über so einem problem



meine email: torsten.heinze.de@web.de
MenthalMan
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 20.11.03 22:05 
Titel: mir bitte auch...
Hi Sorry das ich jetzt erst etwas zu diesem Thread schreibe aber ich hatte mich die tage mit dem gleichen Qulltext ausseinander gesetz und bin zu keinem Brauchbaren ergebnis gekommen.

Ich bin schon fast am verzweifeln :(

MenthalMan@t-online.de
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Do 20.11.03 22:22 
Hallo,

welcher Code: das mit dem Mixer oder mit WaveIn? Wenn du WaveIn meinst, da könnte ich dir die neue Version meines VuMeters emailen! Eigneltich sollte der schon auf meiner neuen Homepage sein, aber FTP tut grade nicht, die haben Serverprobleme...

Wie dem auch sei: Wenn du es über den Mixer machen willst: Das ist Hardwareabhängig, ich denke mal, das können die wenigsten Soundkarten (ich weiß es nicht genau). Also auch VÖLLIG ungeeignet, wenn du das im Internet publizieren Willst. Mit WaveIn() ist das zwar einiges schwieriger, aber es tut auf JEDEM Rechner.

_________________
Life is a bad adventure, but the graphic is really good!
GIGI
Hält's aus hier
Beiträge: 8

Win2003 Server Enterprise, Suse Linux 9.1
D6 Prof, D7 Enterprise, Kylix 3 Enterprise/Open Edition
BeitragVerfasst: Do 27.11.03 21:07 
Titel: Datei Fehlt
@Andreas Pfau
Hi ich hab mir das Peak Meter von deiner Hompage geladen aber da fehlt die datei vumeter.dcu

Währe sehr net wenn du mir die Datei per E-Mail senden könntest
GigerlMartin@web.de
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Do 27.11.03 22:10 
Hallo,

:oops: peinlich :oops:

Aber Danke, dass du micht drauf hingewiesen hast. Ich habe da die falsche Unit miteingebunden. Einfach nochmal neu runterladen, ist jetzt up2date.

Ich habe einfach nur die PAS eingebunden, die DCU braucht man nicht, es soll ja OpenSource sein.

PS: Toll, dass ich mal Hits auf der Site kriege... sag, wurde alles korrekt dargestellt? Browser sind meine ärgsten Feinde...

_________________
Life is a bad adventure, but the graphic is really good!
GIGI
Hält's aus hier
Beiträge: 8

Win2003 Server Enterprise, Suse Linux 9.1
D6 Prof, D7 Enterprise, Kylix 3 Enterprise/Open Edition
BeitragVerfasst: Sa 29.11.03 12:27 
Ich benutze leider nur den IE 6.0 aber mit dem hat alles funktioniert
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 29.11.03 12:51 
Hallo,

macht ja nix, wenigstens es klappt - und die Downloads funktionieren....

_________________
Life is a bad adventure, but the graphic is really good!
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: Sa 29.11.03 13:21 
mit der bass.dll kann man auch schön eine Visualisierung realisieren

www.delphipraxis.net...p;highlight=bass+dll

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.