Line-In Eingang der Soundkarte
Übersicht

![]() |
JPDBetreff: Line-In Eingang der Soundkarte |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ... gibt es ne Möglichkeit, das Audiosignal am Line-In der Soundkarte irgendwie in Brauchbare Informationen umzuwandeln? Also, zum Beispiel eine db-Anzeige ... Komm einfach nicht dahinter wie das gehen soll ... bin schon 3 Monate am basteln 8)
Währe dankbar für jede Hilfe ... |
||
![]() |
Buddha |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also so weit ich weiß dürfte das nicht gehen da das ja noch digital ist und db kann man dann nur direkt an den boxen messen. | ||
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das signal am ausgang is immer gleich stark, vermute ich mal, nur an den boxen wird dieses eben geschwächt/gestärkt.
ich glaube auch nicht, dass sowas geht. |
||
www.drachengarde.tk
Guckst da Hier |
![]() |
JPDBetreff: Line-In |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na ja .... so viel zum Thema ... Das Signal welches am Line-In Eingang anliegt, müsste man doch irgendwie auf dem Bildschirm z.B. als Oszillosgramm sichtbar machen können ...
Ich weiß nur nicht, wie man das ins Blitz reinbekommt .... |
||
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das geht vielleicht mit einer dll, aber selbst wenn du es schaffen würdest denke ich immernoch, dass das signal immer gleich wäre, die lautstärke oder so ändert sich ja net, das machst du ja eben an den lautsprechern.
hab ich das etwa falsch verstanden? ![]() |
||
www.drachengarde.tk
Guckst da Hier |
![]() |
JPDBetreff: Line-In |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr versteht mich glaub falsch ... DB-Anzeige ist glaub nicht so das richtige Wort. Ich meine eher folgendes:
Ein Signal liegt am Line-In-Eingang der Soundkarte Ich kann das Signal als Oszillosgramm am Bildschirm darstellen ... Ich kann dann mein Signal als Pegelanzeige auf dem Monitor darstellen ... ![]() nicht erst als Datei aufnhemen, sondern das ganze Live anzeigen ... ich hoffe ihr versteht nun was ich mein ![]() mfg JPD |
||
StephanBetreff: Buffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich weiß genau was du meinst. Du willst ein Programm machen was den Line-In Eingang an deiner Soundkarte "audiovisualisiert". Dazu musst du glaube ich die Daten sofort in eine temporären Datei-Buffer schreiben. Der Füllstand des Buffers müsste einen Wert zwischen 0 und 255 zurückgeben. 255 sind ca. 3 Volt am Line-In-Eingang. Ich hoffe, meine Antwort stimmt soweit, denn ich es selbst noch nicht probiert. Ich habe mich aber informiert. Bitte, Stephan (14) und tschüss. |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
DAs ergebniss brauche ich auch ganz dringend!
https://www.blitzforum.de/view...t=bass+dll Ich hatte es so versucht, über die Win API den Mic eingang und dann über die Bass.dll wieder ausgeben, kam aber nicht der gewünschte effekt! kann bitte jemand helfen? für alle, die kein Mic daheim haben, man kann den eingang auf line- Out legen! |
||
between angels and insects |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Decls findest du hier https://www.blitzforum.de/viewtopic.php?t=3915
Was mit WaveOut zu tun hat kannste ja entfernen ... Code: [AUSKLAPPEN] ;Braucht User Declares WinMM.decls Graphics3D 800,600,16,2 SetBuffer FrontBuffer() Const WAVE_INVALIDFORMAT = $000 ;invalid forma Const WAVE_FORMAT_1M08 = $001 ;11.025 kHz,Mono, 8-bit Const WAVE_FORMAT_1S08 = $002 ;11.025 kHz,Stereo, 8-bit Const WAVE_FORMAT_1M16 = $004 ;11.025 kHz,Mono, 16-bit Const WAVE_FORMAT_1S16 = $008 ;11.025 kHz,Stereo,16-bit Const WAVE_FORMAT_2M08 = $010 ;22.05 kHz,Mono, 8-bit Const WAVE_FORMAT_2S08 = $020 ;22.05 kHz,Stereo, 8-bit Const WAVE_FORMAT_2M16 = $040 ;22.05 kHz,Mono, 16-bit Const WAVE_FORMAT_2S16 = $080 ;22.05 kHz,Stereo,16-bit Const WAVE_FORMAT_4M08 = $100 ;44.1 kHz,Mono, 8-bit Const WAVE_FORMAT_4S08 = $200 ;44.1 kHz,Stereo, 8-bit Const WAVE_FORMAT_4M16 = $400 ;44.1 kHz,Mono, 16-bit Const WAVE_FORMAT_4S16 = $800 ;44.1 kHz,Stereo,16-bit Const WAVE_FORMAT_PCM = $001 Const WHDR_DONE = $001 Const WHDR_PREPARED = $002 Const WHDR_BEGINLOOP = $004 Const WHDR_ENDLOOP = $008 Const WHDR_INQUEUE = $010 WaveFmt = CreateBank(18) PokeShort WaveFmt,00,WAVE_FORMAT_PCM ; FormatTag PokeShort WaveFmt,02,1 ; Channels PokeInt WaveFmt,04,11025 ; SamplesPerSec PokeInt WaveFmt,08,11025 ; AvgBytesPerSec | BlockAlign * SamplesPerSec PokeShort WaveFmt,12,1 ; BlockAlign | (Channels * BitsPerSample) / 8 PokeShort WaveFmt,14,8 ; BitsPerSample PokeShort WaveFmt,16,0 ; ExtraDataSize ;--------------------------------------------------- WavInData = CreateBank(360) ;--------------------------------------------------- WaveHeadIn = CreateBank(56) PokeInt WaveHeadIn,00,AddressOf(WavInData) ; lpData PokeInt WaveHeadIn,04,360+2 ; 514 ; dwBufferLength PokeInt WaveHeadIn,08,0 ;dwBytesRecorded; Daten im Puffer nach der Aufnahme PokeInt WaveHeadIn,12,0 ;DWORD dwUser; Benutzerdefinierte Daten PokeInt WaveHeadIn,16,0 ;DWORD dwFlags; dwFlags: DWord; Informationen über den Puffer: ;WHDR_BEGINLOOP 4 (L) Erster Puffer in der Schleife, nur für Ausgaben. ;WHDR_DONE 1 (L) Puffer ist abgearbeitet, Rückkehr zur Applikation. ;WHDR_ENDLOOP 8 (L) Letzter Puffer in der Schleife, nur für Ausgaben. ;WHDR_INQUEUE 10h (L) Puffer liegt zum Abspielen in der Warteschlange. ;WHDR_PREPARED 2 (L) Puffer wurde durch waveInPrepareHeader,waveOutPrepareHeader vorbereitet. PokeInt WaveHeadIn,20,2 ;DWORD dwLoops; dwLoops: DWord; Anzahl der Wiederholungen, nur bei Ausgaben. PokeInt WaveHeadIn,24,0 ;struct wavehdr_tag *lpNext; lpNext: PWaveHdr; Reserviert, in Pascal ein PWaveHdr. PokeInt WaveHeadIn,28,0 ;DWORD reserved; reserved: DWord; Reserviert. ;--------------------------------------------------- WaveHeadOut = CreateBank(56) PokeInt WaveHeadOut,00,AddressOf(WavInData) ; lpData PokeInt WaveHeadOut,04,360+2 ;dwBufferLength PokeInt WaveHeadOut,08,0 ;dwBytesRecorded; Daten im Puffer nach der Aufnahme PokeInt WaveHeadOut,12,0 ;DWORD dwUser; Benutzerdefinierte Daten PokeInt WaveHeadOut,16,0 ;DWORD dwFlags; dwFlags: DWord; Informationen über den Puffer: ;WHDR_BEGINLOOP 4 (L) Erster Puffer in der Schleife, nur für Ausgaben. ;WHDR_DONE 1 (L) Puffer ist abgearbeitet, Rückkehr zur Applikation. ;WHDR_ENDLOOP 8 (L) Letzter Puffer in der Schleife, nur für Ausgaben. ;WHDR_INQUEUE 10h (L) Puffer liegt zum Abspielen in der Warteschlange. ;WHDR_PREPARED 2 (L) Puffer wurde durch waveInPrepareHeader,waveOutPrepareHeader vorbereitet. PokeInt WaveHeadOut,20,0 ;DWORD dwLoops; dwLoops: DWord; Anzahl der Wiederholungen, nur bei Ausgaben. PokeInt WaveHeadOut,24,0 ;struct wavehdr_tag *lpNext; lpNext: PWaveHdr; Reserviert, in Pascal ein PWaveHdr. PokeInt WaveHeadOut,28,0 ;DWORD reserved; reserved: DWord; Reserviert. ;--------------------------------------------------- IN Device Cls WaveCaps = CreateBank(48) Dim Device(waveInGetNumDevs()) Dev=0 For I = 0 To waveInGetNumDevs() - 1 waveInGetDevCaps(I,WaveCaps,48) If PeekInt(WaveCaps,40) And WAVE_FORMAT_1M08 Then For C = 8 To 39 Char = PeekByte(WaveCaps,C) If Char = 0 Then Exit ProductName$ = ProductName$ + Chr$(Char) Next Print "(" + Str$(Dev) + ") " + ProductName$ ProductName$ = "" Dev = Dev + 1 Device(Dev) = I EndIf Next FreeBank WaveCaps If Dev = 0 Then Print "Can't find a Input sounddevice!" WaitKey : End EndIf DevUsed=0 ;Repeat ; DevUsed = Input("Select a device(0-" + Str$(Dev - 1) + "): ") ;Until DevUsed => 0 And DevUsed <= Dev - 1 DevUsed = Device(DevUsed) DevHandleIn = CreateBank(4) waveInOpen(DevHandleIn,DevUsed,WaveFmt,0,0,0) If PeekInt(DevHandleIn,0) = 0 Then Print "Can't open input wavedevice!" WaitKey End EndIf DebugLog "waveInStart " + waveInStart(PeekInt(DevHandleIn,0)) DebugLog "waveInPrepareHeader " + waveInPrepareHeader(PeekInt(DevHandleIn,0),WaveHeadIn,BankSize(WaveHeadIn)) ;--------------------------------------------------- OUT Device Cls WaveCaps = CreateBank(48) Dim Device(waveOutGetNumDevs()) Dev=0 For I = 0 To waveOutGetNumDevs() - 1 waveOutGetDevCaps(I,WaveCaps,48) If PeekInt(WaveCaps,40) And WAVE_FORMAT_1M08 Then For C = 8 To 39 Char = PeekByte(WaveCaps,C) If Char = 0 Then Exit ProductName$ = ProductName$ + Chr$(Char) Next Print "(" + Str$(Dev) + ") " + ProductName$ ProductName$ = "" Dev = Dev + 1 Device(Dev) = I EndIf Next FreeBank WaveCaps If Dev = 0 Then Print "Can't find a Output sounddevice!" WaitKey : End EndIf DevUsed=0 Repeat DevUsed = Input("Select a Output device (0-" + Str$(Dev - 1) + "): ") Until DevUsed => 0 And DevUsed <= Dev - 1 DevUsed = Device(DevUsed) DevHandleOut = CreateBank(4) Playing=CreateBank(4) PokeInt Playing,0,-1 waveOutOpen(DevHandleOut,DevUsed,WaveFmt,0,Playing,0) If PeekInt(DevHandleOut,0) = 0 Then Print "Can't open output wavedevice!" WaitKey End EndIf DebugLog "waveOutPrepareHeader " + waveOutPrepareHeader(PeekInt(DevHandleOut,0),WaveHeadOut,BankSize(WaveHeadOut)) DebugLog "waveOutSetVolume " + waveOutSetVolume(DevUsed,$ffffffff) ;Volle Lautstärke Links und Rechts = Hi & Low Word ;----------------------------------------------------- SetBuffer BackBuffer() Global campiv=CreatePivot() Global cam=CreateCamera() CameraRange cam,1,10000 CameraZoom cam,2 ;von oben PositionEntity cam,0,3000,1 PointEntity cam,campiv,0 EntityParent cam,campiv ;PositionEntity cam,0,0,-2500 ;von vorne AmbientLight 32,32,32 Dim Light(4) For i=1 To 4 Light(i)=CreateLight(3) LightRange Light(i),750 LightConeAngles Light(i),60,120 PositionEntity Light(i),0,250,0 If i=1 Then LightColor Light(i),255,0,0 If i=2 Then LightColor Light(i),255,128,64 If i=3 Then LightColor Light(i),0,255,0 If i=4 Then LightColor Light(i),0,0,255 Next Local w# Global plane=CreatePlane(4) PositionEntity plane,0,-500,0 Global kugel1=CreateSphere(32):ScaleEntity kugel1,1000,1000,1000:RotateMesh kugel1,60,0,0 Global kugel2=CreateCube():ScaleEntity kugel2, 500, 500, 500 EntityAlpha kugel1,0.5 ;EntityAlpha kugel2,0.9 EntityShininess kugel1,0.5 EntityShininess kugel2,0.5 EntityBlend kugel1,3 ;EntityBlend kugel2,2 PositionEntity kugel1,0,-120,0 ;PositionEntity kugel2,0,-120,0 EntityFX kugel2,1 tx3=LoadTexture("Beton.jpg",1+8) ;<----------------- eigene TEXTURE ScaleTexture tx3,1024.0,1024.0 tx2=CreateTexture(256,256,1+8+16+32) tx1=LoadTexture("Water.bmp",1+8) ;<----------------- eigene TEXTURE EntityTexture kugel1,tx1 EntityTexture kugel2,tx2 EntityTexture plane,tx3 eEffekt=CreateCylinder(8,1):ScaleMesh eEffekt,6.0,200.0,6.0:PositionMesh eEffekt,0,MeshHeight(eEffekt)/2,0 EntityAlpha eEffekt,0.8 EntityShininess eEffekt,0.5 EntityBlend eEffekt,3 ;EntityFX eEffekt,16 EntityColor eEffekt,255,255,255 RotateMesh eEffekt,90,0,0 HideEntity eEffekt Dim eEntitys(359) Dim eEntitysX#(359) Dim eEntitysZ#(359) Local r#=1000.0 Local x#,z# piv=CreatePivot() db=0 For w=0.0 To 359.0 x=Sin(w)*(r+20) z=Cos(w)*(r+20) eEntitys(w)=CopyEntity(eEffekt) PositionEntity piv,x,500,z x=Sin(w)*r z=Cos(w)*r PositionEntity eEntitys(w),x,0,z eEntitysX(w)=x eEntitysZ(w)=z PointEntity eEntitys(w),piv,0 ;If db=1 Then HideEntity eEntitys(w) db=1-db Next FreeEntity piv TurnEntity Light(1),0,0,0 TurnEntity Light(2),0,89,0 TurnEntity Light(3),0,179,0 TurnEntity Light(4),0,269,0 EntityParent Light(1),eEntitys(0 ),1 EntityParent Light(2),eEntitys(89 ),1 EntityParent Light(3),eEntitys(179),1 EntityParent Light(4),eEntitys(269),1 ;----------------------------------------------------- ClsColor 0,0,0 Color 255,255,0 Local smx=GraphicsWidth()/2 Local smy=GraphicsHeight()/2 Local px=0 Local ps# w=0 tp#=0 ;----------------------------------------------------- While Not KeyHit(1) waveInAddBuffer(PeekInt(DevHandleIn,0),WaveHeadIn,BankSize(WaveHeadIn)) ;Musik vom Micro in den Buffer holen ;If (PeekInt(WaveHeadOut,16) And 1)=1 Then waveOutWrite(PeekInt(DevHandleOut,0),WaveHeadOut,BankSize(WaveHeadOut)) ;PokeInt WaveHeadOut,16,$10 ;EndIf ;----------------------------------------------------- ;TurnEntity eEffekt,1,0,0 CameraViewport cam,0,0,256,256 RenderWorld CopyRect 0,0,256,256,0,0,BackBuffer(),TextureBuffer(tx2) CameraViewport cam,0,0,GraphicsWidth(),GraphicsHeight() RenderWorld For i=0 To 359 Step 1 ps=128-PeekByte(WavInData,px) ;ps=-32 ScaleEntity eEntitys(i),1.0+Abs(ps)/8.0,1.0+Abs(ps)/8.0,0.1+Abs(ps/10.0) ;PositionEntity eEntitys(i),eEntitysX(i)+Sin(i)*(-ps*4.0),0,eEntitysZ(i)+Cos(i)*(-ps*4.0) PositionEntity eEntitys(i),eEntitysX(i),0,eEntitysZ(i) ;MoveEntity eEntitys(i),0,0,-Abs(ps*20.0) TurnEntity eEntitys(i),0,0,ps/10.0 TurnEntity eEntitys(i),0,ps/10.0,0 TurnEntity eEntitys(i),ps/10.0,0,0 px=px+1:If px>359 Then px=0 Next RotateTexture tx1,w w=w+1:If w>360 Then w=w-360 ;PositionTexture tx2,-tp,-tp PositionTexture tx3,-tp,0 tp=tp+0.001:If tp>1.0 Then tp=tp-1.0 TurnEntity kugel2,.1,0.5,.2 ;TurnEntity campiv,.1,0.5,.2 Delay 20 Flip 0 If KeyHit(31) Then SaveBuffer BackBuffer(),"musikbox.bmp" ;----------------------------------------------------- Wend ;----------------------------------------------------- Speicher wieder FREI geben ! DebugLog "waveInReset " +waveInReset(PeekInt(DevHandleIn,0)) DebugLog "waveInUnprepareHeader " +waveInUnprepareHeader(PeekInt(DevHandleIn,0),WaveHeadIn,BankSize(WaveHeadIn)) DebugLog "waveInClose " +waveInClose(PeekInt(DevHandleIn,0)) DebugLog "waveOutReset " +waveOutReset(PeekInt(DevHandleOut,0)) DebugLog "waveOutUnprepareHeader " +waveOutUnprepareHeader(PeekInt(DevHandleOut,0),WaveHeadOut,BankSize(WaveHeadOut)) ;in WaveHeadOut Flags erstmal nicht $10 benutzen DebugLog "waveOutClose " +waveOutClose(PeekInt(DevHandleOut,0)) FlushKeys ;WaitKey End ;----------------------------------------------------- Function AddressOf(Bank) Local Address = CreateBank(4),RetValue RtlMoveMemory(Address,Bank+4,4) RetValue = PeekInt(Address,0) FreeBank Address Return RetValue End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group