Vom Mic in den Buffer und noch viel weiter...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Vom Mic in den Buffer und noch viel weiter...

Beitrag von R4z0r1989 »

Hallo Leute hab mich im FMOD festgebissen komm aber nicht weiter da die Hilfe auch noch nur auf english zu erhalten ist!

Und zwar würd ich bitte mir einen Codeschnipsel zu basteln wie man direkt vom Mic was in den Buffer bekommt.

Was aber für mich das wichtigste wär das man es ein wenig kommentatiert.
Das wird sicher noch andren helfen!

Thx im Voraus!
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

guggemalhier
http://www.purearea.net/pb/CodeArchiv/German.html
.. da gibt's auch ' paar FMOD-Beispiele
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

jo danke ich hab schonmal gefunden wie man in den buffer schreiben und abspielen kann aber jetzt bräucht ich noch was womit ich vom mic was in den Buffer bekomm!

Ich bitte um weitere Hilfe!

Thx im voraus
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

dannguggemalhier

http://www.fmod.org/files/fmodapi374purebasic.zip

rennt mit 3.94 .. für 4 muss Du es etwas anpassen.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

vielen dank aber jetzt hab ich ein weiteres Problem und zwar komm da dauernd:

Constant already declared with a different value: #FMOD_ERR_CHANNEL_ALLOC
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

logisch .. die Deklarationen sind in der FMOD-Lib auch schon drin..
Die (nebst Res-Datei) musst Du halt mal rauswerfen.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

so hab jetzt geschaft von mic in den buffer und vom Buffer in den Lautsprecher!

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Button1
  #Button2
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 130, 70,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Mic Buffer")
    If CreateGadgetList(WindowID())
      ButtonGadget(#Button1, 10, 10, 110, 20, "Aufnehmen")
      ButtonGadget(#Button2, 10, 40, 110, 20, "Abspielen")
      
    EndIf
  EndIf
EndProcedure

#RECORDRATE = 44100
#RECORDLEN  = (#RECORDRATE*5)       ;  5 seconds at 44khz 
#RECORD_DELAY_MS =  25
#RECORD_DELAY_SAMPLES = (#RECORDRATE * #RECORD_DELAY_MS / 1000)
#ENABLEREVERB = #True
#VUSPEED = 0.2

#REVERB_NUMTAPS = 7


FSOUND_SetOutput(#FSOUND_OUTPUT_DSOUND)

FSOUND_SetDriver(0)

FSOUND_SetMixer(#FSOUND_MIXER_QUALITY_AUTODETECT)

FSOUND_Init(44100, 64, #FSOUND_INIT_ACCURATEVULEVELS)

FSOUND_Record_SetDriver(0)

samp1 = FSOUND_Sample_Alloc(#FSOUND_UNMANAGED, #RECORDLEN, #FSOUND_STEREO | #FSOUND_16BITS , #RECORDRATE, 255, 128, 255)


Open_Window_0()

Repeat

  Event = WindowEvent() 
  If Event = #PB_EventCloseWindow 
    Quit = 1 
  ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
    
    Select EventGadgetID()
    
      Case #Button1
        FSOUND_Record_StartSample(samp1, #False)
        timer = ElapsedMilliseconds()
        Debug "Start Aufnahme"
        
      Case #Button2
        channel = FSOUND_PlaySound(#FSOUND_FREE, samp1)
        timer2 = ElapsedMilliseconds()
        Debug "Start Abspielen"

    EndSelect 
  EndIf 
  
  
  If FSOUND_Record_GetPosition() >= #RECORDLEN And timer
    time = ElapsedMilliseconds() - timer
    FSOUND_Record_Stop()
    Debug "Stop Aufnahme"
    timer = 0
  EndIf

  If ElapsedMilliseconds() - timer2 >= time And timer2
    FSOUND_StopSound(channel)
    Debug "Stop Abspielen"
    timer2 = 0
  EndIf
  
Until Quit 

FSOUND_Close()
vl suchen sowas auch schon einige!

Naja aber jetzt meine Frage wie kann ich rausfinden wie viele Byte eine Sekunde hat. Wie man das über das Netzwerk senden kann is ja nich schwer aber ich muss wissen wie viel Byte eine Sekunde hat bzw wie viel ne halbe!
Wer helfen will kann helfen wer verbesserungen hat zu dem code den ich geschrieben hab soll er tun!

[EDIT]
Weiß vl noch einer wie man rausfinden kann welche Lautstärke die aufnahme grad hat?
[EDIT END]

thx im Voraus!
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

hi

ich habe ein spiel geschrieben und möchte das mic auch gerne abhören. allerdings habe ich nicht den geringsten schimmer was da oben steht...

also ich brauche erst ne lib oder? wenn ja welche und wie setze ich sie ein. und noch wichtiger wo bekomme ich sie her?

aja und noch was, wenn ich vom mic in den buffer speicher wie groß muss der dann sein? (ich denke ein Sound ist sehr groß man muss ja die lautstärke und die wellen aufnehmen). und wenn man die über inet weiter verschickt dann sind da doch bestimmt unterbrechungen oder?

oder kann ich direckt von mic aus nicht in den buffer sondern direkt übers netzwerk.

sollte ich es so weit geschafft haben. wie kann ich den dann abspielen oder speichern?

thx im voraus
Antworten