Turbinen Sound selber erzeugen

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Markus2

Betreff: Turbinen Sound selber erzeugen

BeitragDi, März 21, 2006 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich versuche mich gerade daran einen Turbinen Sound zu erstellen .
Und zwar soll das so sein das die Turbine hoch laufen soll
ihre Umdrehung (nach Vorgabe) bei behält und dann wieder auslaufen soll .
Wichtig ist es das es aus dem Quelltext erzeugt wird und so
unter 64k Sample länge bleibt wenns geht .

Habe auch schon was versucht aber der Ton stimmt nicht Confused
Wenn das Ding auf Turen ist soll sich das anhören wie ein Jet oder so Cool

Code: [AUSKLAPPEN]

Strict
Graphics 640,480
Local l:Long
'22500
l=1024*64
Local sample:TAudioSample=CreateAudioSample(l,11250,SF_MONO8 )
Local i:Long

Local a100:Float
Local a500:Float
Local a1000:Float
Local a2000:Float
Local a3000:Float
Local a4000:Float
Local a5000:Float
Local a10000:Float
Local w:Float
Local w1:Float
Local b:Byte

For i=0 To l-1
 w=w+1
 w1=w1+2.1
 a100=a100+0.5
 a500=a500+0.05
 a1000=a1000+0.1
 a2000=a2000+0.2
 a3000=a3000+0.3
 a4000=a4000+0.5
 a5000=a5000  +0.6
 a10000=a10000+1.0
 b=( Sin(a100+w+w1)*1.0+Sin(a500+w+w1)*0.9+Sin(a1000+w+w1)*0.7+Sin(a2000+w+w1)*0.6+Sin(a3000+w+w1)*0.3+Sin(a4000+w+w1)*0.2+Sin(a5000+w+w1)*0.1+Sin(a10000+w+w1)*0.1 )/8 *127+127
 sample.samples[i]=b
Next

Local sound:TSound=LoadSound( sample,True )

PlaySound(sound)

WaitKey


EDIT:
mit RND hört sich das schon besser an ...

Code: [AUSKLAPPEN]


'MR Turbine

Strict

'Frequenz von 0 - 10000 Hz
'0 Laut
'10000 Leise

Graphics 640,480
Local l:Long
'22500
l=1024*64
Local sample:TAudioSample=CreateAudioSample(l,11250,SF_MONO8 )
Local i:Long

Local a100:Float
Local a500:Float
Local a1000:Float
Local a2000:Float
Local a3000:Float
Local a4000:Float
Local a5000:Float
Local a10000:Float
Local w:Float
Local w1:Float
Local b:Byte

Local sound:TSound
Local ch:TChannel
Local wx:Float
While Not KeyDown(KEY_ESCAPE)

wx=wx+1.0
For i=0 To l-1
 w=w+wx
 w1=w1+2.1*wx
 a100=a100+0.5*wx+Rand(-10,10)
 a500=a500+0.05*wx+Rand(-10,10)
 a1000=a1000+0.1*wx+Rand(-20,20)
 a2000=a2000+0.2*wx+Rand(-20,20)
 a3000=a3000+0.3*wx+Rand(-20,20)
 a4000=a4000+0.5*wx+Rand(-20,20)
 a5000=a5000  +0.6*wx+Rand(-20,20)
 a10000=a10000+1.0*wx+Rand(-20,20)
 b=( Sin(a100+w+w1)*1.0+Sin(a500+w+w1)*0.9+Sin(a1000+w+w1)*0.7+Sin(a2000+w+w1)*0.6+Sin(a3000+w+w1)*0.3+Sin(a4000+w+w1)*0.2+Sin(a5000+w+w1)*0.1+Sin(a10000+w+w1)*0.1 )/8 *127+127
 sample.samples[i]=b
Next

Delay 2000
If ch<>Null Then StopChannel ch ; sound=Null
sound=LoadSound( sample,True )
ch=PlaySound(sound)

Wend
End

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group