Code: Select all
; Sloppily Coded Rave by kenmo
; Tune written by "Toby"!
Structure Note
base.b
note.b
EndStructure
Global length.w : Read length.w : Global tempo.w : Read tempo.w : Dim Note.Note(length-1)
For tmp=0 To length-1
Read note(tmp)\base : Read note(tmp)\note
Next tmp
Global a.b : Global b.b
Dim notefreq.w(11,9) : For tmp=0 To 11 : For tmp2=0 To 9 : Read notefreq(tmp,tmp2) : Next tmp2 : Next tmp
OpenWindow(0,0,0,300,40,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"Tempo: "+Str(tempo)+" bpm")
CreateGadgetList(WindowID())
TrackBarGadget(0,10,10,280,20,30,200) : SetGadgetState(0,tempo)
Procedure PlayIt()
tmp=0
Repeat
a=note(tmp)\note-1 : b=note(tmp)\base-1
Beep_(notefreq(a,b),15000/tempo)
tmp+1 : If tmp=length : tmp=0 : EndIf
ForEver
EndProcedure
thread=CreateThread(@playit(),0)
If thread
Repeat
e=WindowEvent()
While e
If e=#PB_EventCloseWindow : KillThread(thread) : End
ElseIf e=#PB_EventGadget And EventGadgetID()=0
tempo=GetGadgetState(0) : SetWindowTitle(0,"Tempo: "+Str(tempo)+" bpm")
EndIf
e=WindowEvent() : Delay(2)
Wend
Delay(2)
ForEver
Else : End : EndIf
DataSection
; Song Length, Tempo
Data.w 64,100
; Base/Note
Data.b 5,1
Data.b 5,8
Data.b 6,1
Data.b 5,1
Data.b 5,8
Data.b 6,1
Data.b 5,1
Data.b 5,8
Data.b 5,1
Data.b 5,8
Data.b 6,4
Data.b 5,1
Data.b 5,8
Data.b 6,4
Data.b 5,1
Data.b 5,8
Data.b 5,4
Data.b 5,9
Data.b 6,4
Data.b 5,4
Data.b 5,9
Data.b 6,4
Data.b 5,4
Data.b 5,9
Data.b 5,6
Data.b 6,1
Data.b 6,6
Data.b 5,6
Data.b 6,1
Data.b 6,6
Data.b 5,6
Data.b 6,1
Data.b 5,1
Data.b 5,8
Data.b 6,8
Data.b 5,1
Data.b 5,8
Data.b 6,8
Data.b 5,1
Data.b 5,8
Data.b 5,1
Data.b 5,8
Data.b 6,6
Data.b 5,1
Data.b 5,8
Data.b 6,6
Data.b 5,1
Data.b 5,8
Data.b 5,4
Data.b 5,11
Data.b 6,9
Data.b 5,4
Data.b 5,11
Data.b 6,9
Data.b 5,4
Data.b 5,11
Data.b 5,6
Data.b 6,1
Data.b 6,6
Data.b 5,6
Data.b 6,1
Data.b 6,6
Data.b 5,6
Data.b 6,1
; Note Frequencies
Data.w 16,32,65,130,261,523,1046,2093,4186,8372
Data.w 17,34,69,138,277,554,1108,2217,4434,8869
Data.w 18,36,73,146,293,587,1174,2344,4698,9397
Data.w 19,38,77,155,311,622,1244,2489,4978,9956
Data.w 20,41,82,164,329,659,1318,2637,5274,10548
Data.w 21,43,87,174,349,698,1396,2793,5587,11175
Data.w 23,46,92,184,369,739,1479,2959,5919,11839
Data.w 24,48,97,195,391,783,1567,3135,6270,12541
Data.w 25,51,103,207,415,830,1661,3322,6644,13289
Data.w 27,55,110,220,440,880,1760,3520,7040,14080
Data.w 29,58,116,233,466,932,1964,3729,7458,14917
Data.w 30,61,123,246,493,987,1975,3951,7902,15804
EndDataSection