Mikro und Soundliveausgabe?
Übersicht

#ReaperNewsposterBetreff: Mikro und Soundliveausgabe? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also der Titel sagt glaube ich schon alles ![]() Ist es denn mit BMax (von Haus aus) möglich, Sound live auszugeben und auch den Input vom Mikro live aufzunehmen? Ich weiß nur, dass man mit BMax Sounds runtime erstellen kann, aber Live ist das ja nicht... ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist mir nicht bekannt, dass das mit dem Soundmodul von BRL geht.
Ich kann dir hier nur OpenAL empfehlen: https://www.blitzforum.de/foru...hp?t=22116 a) kann man sehr einfach Aufnahmen von Mikro, LineIn usw. machen b) kann man mit Queue Buffers in Echtzeit Sound ausgeben. a) mit alcGetString(Null, ALC_CAPTURE_DEVICE_SPECIFIER) erhälst du eine Liste aller Aufnahmegeräte. Dann mit alcCaptureOpenDevice öffnest du einen Recorder mit dem angegebenen Aufnahmeformat(also Samplefrequenz, und Format). Mit alcGetIntegerv(Recorder, ALC_CAPTURE_SAMPLES, 4, Varptr(Samples)) fragst du ab, wie viel Samples im OpenAL's internen Ringbuffer bereit liegen und mit alcCaptureSamples(Recorder, Buffer, Size) holst du die Samples aus dem Buffer. Die Samples kannst du nun in einer WAV oder PCM Datei bspw. direkt speichern oder mir OggVorbis direkt in OGG Datei komprimieren(Vorbis ist die kostenlose Alternative zu MP3 mit besserer Qualität bei kleinere Datenrate) b) Queue Buffers stellst du dir wie bei Front- und Backbuffer vor. Während man in den Backbuffer gerade seine Samples rendert wird der Frontbuffer schon abgespielt. Damit lassen sich bspw. Audiodaten streamen(siehe mein OggVorbis Player). mfg olli |
||
vertex.dreamfall.at | GitHub |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah, danke für die Infos ![]() Aber eine Frage: Ist dein OpenAL-Modul nicht ziemlich das gleiche wie das Brl OpenAL-Modul? Wenn nicht, was sind denn da die Unterschiede? ![]() Edit: Wie verwendet man alcGetString()? Weiß nicht was ich mit dem Byte anfangen soll ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Unterschiede sind:
BRL nutzt beispielsweise LoadLibraryA, um an die Funktionsadressen zu kommen. Ich habe mein Modul noch nie unter Linux oder gar Mac getestet, deswegen weiß ich nicht, ob es da auch läuft. Das von BRL auf alle Fälle. Weiterhin hat BRL eine eingebaute Doku. Dafür arbeitet Vertex.OpenAL im Super Strict Modus, hat hübscheren Code und definiert Funktionen für al, alut, alc und alext. Für Windows bevorzuge ich also mein Modul. Für Linux und Mac müsste ich schauen, ob ich vllt. was dran schrauben muss. Ansonsten Code: [AUSKLAPPEN] SuperStrict
Framework Vertex.OpenAL Local Specifiers:String[], .. Specifier:String Specifiers = EnumerateRecorders() If Not Specifiers Then WriteStdout("Error~n") End EndIf For Specifier = EachIn Specifiers WriteStdout("-"+Specifier+"~n") Next WriteStdout("~nready~n") End Function EnumerateRecorders:String[]() Local List : Byte Ptr, .. Specifiers : String[], .. Specifier : String List = alcGetString(Null, ALC_CAPTURE_DEVICE_SPECIFIER) If Not List Then Return Null While List[0] Specifiers = Specifiers[..Specifiers.Length + 1] Specifiers[Specifiers.Length - 1] = String.FromCString(List) List :+ Specifiers[Specifiers.Length - 1].Length + 1 Wend Return Specifiers End Function Vllt. kann ich mal meine ganzen Sources von meinem Audiosystem veröffentlichen, da wäre das alles dabei auch mit FFT Analyse, Noisefilter und Autokorrelation. mfg olli |
||
vertex.dreamfall.at | GitHub |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke! ![]() Unter Windows geht es, aber unter Linux leider nicht ![]() Code: [AUSKLAPPEN] /home/reaper/Programme/BlitzMax/tmp/.bmx/untitled1.bmx.console.release.linux.x86.o: In function `bb_EnumerateRecorders':
(code+0xfc): undefined reference to `alcGetString' collect2: ld returned 1 exit status Build Error: Failed to link /home/reaper/Programme/BlitzMax/tmp/untitled1 Process complete Edit: Wieso schmiert bei mir das Vorbis Example ab, wenn ich in den Explorer gehe? ![]() Bzw. es schmiert nicht ab, sondern es Endet einfach mitten drinen mit "Process complete" :-/ |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group