------------------------------------------------------------------------------------------------------------
SpotFX is a tiny retro sound generation library that has just a single command:
CreateSpotFX(Random Seed, SoundVolume (0-127), Mutate#,Sound# to catch to)
Download here:
http://homepage.ntlworld.com/phil.james7/PJ_SpotFX.rar
The main sound creation code was converted from DrPetters excellent SFXR utility.
Usage example:
Code: Select all
;/ SpotFX Test app
OpenWindow(1,0,0,194,62,"PB-SpotFX - PJames 08",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(1))
ButtonGadget(1,2,2,50,18,"Random")
StringGadget(2,54,2,70,18,"0",#PB_String_Numeric)
ButtonGadget(3,126,2,16,18,"-")
ButtonGadget(4,144,2,16,18,"+")
ButtonGadget(5,162,2,30,18,"Play")
ButtonGadget(6,2,22,64,18,"Mutate:0")
StringGadget(7,2,42,190,18,"CreateSpotFX(0,0,0.5,1)")
TextGadget(8,70,24,20,18,"Vol:")
ScrollBarGadget(9,92,22,100,17,0,127,1) : SetGadgetState(9,5)
InitSound()
;/ Set initial volume
Sound_Volume.b = 5
;/
;/ generate intro sound
Seed = 9837320 : Update = 1
;/
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 1
RandomSeed(gettickcount_())
Seed.l =Random(2147483647)
Mutate = 0 : Update = 1
Case 2
If EventType() = #PB_EventType_Change
Seed = Val(GetGadgetText(2))
Mutate = 0 : Update = 2
EndIf
Case 3
Seed = Val(GetGadgetText(2))-1
Mutate = 0 : Update = 1
Case 4
Seed = Val(GetGadgetText(2))+1
Mutate = 0 : Update = 1
Case 5
PlaySound(1)
Case 6
Mutate+1 : Update=1
Case 9
StopSound(1) : Update = 1
EndSelect
EndSelect
If Update > 0
Sound_Volume = GetGadgetState(9)
CreateSpotFX(Seed,Mutate,Sound_Volume,1)
If Update < 2 : SetGadgetText(2,Str(Seed)) : EndIf
SetGadgetText(6,"Mutate: "+Str(Mutate))
SetGadgetText(7,"CreateSpotFX("+Str(Seed)+","+Str(Mutate)+","+Str(Sound_Volume)+",1)")
PlaySound(1)
Update = 0
EndIf
Until EventID=#PB_Event_CloseWindow
End