------------------------------------------------------------------------------------------------------------
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




