![]() |
Visualisierung des "Output-Streams"
Hi! Ich habe mal ne Frage:
Wie kann ich den "Ouput-Stream" visualisieren? ich denke da an sowas wie winamp. Habe mir die bass.dll angeguckt - allerdings glaube ich, dass die Visualisierung nur bei der wiedergabe von mediendateien mit der bass.dll funktioniert? :gruebel: n bissl aufklärung wäre supi ;) EDIT: Ich dachte da an sowas: ![]() die Orangenen balken da - halt nur für jeden sound, der kommt =) |
Re: Visualisierung des "Output-Streams"
Moin,
schau dir doch mal bei den Beispielen von der ![]() In meiner ![]() MfG Thorsten |
Re: Visualisierung des "Output-Streams"
habe mir das mal angeschaut - es entspricht aber nicht so ganz meinen vorstellungen
ich dachte da an etwas wie in der SampleVis-Demo zu sehenden Balken (richtig umschrieben :gruebel:) Nur, dass ich nicht eine bestimmte mp3-datei ausgeben lassen will, sondern generell alles, was über die soundkarte den weg zu meinen boxen findet =) [edit=Luckie]Push-Posting gelöcht. Bitte erst nach 24 Stunden pushen. Mfg, Luckie[/edit] |
Re: Visualisierung des "Output-Streams"
Zitat:
|
Re: Visualisierung des "Output-Streams"
Vielleicht hilft dir das
![]() |
Re: Visualisierung des "Output-Streams"
Hi
Du kannst das mit der BASS.dll machen. Kreiere dir en Rec. Channel
Delphi-Quellcode:
mit Timer
Var
FFT : array[0..1024] of float; Rec_Ch : HRECORD procedure TForm1.FormCreate(Sender: TObject); begin BASS_RecordInit(0); Rec_Ch := BASS_RecordStart(44100, BASS_SAMPLE_MONO, nil, 0); End procedure TForm1.FormDestroy(Sender: TObject); begin BASS_RecordFree(); Bass_Free; end;
Delphi-Quellcode:
Bass_ChannelGetData(Rec_Ch, @FFT, BASS_DATA_FFT2048); // Get the data
Der Rest ist das selbe wie in “SampleVis“. Und Schau dir mal die bass Hilfe an. |
Re: Visualisierung des "Output-Streams"
vielen dank! werde es mir mal anguggn =)
|
Re: Visualisierung des "Output-Streams"
Zitat:
Delphi-Quellcode:
Property WaveDevice : Integer Read FWaveDevice Write FWaveDevice Default WAVE_MAPPER;
Inkombatible Datentypen: 'Cardinal' und 'Integer'. |
Re: Visualisierung des "Output-Streams"
*push*
|
Re: Visualisierung des "Output-Streams"
*nochmal push*
weiss niemand rat? |
Re: Visualisierung des "Output-Streams"
Hi
Klappt es nicht mit der bass.dll? bei Interesse kann ich dir auch ne Demo Basteln. |
Re: Visualisierung des "Output-Streams"
Zitat:
mfg holle |
Re: Visualisierung des "Output-Streams"
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
Sag bescheid wen noch was ist. |
Re: Visualisierung des "Output-Streams"
@ Wishmaster
Hi, ich hab mir auch deine Datei als Vorlage genommen. Ich suche nur noch eine Funktion um auszulesen wie hoch der Pegel z.B. vom Mikrofoneingang ist. Damit, wenn ich etwas in das Mikrofon sage der Pegelwert steigt. Wäre nett wenn du mir da einen Tipp geben könntest wie ich darauf komme! Danke schon mal! |
Re: Visualisierung des "Output-Streams"
Hi
Kein Problem! In der Bass Hilfe findest du ne Funktion (BASS_ChannelGetLevel) damit sollte es gehen! Ich habe diese Funktion auch im LiveTest Demo benutzt, such mal in der Unit1.pas nach ThresholdRecorder + BASS_RecordStart Hier noch en Beispiel
Delphi-Quellcode:
procedure TAudioEngine.Get_VULevel(var L, R : Integer);
var VUCH : DWORD; L_VU, R_VU : integer; begin //The level ranges linearly from 0 (silent) to 128 (max). VUCH := BASS_ChannelGetLevel(channel); // 0 (silent) to 32768 (max). L_VU := LOWORD(VUCH); R_VU := HIWORD(VUCH); if (BASS_ChannelIsActive(channel) = BASS_ACTIVE_PLAYING) then begin L:= round(L_VU / 128) div 2; R:= round(R_VU / 128) div 2; end else begin L:= 0; R:= 0; end; end; procedure TForm.Timer_VUTimer(Sender: TObject); var L, R : integer; begin with AudioPlayer do begin Get_VULevel(L, R); Level_L.Position:= L; Level_R.Position:= R; end; end; |
Re: Visualisierung des "Output-Streams"
danke Wishmaster!
nur noch eine frage: wie kann ich den pegel einer einzelnen frequenz, also eines einzelnen balken in der visualisierung ermitteln? thanx holle. |
Re: Visualisierung des "Output-Streams"
*** push ***
keiner ne idee???? mfg holle |
Re: Visualisierung des "Output-Streams"
Hi
Zitat:
wen es nicht das ist was du meintest dann erkläre einwenig genauer was du machen willst Bzw. was das bewirken soll. Oder willst du die Position nach dB umrechnen dann müsste dir diese Funktion weiterhelfen.
Delphi-Quellcode:
function Vol2db(vol : integer) : string;
var ex,ex2 : extended; begin DecimalSeparator := '.'; if vol >0 then begin ex := RoundTo((20 * (log10(vol/100)) ),-1); // Ersetze die 100 durch Max wert ex2 := ex - Ceil(ex); if (ex2 = 0) then result := floattostr(ex) + '.0 dB' else result := floattostr(ex) + ' dB' end else result := '-oo dB'; end; |
Re: Visualisierung des "Output-Streams"
danke, aber es geht mir jetzt nicht um die gesamtlautstärke des audiosignals...
du hast doch dieses beispielprogramm geschrieben, in dem das audiosignal in eine art spektrum analyse umgewandelt wird und durch mehrere balken dargestell wird. ich möchte jetzt z. b. wissen, wie hoch der pegel der frequenz 1000 hz ist. also den ausschlag eines einzelnen balkens. thanx holle. |
Re: Visualisierung des "Output-Streams"
Zitat:
|
Re: Visualisierung des "Output-Streams"
He Danke das hat mir weiter geholfen!
|
Re: Visualisierung des "Output-Streams"
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank, hat mir sehr geholfen.
Ich wollte jetzt das Programm von Wishmaster nach meinem Geschmack abändern. Das eingangssignal soll in 10 Balken dargestellt werden. Es Funktioniert soweit auch alles ganz gut, es werden jedoch nur 2 Balken immer richtig dargestellt. Bei den restlichen bewegt sich nichts :/ Wisst ihr vielleicht wodran das liegen kann? Ich habe mein Programm mal angehangen. Thanx holle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 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