Eingebundene Musik "verkleinern"?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

maw

Betreff: Eingebundene Musik "verkleinern"?

BeitragDo, Dez 06, 2007 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
gibt es die Möglichkeit, eingebundene Musik-Dateien (benutze .ogg) zu verkleinern? Dank manuellem Bibliothek-Import ist mein Programm erst schön klein geworden, durch die Musik dann leider wieder sehr groß...

Danke,

MAW

Abrexxes

BeitragDo, Dez 06, 2007 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
OGG ist schon komprimiert, da würdest du höchstens noch ein paar Bytes gewinnen. Aber OGG hat ja verschiedene QUALI Stufen, eventuell reicht eine kleinere Stufe ja schon aus.

cu
 

maw

BeitragDo, Dez 06, 2007 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich frag mich halt, wie diese Demoscene-Checker die Musik in ihren Files so klein kriegen... alles mit selbst gebastelten Tools?

MAW

Abrexxes

BeitragDo, Dez 06, 2007 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, die "erzeugen" die Samples auf die alte Weise. http://en.wikipedia.org/wiki/Waveform . Dabei wird jeder Ton auf sein Ausgangsmaterial zurückgerechnet und erst beim starten des Programms aus den normalen Formen erzeugt. (Hier jetzt circa 300 Seiten Grundkurs denken). Ein einfaches Beispiel ist das hier aus BlitzBassStudio. Du kannst dir das ja umbauen und auf die Weise einfache Snares, Töne und Bässe erzeugen. Diese Funktion ist allerdings für BBS ausgelegt.

Code: [AUSKLAPPEN]
Function BASS_CreateBeep%(art% = 1 ,hz% = 900,time% = 100 ,freq# = 44100 , chans% = 1, max% = 1, flags% = 0, onlynew% = 0)
   
   Local q%, y%, yy% , stemp%, length%, tbank%, hfinal%, hchannel%
      length = (((freq*chans)*time) / 1000)*2
         stemp = BASS_SampleCreate(length,freq,chans,max,flags)
            tbank = CreateBank (length*2)
            For q = 0 To (length-1)
                  ;this 4 are for 44100/mono/16bit (default values)
                  If art=1 y=Sin(q/freq*360*hz)*32767
                  If art=2 yy=yy+Rand(hz/8,hz*3):y=Sin(yy/freq*360)*16384
                  If art=3 yy=yy+Rand(1000.0*hz/(q+1),1000.0*hz/(q+1)*10):y=Sin(yy/freq*360)*16384
                  If art=4 y=y+hz*1.45:If y>32767 y=-32767
               
                  ;feel free to add your own stuff. :)
            PokeShort tbank, q*2, y
            Next
            BASS_RtlMoveMemory2(stemp, tbank, length)
         FreeBank tbank
      hfinal = BASS_SampleCreateDone()
   hchannel = BASS_SampleGetChannel (hfinal, onlynew)
Return hchannel

End Function   


Wie du dir sicher denken kannst sind aber für ganze Tracks inkl Strings und Orchestra ein paar derbe Formeln mehr nötig. Wink

Willkommen in der Welt der DSP Freaks.

Ausserdem verwenden viele MODULE die intern OGG Samples haben, so kann man zb ein AMIGA oder FastrackerII Modul von 350kb locker auf 65 runterhauen. Um das dann abzuspielen muss man FMOD (OXM) oder Bass (MO3) verwenden.
 

maw

BeitragDo, Dez 06, 2007 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, vielen Dank, leider kenne ich mich mit solchen Dingen gar nicht aus... Später vielleicht.

Kleine OT-Frage: ist es richtig, dass das kleinste mögliche BMax-Programm 268 KB groß ist (hab einen Mac)?


MAW


Edit: Framework hab ich benutzt - mit kleinst-mögliches Programm meinte ich, dass nur eben nur "Framework brl.basic" im Programm steht.
  • Zuletzt bearbeitet von maw am Do, Dez 06, 2007 21:15, insgesamt einmal bearbeitet

Abrexxes

BeitragDo, Dez 06, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm...zumindest unter Windows sollte mit Framework und UPX das noch kleiner gehen. Aber ich weis nicht ob es sowas wie UPX (EXE-Paker) auch für den Mac gibt.

cu

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group