Hat BM keinen Soundbuffer? (Gelöst/Download)
Übersicht

![]() |
AbrexxesBetreff: Hat BM keinen Soundbuffer? (Gelöst/Download) |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi,
gibt es eine Möglichkeit BM einen Soundbuffer zu entlocken ohne externe Libs und dergleichen? Sobald Audiosamples grösser und hochaufgelöst werden, fängt BM an mit kratzen. Selbst in der Konsole (also wenn kein GUI und nix zu berechnen ist habe ich den Effekt. Scheinbar kann BM denn DX-Buffer nicht nutzen oder ich mache was grundlegendes falsch. Mit kurzen Samples, niedrigaufgelösten (welche also komplett im SLC Platz finden) und Fmod gibts das Problem nicht (Das benutzt definierbaren Buffer). Um das kratzen rauszukriegen sollte einer zwischen 10-30ms (je nach Auslastung) reichen. cu |
||
- Zuletzt bearbeitet von Abrexxes am Mi, Okt 05, 2005 21:40, insgesamt einmal bearbeitet
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kratzen ist ein bekanntes Problem. Wird hoffentlich mit dem nächsten Update behoben. | ||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
thx
Wenigstens weis ich jetzt was Sache ist. cu |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
blitzmax hat einen soundbuffer... dieser wurde sogar vergrößert - aber scheinbar nicht genug... oder es ist was anderes... hast du aktuelle version? evtl. muss man selbst in modulen fummeln... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Komme mir gerade ziemlich unwissend vor. Was ist ein Soundbuffer? | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
zwischenpuffer, von wo abgespielt wird...
sag mal... wenn du WAV-Sounds auf MONO+22050 Hz runterspeicherst... verbessert sich dann das oder bleibt dieser Effekt? Dann ist es normal ein Zeichen für zu kleinen Puffer... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es leigt defintiv am Buffer TS. Arbeite an einem Soundprog. Ab einem bestimmten Durchsatz ist schluss, und der ist minimal. (2*44100/16 reicht aus/oder 4*22050/16 oder 8*22050/8 etc).
Die CPU brauch immer wieder ein paar Millisekunden um andere Aufgaben zu erledigen und kann deswegen den Sound nicht permanent in Echtzeit berechnen. Deswegen haben alle Progs Spiele und auch DX seit der Soundblaster8 einen Soundbuffer. Hier werden die Daten zwischengelagert. Macht die CPU mal eine Pause, können die Daten hier ein Aussetzen des Sounds vermeiden. Je mehr Pausen oder Arbeit die CPU hat, desto grösser muss dieser sein. In der Regel genügen 30ms. Das bedeutet das der Sound mit einer verzögerung von 30 Milisekunden an dein öhrchen kommt da er aus einem "Speicher" kommt. Du kannst das mit dem zwischenspeicher in AutoCD-Playern oder der Minidisk Technologie vergleichen. Diese laden den Sound in einen 4MB Speicher damit die Musik nicht stottert wenn der Laser mal die Abtastung verliert. cu |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
suche nach freeaudio.cpp
dann schau nach 8192 Code: [AUSKLAPPEN] mix=new mixer(8192); buffer=new short[8192]; verdoppele den wert dann mußt du aber das ganze kompilieren... dazu musst du GCC downloaden, installieren und 2 globale variablen einrichten in autoexec.bat SET PATH=%PATH%;C:\[pfad]\MinGW\bin SET MINGW=C:\[pfad]\MinGW (neustarten nicht vergessen!) ich weiß aber nicht ob es klappt... das musst du mal testen und poste mal deine ergebnisse... (kompilieren geht mit BMK - siehe auch hilfe) |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, das Teste ich mal (GCC) hab ich drauf. Mit MinGW und Fmod oder Allegro hab ich die Probleme nämlich nicht. ![]() |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Falls es klappt, wäre es nett, wenn du ds kompilierte Modul für die online stellen würdest, die kein GCC haben. ^^ | ||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
so,
habe es nun mit: 4096 <--gleich 16384 <---noch schlimmer 32768 <---gleich (!) und kombinationene daraus. Nichts! Aber das Problem scheint wirklich hier zu liegen. Das es bei 16384 schlimmer wird deutet darauf hin. tjo.. |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wer mal einen "Flanger Effekt" brauchen sollte ändert:
Code: [AUSKLAPPEN] buffer[0].init(device,size*2,0); buffer[1].init(device,size*2,1); buffer[2].init(device,size*2,2); mix->mix16((short *)buffer[0].data); mix->mix16((short *)buffer[1].data); mix->mix16((short *)buffer[2].data); in Code: [AUSKLAPPEN] buffer[0].init(device,size*8,0); buffer[1].init(device,size*7,1); buffer[2].init(device,size*6,2); mix->mix16((short *)buffer[0].data); mix->mix16((short *)buffer[1].data); mix->mix16((short *)buffer[2].data); ![]() |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
was ist ein flanger-Effekt? oO | ||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abgehackter Sound wie die Gitarre bei " Boulevard of broken Dreams" am Anfang (Green Day).
cu |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe jetzt eine neue Version der freeaudio compiliert die ich auf Blitzbasic.com gefunden habe.
Diese Version funzt einwandrei hat aber noch nicht den Weg in die "SYNC MOD" Funktion gefunden. (Wieso auch immer) Hier ist die compilierte Fassung für Windows Nutzer. (Mac und Linux können die freeaudio.cpp "bei Bedarf" kompilieren wobei hier nicht geklärt ist ob es funzt.) Jedenfalls sollten WIN Nutzer zumindestens mal ohne Vinyl-Effekt arbeiten können. Bis zum offiziellen Update allemal eine Lösung. Diesen Ordner hier komplett in Blitzmax\mod\pub.mod ersetzen. Vorher Original Sichern !! Man weis nie http://www.blitzcoding.de/bmmax/freeaudio.mod.zip Für alle die compilieren können befindet sich das original als freeaudioold.cpp im Ordner. Die können sich das sichern sparen. Wenns nicht geht, freeaudio.cpp löschen und freeaudioold.cpp umbenennen.(Und compilieren natürlich). Have Fun |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool - wo hast du sowas nur gefunden? | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da wo es keiner vermutet hätte...Im Bug Report. Allerdings gut versteckt.
http://www.blitzbasic.com/Comm...opic=49567 Sehr weit unten, der Code von "skidracer" in der Codebox. cu |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group