Sound vor der Soundkarte "abgreifen"?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Sound vor der Soundkarte "abgreifen"?

Beitrag von gnasen »

Hi ersma,

Ich weiss nicht, ob ich es so ausdrücken kann, dass ihr wisst was ich meine.
Ich habe mich gefragt ob es möglich ist, den Sound, den zB ein Programm erzeugt und an die Soundkarte schickt, abzuhören.

Würde ich ein Prog schreiben, was zB die Sounddatei bsp.mp3 abspielt, müssten die Daten ja an die Soundkarte übermittelt werden. Ist es nun möglich genau dies rauszufinden?

Wenn es einen Weg gibt, soetwas (oder ähnliches) in PB zu realisiseren, wäre ich für jeden Tipp dankbar.

Wenn dies ein Ding der Unmöglichkeit oder kaum realisierbar ist, kann der Post gerne auch gelöscht werden.

mfg gnasen
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

Beitrag von Max_der_Held »

armer mensch... dir antwortet auch keiner mehr...

ich denke, des währ auch für den bildschirm nicht schlecht.. ( beispiel Fraps)
..
um zu deiner frage zu kommen:
warscheinlich gehts nur mit inlineASM von pb..
irgendso hardware interrupts, oder den soundkartenbuffer lesen...
such vielleicht mal da. ?

:wink:
viel glück
kutta
Beiträge: 40
Registriert: 04.07.2005 09:48

Beitrag von kutta »

Hi,
ich weiß nicht genau was du meinst.
hier ist mal ein kleines beispiel mit der fmodex.dll
dazu musst du dir noch die fmodexinclude von froggerprogger runterziehn
hier: http://www.2mal2mal.de/public/purebasic ... /fmodex.pb
und die fmodex.dll
hier: http://www.fmod.de/
alles in einen ordner und testen

Code: Alles auswählen

IncludeFile  "fmodex.pb"
Init_FMOD() 

FMOD_System_Create(@fmodsystem) 
FMOD_System_Init(fmodsystem, 32, 0, 0) 
str.s = OpenFileRequester("Choose a soundfile", GetClipboardText(), "*.*|*.*", 0) 
If str = "" : End : Else : SetClipboardText(str) : EndIf

FMOD_System_CreateStream(fmodsystem, @str, #FMOD_SOFTWARE, 0, @sound) 
FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) 

Dim Arr.f(512) 
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"example") 
LoadFont(1,"comic sans ms",5,#PB_Font_HighQuality | #PB_Font_Bold )
Repeat 
  ExamineKeyboard()
  FMOD_Channel_GetPosition(channel, @pos, #FMOD_TIMEUNIT_MS) 
  FMOD_Channel_IsPlaying(channel, @isPlaying) 
  FMOD_Channel_GetSpectrum(channel, Arr(), 512, 0, 0) 
 
  StartDrawing(ScreenOutput())
  For t=0 To 100
   FrontColor( RGB(50,0,t*2) )
    Box(0+t*10,480, 10, Arr(t)*-1000-10)
      DrawingFont(FontID(1)) 
      DrawingMode(1)
      FrontColor (RGB(255,255,255))
      DrawText (t*10,470,Str(t))
      DrawText (10,10,Str(pos/1000))
  Next
  StopDrawing()
  FlipBuffers()
  ClearScreen(RGB(0,0,0))
Until isPlaying = #False Or KeyboardPushed(#PB_Key_Escape)

FMOD_System_Release(fmodsystem)
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

aahh nach langer zeit hat mal wer geantwortet, schon fast vergessen den Thread :D

Erstmal vielen Dank für die Antworten, werd mir beide Sachen aufjedenfall ansehen, sobald ich mit meinem derzeitigen Prog fertig bin.

greez dario
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

Beitrag von Max_der_Held »

ahja, wenns nur darum geht, das du sound aufnehmen willst ( natürlich ohne, das wir hier über kopierschutzumgehungen reden...*g*...) kannst du auch entweder fraps hernehmen (shareware, nur, wenn follbildschirm) oder einfach über windows den audioinput auf die boxen setzen (keine ahnung, wie des mal gegangen is..selber probieren *g* ) und dann mit audiorecorder aufnehmen.. schlechte qualität, aber teilweiße möglich

ansonsten einfach ignorieren :mrgreen:
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

es ist irgendwie schwer zu beschreiben was ich will. Machen wir mal ein Beispiel:

Mein Programm A lädt ne Sounddatei (bsp.mp3 oder sowas) und spielt diese ab.
Sobald dies passiert, soll Programm B sagen: Hey, der spielt die Datei ab.

Vllt könnte man das ganze auch so umsetzen, dass man schaut, wohin diese Datei im Speicher geladen wurde und die Zugriffe überwacht.

Ist alles ein bisschen wackelig forumliert und ich hoffe es ist klar, was ich machen möchte. Ums aufnehmen gehts mir nicht, sondern ums überwachen, wann ein Programm die bestimmte Sounddatei (oder irgendeine andere Datei) wirklich "benutzt" (nachdem sie geladen wurde).

greetz dario
Benutzeravatar
SimonSimCity
Beiträge: 132
Registriert: 14.01.2007 00:49

Beitrag von SimonSimCity »

Du suchst also grob gesagt:
Einen PaketSnifferaber nicht für die Netzwerkkarte sondern für die Soundkarte.

Diese Programme integrieren sich in den LAN-Kartentreiber des Computers und stellt die dort weitergegebenen Daten in einem Programm zur Verfügung.

Und du brauchst das für die Soundkarte.


War das jetzt gut erklärt?

p.s. Hab selbst auch großes Interesse an diesem Programm...
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

SimonSimCity hat geschrieben:Du suchst also grob gesagt:
Einen PaketSnifferaber nicht für die Netzwerkkarte sondern für die Soundkarte.

Diese Programme integrieren sich in den LAN-Kartentreiber des Computers und stellt die dort weitergegebenen Daten in einem Programm zur Verfügung.

Und du brauchst das für die Soundkarte.


War das jetzt gut erklärt?

p.s. Hab selbst auch großes Interesse an diesem Programm...
könnt dich knutschen, so fein hast du das gemacht :lol:
Benutzeravatar
SimonSimCity
Beiträge: 132
Registriert: 14.01.2007 00:49

Beitrag von SimonSimCity »

Aber mit dem Script komm ich immer noch nicht klar...

Für die andere Richtung kenn ich das (WinAMP -> LineIn-Plugin), aber das mach das Micro auf Lautsprecher, aber andersherum weiß ich nicht, ob man das da auch mit nem PlugIn machen kann...
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Muss schon irgendwie gehen... wenn du z.B. den "Eingang" auf den Windows-Standard "Stereo-Mix" stellst funktionierts bei Audioprogrammen (like Audacity etc..) ja auch :)
Bild
Antworten