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

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Abrexxes

Betreff: Hat BM keinen Soundbuffer? (Gelöst/Download)

BeitragDo, Sep 29, 2005 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Sep 29, 2005 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Sep 29, 2005 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
thx

Wenigstens weis ich jetzt was Sache ist.

cu

TheShadow

Moderator

BeitragDo, Sep 29, 2005 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Sep 29, 2005 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Komme mir gerade ziemlich unwissend vor. Was ist ein Soundbuffer?

TheShadow

Moderator

BeitragDo, Sep 29, 2005 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Sep 30, 2005 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
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

TheShadow

Moderator

BeitragFr, Sep 30, 2005 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Sep 30, 2005 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, das Teste ich mal (GCC) hab ich drauf. Mit MinGW und Fmod oder Allegro hab ich die Probleme nämlich nicht. Wink

Fetze

BeitragFr, Sep 30, 2005 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls es klappt, wäre es nett, wenn du ds kompilierte Modul für die online stellen würdest, die kein GCC haben. ^^

Abrexxes

BeitragFr, Sep 30, 2005 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Sep 30, 2005 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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);





Mr. Green

Fetze

BeitragFr, Sep 30, 2005 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist ein flanger-Effekt? oO

Abrexxes

BeitragFr, Sep 30, 2005 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Abgehackter Sound wie die Gitarre bei " Boulevard of broken Dreams" am Anfang (Green Day).

cu

Abrexxes

BeitragMi, Okt 05, 2005 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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

TheShadow

Moderator

BeitragDo, Okt 06, 2005 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
cool - wo hast du sowas nur gefunden?
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Abrexxes

BeitragDo, Okt 06, 2005 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group