Ver #2 :
Just for fun
Code:
; Based on :
; The discussion forum by Martin Verlaan
; https://www.purebasic.fr/english/viewtopic.php?f=13&t=70823
; And code by :
; Roger Hهgensen , Celtic88(c) & wilbert
;
; You have To include :
; 1- bass.dll
; 2- bassflac.dll
; 3- bass_ac3.dll
; 4- basswma.dll
UsePNGImageDecoder()
IncludeFile "bass.pbi"
DisableDebugger
Global chans,length.q,pos.q,ppos.q,oldpos.q,channel,wavecolor,wavespace,ww,hh
Structure Sample
l.w
r.w
EndStructure
Procedure tbCB()
If BASS_ChannelIsActive(channel) = #BASS_ACTIVE_PLAYING
BASS_SetVolume(GetGadgetState(8)/10)
EndIf
EndProcedure
Procedure waveP(par)
Repeat
If channel And BASS_ChannelIsActive(channel) = #BASS_ACTIVE_PLAYING
pos.q = BASS_ChannelGetPosition(channel,#BASS_POS_BYTE)
ppos.q = pos.q*$2000/length.q
SetScrollPos_(WindowID(2), #SB_HORZ,ppos.q,1)
ResizeGadget(1,-ppos.q,hh/2-368/2,$2000, 275)
oldpos.q = pos.q
ElseIf channel And pos.q = oldpos.q
BASS_ChannelSetPosition(channel,0,#BASS_POS_BYTE)
SetScrollPos_(WindowID(2), #SB_HORZ,0,1)
ResizeGadget(1,0,#PB_Ignore,$2000, 275)
If GetGadgetState(5) = ImageID(2)
SetGadgetState(5,ImageID(1))
EndIf
EndIf
Delay(15)
ForEver
EndProcedure
Procedure UpdateWaveImage(PBImage, *SampleData.Sample, SampleCount,Numchans)
If *SampleData And SampleCount
StartDrawing(ImageOutput(PBImage))
Width = OutputWidth() : Height = OutputHeight()
VOffsetL = Height >> Numchans : VOffsetR = VOffsetL + Height >> 1
Box(0, 0, Width, Height, $00FF00)
If Numchans = 1
MUL = (VOffsetL * $19999) >> 15
Line(0, VOffsetL, Width, 1, wavecolor)
Else
MUL = (VOffsetL * $19999) >> 15
Line(0, VOffsetR, Width, 1, wavecolor)
EndIf
SamplesPerPixel = (SampleCount + Width - 1) / Width
SampleSize = Numchans * 2
If SampleCount
MinL = *SampleData\l : MinR = *SampleData\r : MaxL = MinL : MaxR = MinR
While SampleCount
If *SampleData\l < MinL : MinL = *SampleData\l : ElseIf *SampleData\l > MaxL : MaxL = *SampleData\l : EndIf
If *SampleData\r < MinR : MinR = *SampleData\r : ElseIf *SampleData\r > MaxR : MaxR = *SampleData\r : EndIf
Sample + 1 : SampleCount - 1
If Sample = SamplesPerPixel Or SampleCount = 0
MinL = (MinL * MUL) >> 16 : MaxL = (MaxL * MUL) >> 16
MinR = (MinR * MUL) >> 16 : MaxR = (MaxR * MUL) >> 16
LineXY(X, VOffsetL - MinL, X, VOffsetL - MaxL, wavecolor)
If Numchans = 2 :LineXY(X, VOffsetR - MinR, X, VOffsetR - MaxR, wavecolor):EndIf
MinL = *SampleData\l : MinR = *SampleData\r : MaxL = MinL : MaxR = MinR
X + 1 : Sample = 0
EndIf
*SampleData + SampleSize
Wend
EndIf
StopDrawing()
EndIf
EndProcedure
Procedure winCB(hwnd, uMsg, wParam, lParam)
GetWindowRect_(WindowID(0),r0.RECT)
xx = r0\left : yy = r0\top : ww = r0\right-r0\left : hh = r0\bottom-r0\top
result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_NCACTIVATE
Result = 1
Case #WM_MOVE
SmartWindowRefresh(0,0)
MoveWindow_(WindowID(1),xx+45,yy+45, ww-65,hh-115,1)
MoveWindow_(WindowID(2),xx+45,yy+45, ww-65,hh-115,1)
SmartWindowRefresh(0,1)
Case #WM_SIZE
SmartWindowRefresh(0,0)
MoveWindow_(WindowID(1),xx+45,yy+45, ww-65,hh-115,1)
MoveWindow_(WindowID(2),xx+45,yy+45, ww-65,hh-115,1)
MoveWindow_(GadgetID(1),0,hh/2-185, $2000, 275,1)
MoveWindow_(GadgetID(2),10,hh/2-145, 18,200,1)
MoveWindow_(GadgetID(3),10,hh-90, ww-35,40,1)
SmartWindowRefresh(0,1)
Case #WM_HSCROLL
If hWnd = WindowID(2)
Select wParam & $FFFF
Case #SB_LINELEFT
Result = GetScrollPos_(WindowID(2), #SB_HORZ)
If Result >= 1
SetScrollPos_(WindowID(2), #SB_HORZ,Result-1,1)
EndIf
Case #SB_LINERIGHT
Result = GetScrollPos_(WindowID(2), #SB_HORZ)
If Result <= $2000
SetScrollPos_(WindowID(2), #SB_HORZ,Result+1,1)
EndIf
Case #SB_THUMBTRACK
BASS_ChannelPause(channel)
Result2 = GetScrollPos_(WindowID(2) , #SB_HORZ)
Result = (wParam >> 16 & $FFFF)
If Result >= 0
SetScrollPos_(WindowID(2), #SB_HORZ,Result,1)
ElseIf Result <= $2000
SetScrollPos_(WindowID(2), #SB_HORZ,Result,1)
EndIf
EndSelect
pos.q = GetScrollPos_(WindowID(2) , #SB_HORZ)*length.q/$2000
BASS_ChannelSetPosition(channel,pos.q,#BASS_POS_BYTE)
ppos.q = pos.q*$2000/length.q
ResizeGadget(1,-ppos.q,hh/2-368/2,$2000, 275)
If GetGadgetState(5) = ImageID(2)
SetGadgetState(5,ImageID(1))
EndIf
EndIf
EndSelect
ProcedureReturn result
EndProcedure
CatchImage(0,?open)
CatchImage(1,?play)
CatchImage(2,?pause)
CatchImage(3,?stop)
CatchImage(4,?high)
CatchImage(5,?mute)
wavecolor = $8EFE9C
pbcolor = $A0A0A1
plcolor = $C4C4C5
CreateImage(100,40,40,24,pbcolor)
StartDrawing(ImageOutput(100))
For x = 0 To 40 Step 20
LineXY(x,0,x,40,plcolor)
Next
For y = 0 To 40 Step 20
LineXY(0,y,40,y,plcolor)
Next
StopDrawing()
ihandle = CreatePatternBrush_(ImageID(100))
OpenWindow(0, 0, 0, 660, 370, "Waveform", #PB_Window_Invisible| #PB_Window_SystemMenu | #PB_Window_MaximizeGadget| #PB_Window_ScreenCentered|#PB_Window_SizeGadget)
SmartWindowRefresh(0,1)
ww = WindowWidth(0)
hh = WindowHeight(0)
SetWindowColor(0,$6F6F6F)
WindowBounds(0,660,370,#PB_Ignore,#PB_Ignore)
OpenWindow(1, WindowX(0,#PB_Window_InnerCoordinate)+40, WindowY(0,#PB_Window_InnerCoordinate)+10, 605, 300, "Waveform", #PB_Window_BorderLess ,WindowID(0))
SetClassLongPtr_(WindowID(1), #GCL_HBRBACKGROUND, ihandle)
InvalidateRect_(WindowID(1),0,1)
DisableWindow(1,1)
OpenWindow(2, WindowX(0,#PB_Window_InnerCoordinate)+40,WindowY(0,#PB_Window_InnerCoordinate)+10, 605, 300, "Waveform", #PB_Window_BorderLess | #WS_HSCROLL | #WS_BORDER ,WindowID(0))
SetWindowColor(2,$00FF00)
SetWindowLong_(WindowID(2),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(2),$00FF00,0,#LWA_COLORKEY)
;SetParent_(WindowID(2),WindowID(1))
SetScrollRange_(WindowID(2),#SB_HORZ,0,$2000,1)
WaveImage = CreateImage(#PB_Any, $2000, 275)
UseGadgetList(WindowID(2))
ImageGadget(1, 0, 0, $2000, 275, 0)
UseGadgetList(WindowID(0))
ScrollBarGadget (2, 10, 50, 18, 200 ,1, 10, 1, #PB_ScrollBar_Vertical)
ContainerGadget(3,10,320,640,40,#PB_Container_Flat)
SetGadgetColor(3,#PB_Gadget_BackColor,$94E7FE)
ImageGadget (4,5,5,40,20,ImageID(0))
GadgetToolTip(4, "Load")
ImageGadget (5,40,5,40,20,ImageID(1))
GadgetToolTip(5, "Play/Pause")
ImageGadget (6,75,5,40,20,ImageID(3))
GadgetToolTip(6, "Stop")
ImageGadget (7,110,5,40,20,ImageID(4))
GadgetToolTip(7, "Mute On/Off")
TrackBarGadget(8,145,8,100,20,1,10,#TBS_FIXEDLENGTH |#WS_BORDER)
GadgetToolTip(8, "Volume")
SendMessage_(GadgetID(8), #TBM_SETTHUMBLENGTH,18,0)
SetGadgetState(8,5)
CloseGadgetList()
SetActiveWindow(0)
SetWindowCallback(@winCB())
BASS_Init(-1, 44100, 0, 0, #Null)
BASS_SetVolume(0.5)
BASS_PluginLoad("bassflac.dll", #BASS_UNICODE)
BASS_PluginLoad("bass_ac3.dll", #BASS_UNICODE)
BASS_PluginLoad("basswma.dll", #BASS_UNICODE)
HideWindow(0,0)
BindGadgetEvent(8,@tbCB())
Thread = CreateThread(@WaveP(),30)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
If IsThread(Thread)
KillThread(Thread)
EndIf
BASS_Free()
End
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Select EventType()
Case #PB_EventType_LeftClick
If BASS_ChannelIsActive(channel) = #BASS_ACTIVE_PLAYING
BASS_ChannelStop(channel)
BASS_SampleFree(sample)
SetGadgetState(5,ImageID(1))
SetGadgetState(1,0)
channel = 0
EndIf
filename.s = OpenFileRequester("","","*.*",0):If filename ="":End 1:EndIf
channel = 0
SetScrollPos_(WindowID(1), #SB_HORZ,0,1)
ScrollWindowEx_(WindowID(1),0,0,0,0,0,0,#SW_ERASE|#SW_INVALIDATE|#SW_SCROLLCHILDREN)
SetGadgetState(1,0)
sample = BASS_SampleLoad(0, @filename, 0, 0, 65535, #BASS_UNICODE| #BASS_SAMPLE_SOFTWARE)
info.BASS_SAMPLE
BASS_SampleGetInfo(sample, @info)
chans = info\chans
length = info\length
If chans >= 2
chans = 2
EndIf
Dim Buffer.Sample(Length >> chans)
BASS_SampleGetData(sample,@buffer())
UpdateWaveImage(WaveImage, @Buffer(), Length >> Info\chans,Info\chans)
SetGadgetState(1,ImageID(WaveImage))
channel = BASS_SampleGetChannel(sample,1)
EndSelect
Case 5
Select EventType()
Case #PB_EventType_LeftClick
If channel And GetGadgetState(5) = ImageID(1)
SetGadgetState(5,ImageID(2))
BASS_ChannelPlay(channel, 0)
ElseIf channel And GetGadgetState(5) = ImageID(2)
pos.q = GetScrollPos_(WindowID(2) , #SB_HORZ)*length.q/$2000
BASS_ChannelPause(channel)
SetScrollPos_(WindowID(2), #SB_HORZ,ppos.q,1)
BASS_ChannelSetPosition(channel,pos.q,#BASS_POS_BYTE)
SetGadgetState(5,ImageID(1))
EndIf
EndSelect
Case 6
Select EventType()
Case #PB_EventType_LeftClick
If BASS_ChannelIsActive(channel) = #BASS_ACTIVE_PLAYING
BASS_ChannelStop(channel)
BASS_SampleFree(sample)
SetScrollPos_(WindowID(2), #SB_HORZ,0,1)
SetGadgetState(5,ImageID(1))
SetGadgetState(1,0)
channel = 0
EndIf
EndSelect
Case 7
Select EventType()
Case #PB_EventType_LeftClick
If BASS_ChannelIsActive(channel) = #BASS_ACTIVE_PLAYING
Run ! 1
If Run = 1
BASS_SetVolume(0)
SetGadgetState(7,ImageID(5))
Else
SetGadgetState(7,ImageID(4))
BASS_SetVolume(GetGadgetState(8)/10)
EndIf
EndIf
EndSelect
EndSelect
EndSelect
ForEver
DataSection
Open:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$8948544144496104,$C61C5554506D95A5,$905605F770BD977F
Data.q $B011406C1500D95D,$731A729517A657A4,$751B4A719CB26346,$C7473218A531D274,$E638D585943E3197
Data.q $4D63A3A98D143698,$A4943A0CA6A6314D,$E0AEB6F10D812438,$7BDEE2C2EEC8BBB2,$BE7AB35972E612FA
Data.q $9CF739EFCE7FF3DD,$E54D10421247BDFF,$0FCF7DFA371C9287,$C634D3C97B722886,$172B64AE04D08109
Data.q $C8E93E35A4F9462D,$68D218D17C7B97A6,$813D5CD3E287E501,$C417E615166143ED,$48FBB48C88A53FDD
Data.q $4AE1EE1BC34086C4,$5FD6D4D50D753D47,$DC4B48C93E151809,$D80BA41757A975B2,$DCE9F3AEBB152958
Data.q $1815E1EF33189F27,$04A85C212B403208,$26661A428F103001,$9F541537D9F04011,$D73BC58D2333B5FE
Data.q $4A91EC9406A31F89,$C61897176BBBC684,$A2FA613D4FD0265B,$CE9812762C40216E,$4A19547F94F38E85
Data.q $BA57C437C3F0B077,$8720E0E2A5FBF580,$04283560D6B95ADF,$2C64A44F9FA20669,$654B6CA769E6D1E4
Data.q $6A2A55DA9E04E268,$9CBAD292AC6C056F,$E9313ACF315D2E5C,$BC75398A8DB4825E,$5D2639C99974D49F
Data.q $AA6B9C593309062D,$721C9CB6D9C77CA1,$CDDD700CA08A9577,$3293D358A78F59F6,$E78F403A4809D209
Data.q $B0364C4938363B26,$068F4886CC2CDBF7,$7C280A730783F9F8,$D8137D49A9A32EA4,$BED376E1C3ED952C
Data.q $063426133885ECB9,$9CCD25B5E0817074,$EB3B25FF3003F1AF,$E0240D2DF51C4DB7,$979DDAB2BE5939F2
Data.q $D73F20B3F7ECBA4B,$FABF5C17FCC26712,$7ADCF09ECE2E9503,$1995916149DFBC3E,$891C7E2ABCEAC733
Data.q $5B33F7F5B172F20E,$86859D939599040E,$C03DB5A13746208A,$F3B44685099B1B7B,$5566C42BAD1C8DAB
Data.q $F1A417A654347374,$5A67E0394CE731F5,$A10E33AA811DAA6A,$AEA0DE7C7AE2FAF2,$EF645F97EB09D036
Data.q $92A04C2C469087A1,$55934E701020E199,$1884431C63467195,$B6BE70B5B73B96D9,$A83B47F7D61F075B
Data.q $6AE826CB459637DC,$D35976371E1C6B16,$08B8C6281D7D3CD0,$A25B9B153F5D4343,$1F933D5569B587C2
Data.q $BDEE3118DB332418,$6B9376B2115546E1,$6110D62DA240BEBE,$3FFE6AE67137CEC8,$B91AAA0C4AC80006
Data.q $B25C048480771EC5,$949299E5D5D0D0A2,$DBD10B5CF430896C,$6C14131C02AEF37D,$63715FBF6311B129
Data.q $6A6C9C314B20D234,$EC308F4BC9CC2DF2,$1577C32FEA95BB7E,$E791A5A595836CB0,$2CB2E3898A075F50
Data.q $267E9FF781B1A473,$5870B96EFE58B168,$5B11C35614D155DF,$539C65F347D1D5D4,$2359CC108491A9F3
Data.q $ECE2D9EEB3E5E455,$705ADB1549DE86BB,$0CA1F151F3FB5939,$41639D3FAD863890,$FFFB2CA4FA4F4E56
Data.q $0D3D52E5689CD782,$3F5DFB6E18F953D9,$D2DDF2F6F2CD2A57,$C13FF58F71C536D5,$3780F6C1F374372F
Data.q $88968A554F478B33,$6EDEFCD225798000,$5373B25662582E0E,$76AA36A9DCFC15FE,$141ECF8A78EA4F0B
Data.q $35DCE65775C78667,$40569AA93B5763D2,$1DF376C93B5CD146,$A3E17D8E3EF6CEC1,$4CF178B3329702F1
Data.q $3FA5EA3EBDBE6895,$EBE652F3EE649567,$C0F3B2D8C9A4F565,$834D16213E226E91,$F8D10EB574837D1B
Data.q $77852D9746FEB40B,$6862E7F4E7B124C6,$4578CD6180D46B24,$CCC0383D98068632,$21A1763F7EF920F0
Data.q $C28A8B898A5C668C,$D44407B5350A710F,$1C61D0D2F54FE60F,$4900000000C89CFF,$826042AE444E45
Openend:
play:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$8948544144498804,$871855536C7D959D,$75656ED76D2F4B9F
Data.q $58C9B81B716BAB2B,$1884BE544A093207,$8BA1F2A250160120,$3326866858C09532,$43128822518B9980
Data.q $90D10100C674C282,$C274420CB087CA28,$3E52B18C64D83714,$7BDED76BB6B1B74A,$F7F412DAD83703FC
Data.q $EF39CF7F7DE73DDF,$553C4108495E737D,$082E77756F5B36EE,$0CAAA1C0E9EE9886,$CE2629DC0AA10217
Data.q $EF79A25311F2F518,$6290F3C677AE4B3B,$FDD7DCDA27772A01,$A05F949C5E11BD15,$48E36D3274F4747D
Data.q $CD3AE4474A811526,$5D6D483FAA9C756D,$792DA67B63AF5FB3,$A01450288EA286FD,$9CC760DF742A4ABC
Data.q $1A39713B9B0F4FC9,$010A370842D0F402,$918186C3A2243400,$8F071360797C11F8,$ABCDD2C6D33975FD
Data.q $52A4DBA501712FC5,$08CD52D2C961F2A1,$B8AE8447537443E3,$73C624858A180425,$D90AA93F2A37EDBA
Data.q $05177C46B2DA2CAD,$CF641030A90BEB78,$804746931A25C5DB,$46325033FFFC40F3,$2ABEB6512F7AB41C
Data.q $DA8A756CCF10F194,$D1776B64B579407E,$451E6194D73E5CE0,$B90CC8A822005680,$B273640C2410C42F
Data.q $73735A278DCA86B1,$86E0190114EADBC9,$E6EC99A54F698A87,$342E0024065C022C,$169DCB2AEEBCD985
Data.q $7C054027BC663FC6,$3F1E93016E42645C,$49D605ACA8D8D995,$AEB4B878F5639F65,$F4F4A809026D39EC
Data.q $19AF3C500B9E3527,$95AD7D7892538980,$8490D209EE194787,$8E3D07C5ABC5D3BB,$3CFCC2C7CFB2EC3C
Data.q $80D2E6BFC30136A3,$2F21ED400C387084,$8A01EF31997B0E27,$140262E9A5B1DAD7,$ED48F238AD93587C
Data.q $372D300FECA666EE,$8ADEA83105151B27,$2EC0ED6034285080,$AC5782CABBEE3F37,$28C6D46CC0CCE6BC
Data.q $77EFDF1B02F8C297,$5BA7A6C63EFD954D,$8304284281512810,$45CB6AA10663E8C1,$658324A8A368ECF6
Data.q $28793BE4683132AB,$65635DFBF15A6564,$1097A5AF5EB86145,$E80D8E1C37B2DB83,$3F3B0379636104E3
Data.q $9C582C390DEAC0BD,$B07AF1693467BFDE,$A7436AEDEA8AAAC8,$A255102F876ABE8F,$1F9C6A33D02DCA58
Data.q $8A0F2DEE4EEDA06F,$FCBB3B5730D59082,$386A89513543A9C9,$26E34FAE9744A282,$DB84C71D9EFA5025
Data.q $2927E3D7AC777C2D,$EEDEDF51D3ACB709,$1C70F3EE894E6D1D,$E4CEDF79AC066B73,$EFEE3A22C6DBE6D9
Data.q $8434B2F53D7A0F66,$F61D728B9D8D8D23,$35ADF0191A88A0A8,$43492FE6548AAAC0,$DD494FF8944448D2
Data.q $ECCB2CB3F025D029,$180D9E3347CF5B3D,$39DF091DBD81C68D,$F43625C591A752D9,$5FAE9A312A2A0D7A
Data.q $2635C06F9C5D6DED,$D295ACC108491A9F,$0CE61767AB3E4726,$374EEDF1F7AA6C08,$D8E3914A6167946F
Data.q $945DB84DBBD36B45,$BC1084916C4FBAFC,$4BE7F1715F252E50,$36FB96D991F6C945,$556D542DC39AA58A
Data.q $A2EDA7F130C673EA,$75A694EF9EB9FFB7,$EB3AA915A287E4DC,$8D7F50DE65FFA683,$713CD9591DFC2B8F
Data.q $B73381A0C1344AB4,$2E16BB1AF3779A54,$F993FED2F272E833,$E9BC267F54ADA3C9,$5BEF1C4BB13C2823
Data.q $5E4F4A5673991A8F,$CFA73202D8F54CB9,$BAE9EBF7B96290B1,$9A7B393BAFFEC5D4,$38B578FE79B2B23F
Data.q $4DEB3FA1CC7EF77F,$564DE75941D5D0C9,$ED58071CD4847C8C,$56E155450D262409,$0EFECE5E96F69057
Data.q $6183E34D4F68E72D,$F60EF44AFB1DB666,$7D259794D3E8098A,$8246A61EC19987A8,$1BD08A84587CFBE4
Data.q $4871D3A33812EB70,$E789111BF6A6A3AB,$67D0BBEC7ABC0FF1,$454900000000DF7C,$826042AE444E
playend:
pause:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$8948544144496F04,$C61465536C7D959D,$B656C7EDEBBDB77F
Data.q $FB26CC36036541D0,$0C4A017E25069942,$8B2446A251174C92,$304D4CB8B0212881,$310C511A07F64240
Data.q $241218094E19288B,$4E24201610153826,$151B18E662264C98,$EFBBB6BB6B76BAE8,$119BBBACB463FD7D
Data.q $E73CF39F79F77FCF,$C992948ABEE7379C,$F82870778E40E1A2,$86E500FF12CE2C5C,$D537C486912934C1
Data.q $CCCEE63D5D9779CD,$699382372BEEF839,$F3CCC81C34191328,$B0B4BCE84B6C88DD,$E41425DCDF76D2A2
Data.q $FA0306241E364BDD,$85BDB671B4F72E0D,$05DD8D7623976D53,$8C980CD6B65BD979,$4DDF6A949A9B064C
Data.q $0B5529D1EC7F2CF6,$F1C45D30CA2560D6,$3C8D132560028821,$3BB7EF648221CC9C,$563C82D5DBF13968
Data.q $6D41A934FE51B87D,$AAB0DBDE0D2B52A3,$D0DA218B35D33AD6,$C9720C80423A4D09,$E3E1A67E7AE73E62
Data.q $94DF3B9597BE78A6,$8EA95CFEDE0C98DF,$6EAC1BB59DFAF8C6,$93F7E4C04B9446AB,$A15C0EE9CA2E2A1E
Data.q $D89E2CF67C534B7E,$2B35360CA54F2755,$E5535BAC5C7DBD79,$A3FFBA5137739D9E,$3388A4E0A0B0EDF0
Data.q $A4BBBA7FBC34AD9D,$DC02AA32755DB284,$F9DDD323F16DB3F4,$C400280AB9448539,$AECD001FA769A484
Data.q $6E3B8D000F75FAB0,$60A0643D6A6B84A6,$164A9281E2FE6100,$05BC53B3A0B6783E,$73F7EBC33FEA566C
Data.q $0C0E0736F3FD7365,$FBAA9D5183C95386,$BA7C3958E770013B,$EF9C521725458014,$2B6FA9AD5BB14A3A
Data.q $C5B6B6BC7D82F859,$A2B30E1ABE465E5F,$AE25BCE07365CCA2,$00244890A2D2C8A4,$30031259D4D42448
Data.q $BDB378C208E5A4B0,$1AA9621A19E19794,$810308B8A4B8B289,$3C7880C3573692C4,$01893CFB7E3C400E
Data.q $7995F9821E731448,$99848D48B7D43E1C,$38BA61122E466337,$9B4E6991D1E1E180,$B0A0890F8C5A4B09
Data.q $82154F37D2244BC0,$791371048DBB7669,$D2716E303A63E844,$9C5CD5848245D03B,$0C355727E0236DCB
Data.q $91336ECD07A8408C,$6D7B7474689D2182,$0614801ED1020C8E,$B94C52E1C5EA1FD0,$08C6AA40847E8303
Data.q $D5864F6C9143077F,$70D8C45C90421244,$86FDBB1D2B462102,$423F80DCE6108231,$EDEF68D3553E1656
Data.q $749132EA99CDCC0D,$1E690838B1EB76E3,$FFC2C131906188C5,$58AABB4EDD8FD979,$9E52595C19D9D638
Data.q $1741D4818C60EE6F,$511E61740C212566,$2AAAA0FC1CD059DB,$A2A7C9E0F9DA3B07,$57A440EF4B4B972E
Data.q $C3C6085D03B9842C,$B4AFA45D2E213DBD,$D97FB2ADABF55682,$9F1B5D2DA3D3E57A,$6B0B766A234E2EAE
Data.q $DFA0B766CE8E8CB6,$8532A8B00312511A,$B2F34C6B9EDF6327,$2F252915D4A348FD,$E5E171F5AFB2526E
Data.q $2AA6B94539FCEC9A,$4BB4D1768F5A24EF,$32DDFBE0B29717B4,$1E2CA75B3F5DFA91,$BDE68F3ACD48E7E8
Data.q $E75FB62FC4BFFDCB,$3A1E22C281916DA3,$554E0F7180FF24DE,$78AFF675FF4CF2AD,$F123BF4D9715A9D5
Data.q $660644FE69BBC733,$8932797EF4FAA4CC,$AF8795EBE5CC9E9B,$964B05255E79A55D,$7DC2AFF9D73532E7
Data.q $39C74832FA1C4257,$F2CD9385E22C2D7E,$6F65FD1F09F3D8D2,$D67EC1F500D0CE28,$F37839714F07B9CD
Data.q $183018606566641D,$E817E3A095DBD18A,$C94FB674CF5E9DFA,$6B5E313217C4F1A1,$C7B15ABE3C648342
Data.q $A31E91661B1A5987,$13BB481A57261C22,$4DA3F1A6BCE0E69F,$F1A64FA93ED4F5A3,$40E7F08C0FBBC50F
Data.q $4E454900000000DC,$826042AE44
pauseend:
stop:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$8948544144490604,$C71465536C6D95A5,$5B2B65F6F4BD777F
Data.q $CA4E986C0742B2B6,$250C6F89518B21BA,$D11312538BA09706,$3532E2C084890310,$314E3507D96600C1
Data.q $60C14474C97C4944,$82016105059898D0,$5B6399809904613A,$1DEDBDAC2FAE8CAD,$D2BAE93083F1F7BD
Data.q $EFFF9CE4F76FFFA1,$2084248F39B9E739,$458CAEB916F6DA9B,$19F1860F2C6A489E,$B14082184084B306
Data.q $5F91D07C8B765383,$3CD9224667D5EFB4,$81DDF37B6D00A9A4,$5697A78A78EB7891,$F7729CB858EF9AD7
Data.q $8D4E106041290A62,$1C5DBD1387B06170,$EE507C28B710B9ED,$9403386D7DB6DC2E,$F32E043521D2D801
Data.q $D7755CCFF703FD71,$802347E824A84C3A,$D8DC147C89800A8E,$D3B4DF27C11C4058,$DE6B3772A1D7F875
Data.q $25DA680AC87E2CDE,$3269AD3637830935,$44521E8C63CFB5CD,$580A4E0660108EB3,$43B77B699FC1C9C2
Data.q $ABE28BC77AB1732B,$926A0D491FCBC00C,$2930E4C9BF595E2F,$64BA4FDFB2039CA8,$5B65A45D0818F8EC
Data.q $166CED0F1E7F3687,$B0F7253A5B002747,$17E63956EBCDB39F,$55FF8D34C0CA86DD,$A6EBEF1C3C36121E
Data.q $3B552F5E0363CDED,$5AD20E5C032A859B,$9502A8ACA3A95F77,$0EEE548900424021,$C6200C2498B024F2
Data.q $27DDE965ADE9DC1F,$52AD8097F4FAFBCA,$6D6E2E4182B887CB,$8002418AC56CD279,$804E5CF8BF53AEA4
Data.q $BE272A07E7CCB673,$7D7E79F88810144D,$D18B1C994557D057,$335DB15B37655D58,$E64C9923C8300097
Data.q $3A003513CDC6A404,$8C94557C2E855C31,$2B79D4AB8E42B18D,$051226F208E8183D,$4957920272D34D02
Data.q $DD6A4B3A70E7FBAB,$A8C78E4CBFDFBD7C,$2A549F4089C73399,$74098CC89681D5A6,$591AFEE3C45DCA2A
Data.q $E3471998B16599D7,$531224EBA532DFC6,$A6D5AE349A924F54,$0D94E20A1330EECB,$D398B1441D142303
Data.q $027355551D711212,$0F11983A908A6A12,$CAB8D908EBA2095F,$298664B0BC68915F,$4E116CDCE865212D
Data.q $10BC793EBA1A1200,$0A2B20202829C60A,$F6C54585A1C3C3BD,$68039A7230DD04B4,$2085FBF01322E81A
Data.q $BEC1C794B2BD0B16,$03BD2CAFAF6AC8BE,$CF69D99E9480FA7D,$7D9965901CAC5009,$BB5447E1EB797A67
Data.q $A6A9E641D0DCAEDD,$460F0D118C98A392,$25BA6AA2FF167739,$6ABEED4A372B0421,$D6E6C59950DA3F36
Data.q $FD367E0279DAFED4,$64CE140321D8A5F4,$CA4778F469C78FFB,$FBFBBCCBFF9C7816,$F788B95BD0F74E7E
Data.q $1754B378FD7586E1,$D7144A1BB5DBE51E,$897BDB3F327FC76C,$1CF70F0AE1E35A77,$9AAB0000D3E710EA
Data.q $59F1A7B12F46C7A4,$C7E64B7A5559529B,$99CD089EF9D00D0F,$78F5C8E23DB1C34B,$CFF7BA51BF5993C6
Data.q $EF5E5F296A6B3A21,$62FFB1A9BB69D8A4,$E9C9399C23BBFD94,$2B6914E91D4F0F0A,$2D920BE57F47CA78
Data.q $B70586CA3225A61A,$FC95995703E95253,$1926895C06181982,$1BFFD02FCCE71FEE,$5D88B33EBCA525C3
Data.q $04A6BD93E3153F87,$C12D1649CF83D75C,$B1D524A96582648A,$8A02362C20614E18,$EE856677C28A5395
Data.q $01BF8F3654899FA3,$DAD8782809CBC4EA,$444E454900000000,$826042AE
stopend:
high:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$8948544144491205,$C51465146C7B957D,$D2ECBBB6761DD37F
Data.q $42D2B694B61616CA,$B148A82021A116E9,$D112121156821048,$8214055021208120,$4418A235135211E1
Data.q $57C183041AD15012,$7942A404290DE10C,$6594296976948795,$28FF3E6774F7DD1F,$EE7326BF9CB76A14
Data.q $1257B9BEF9EE67BD,$5A3BA5762A1DD042,$7C78267162D7FE83,$417420423E9D74B8,$A0F9262D671B6F73
Data.q $F168DF0FEEFA67AD,$ABB150264A435777,$304D5EBC25B9B3A7,$0990F871B1514C6B,$1D023B0D229F3B64
Data.q $D64E6AEE6B85A25F,$B0A4D85AFAAAA5EC,$5F1CED66B699DB35,$654BB6AB022EA117,$7AE7B8CA76F977CD
Data.q $D4A211030F351B4D,$7A0600088D19A711,$DF04612E4CC4E0A2,$CCDE2E47BD81B1FF,$B770E225F3FB3276
Data.q $C9F3A172A45BE502,$822C960186E5D9E2,$3D0085ADD0209354,$534FB8CE08CAC0C8,$1B9983A678F6E5F1
Data.q $1BE0F81176BF13DF,$17F315E7E3122CA9,$CE80570885066C1B,$2631CDC950DDD5DD,$C0DBDEA2E0B19191
Data.q $6178B303E3DB35F2,$52AAB021D55152D3,$69BCE96971363672,$4BBEA1124FE981B6,$C5BB2C542367F389
Data.q $8482927692837D8E,$D3E2A31ED44E3C99,$2A5A6E140505F5E3,$9E4BEB0F5DC03222,$4DC221CF4CCB6BED
Data.q $159054FA7C94EA40,$03DC2E862A301AF3,$66282C8C1B8840E8,$FBDAB5B5D993E8CC,$0F1E1C36F9696AC0
Data.q $15254C6EBF97AB0D,$567E55E3C4A7689D,$CBA5B02E3C4EBDCE,$7955DF89DE1EADEC,$00565CB82DC3A19B
Data.q $FE773137F669580C,$6214394C90AB8F5E,$9D198A98C5A1517A,$00426B6A318D0D28,$AA3D7D69B1B4EE78
Data.q $60E8EF5509167EDA,$F6A0CB2A4C9BE6DB,$5AD86CFD8713987C,$57039A4708468000,$423872899060F621
Data.q $14821A3A1E7E4149,$A495D968F8F80EAA,$AA8005208109A836,$FA992955DEF0F7FD,$C60C4E13CEB3E504
Data.q $EC5118D2EDF7CB2C,$8870E5E34D3DB7E4,$BFDAD02067FBFD61,$A02E4B6B6B68D340,$7FDF8D3E3D1E7C3E
Data.q $2A2344399582C5BA,$800ED63B19F94F67,$34DC3841DB272340,$54464C98FA34D64C,$568FA8A84D4080E2
Data.q $91C0E3F72A6D047A,$46B21E806D7AE065,$C7231F45EAE25D9A,$0F5E23362D623B5A,$146E037BA3AEB219
Data.q $E3C43D860EFDFB53,$E23786B8B102A4F1,$F1478B11F41FC006,$BBA1025162C4DC46,$341EAD7D630F2378
Data.q $C207F6DC6DEB210D,$096D1200061EF669,$C1DE9B41DE4B4D34,$60852B2FD08E5DD5,$DCB66714772DCAAB
Data.q $2CD2B56309EBCF29,$E921DE8D8D350A2B,$7169227A02ED2DBD,$91C8BDA268155500,$68EA72B12C8C3D3F
Data.q $01C1DA951C2928FB,$2C8D44C983CD7BFC,$C0B33FD6B6B070A5,$0A7236A9B8C00995,$DFE66B2A3D36F694
Data.q $DAD090AAA3F9FEE6,$F5A64A36ABE96CAF,$5019C78A6E75ABE6,$94127D50070752CC,$350BEECCB2C9F654
Data.q $1458B162293A567C,$661FBE43BB190EEC,$90DD17DCC8D73321,$FA0B1986C3A09100,$D4A0D646D4BA3002
Data.q $44B95C03BA34F64E,$260842498E22D0D3,$52F2588AB836922F,$BC62D7DC6B527E59,$E496C1C28B46EA5D
Data.q $3734ABBAC3628F31,$201946C45FEFF8B1,$5E7A609D4F6B17AD,$0497465E6E664B41,$7778B34777C2AE67
Data.q $1C02037EEB4D1B86,$87F26A6AB9C7503B,$2A595FAE323C35F2,$76859CD7F1EEF895,$9AD8393496CFD1C5
Data.q $6A97007293936AC0,$8F272FB0FAC5F0EE,$00093B57176D0FA7,$9D8777BE5E972B4C,$1F7D85F92B34DFD3
Data.q $953D50E270FFC3EF,$EF8ECA00FFB7859B,$A732B2EFBC1F4714,$61CA9375B99E922C,$0CEF4192984F64C5
Data.q $F3D80435370B63F3,$C7939738670B9FA3,$BA4B20D3A295A38C,$963E039923BF27F4,$7CF6307730B1EFFB
Data.q $81ED69E953323817,$CA9D6346206B43AE,$BEF68D32EEA07F85,$107E472D9D2BDC7C,$FE780781524C665D
Data.q $651631328F14C92D,$D08644285146227C,$15672A4ACD332611,$443B55638546FD85,$C8511B207FE77FB7
Data.q $0000000042646E48,$826042AE444E4549
highend:
mute:
Data.q $0A1A0A0D474E5089,$524448490D000000,$1800000018000000,$3D77E00000000608,$59487009000000F8
Data.q $0E0000C40E000073,$00001B0E2B9501C4,$894854414449E604,$C6146554507D957D,$46158585D85DD77F
Data.q $B01145D43E403656,$CC69CA52CC72CA64,$2B1AD19C9B529519,$63F2CAD14A533499,$C662B1B249B269CC
Data.q $29B2B1D1B52C288F,$44150AC946533467,$E5D9710164402951,$FEDF7BDEEEC2F763,$9CEF5FCF5DDD4040
Data.q $BEE7B9E739E79EF3,$881CB6CA10421247,$25EBDF3C777576B5,$042E18D34B22E1D7,$64C173330CB41342
Data.q $FEF83D8A8E6EFFD4,$82305218508EB6C2,$9B3CDA5B12A2072D,$3F84E765260B0A7D,$218907C4D4973634
Data.q $B1B6A3694B86810E,$EB515D394795B382,$61B3189A99D81A31,$BAC10051005762E3,$3E667B16E5AF2912
Data.q $21D04B89ACE86531,$0191505A5E1D43D3,$89192244818511D0,$E4F471B64737C107,$295A2A2C89A91BA5
Data.q $08152C50504908FE,$9846E815162BAD8D,$1290CE8502A6E992,$6F9C099A21618402,$AC9378979F2D87FC
Data.q $C10063F16DFDB0BC,$EF0FCBDC9E52DDDA,$AE64067599D0AFE4,$4B48FBD7D5F28102,$0D1644C7ABC7BF0B
Data.q $24A6F1286E14EBCE,$C100F4E2558ED4F3,$55E5CEC9B12952BA,$D32147625399664B,$5BD9BBC753DAB410
Data.q $086C404A40F8A4EC,$CB6329AF28D89112,$B1DCC832321A6727,$4F360E5B807AC84A,$CC869B149CDE3C7B
Data.q $8B88EDF8000A400D,$C68219B149DB568F,$30E4670F3D4DC035,$1AEA3535A9B3D1E9,$C1C3AB0BB854BD60
Data.q $408823C2F385F5F5,$7C9BBED0F92027A3,$46195180840DDEF2,$8E8021DA0AC97F4A,$D47F9ABCEC3A5A68
Data.q $6E66EDDE92499591,$E0DBC8823C29A676,$02F46E68BB175512,$00FB22EBE1E35B50,$54DFA0ED07D3E280
Data.q $D7126564AC6358DC,$465A6647BD74CDDD,$F60010C1150D0DBA,$0141AD77F3F3B2ED,$02FF3F901A384A7C
Data.q $591A3F5C28A333A3,$194C8F35616B78D1,$909950D0D34B2BCA,$1EF553ED874FC893,$C1D4082C1213E337
Data.q $81283FBF7E1AFC2A,$29EC21E64DF9F4A2,$9B9CE973F3EFC3AA,$800B1B9498BA7FF3,$1F63C78AD52D2540
Data.q $F8E18D1B865557AF,$9F17A53E963FD2F0,$7E3F1F9F03BC17CF,$EECCB74F0639DC3E,$179D35B35800FFA2
Data.q $1C399301C6DEB35F,$9D9CD0D35E8B03A7,$BB91EDB3838C188D,$091EE40941BD7AF0,$7737B151EC88DCA7
Data.q $D1E9C56DABABDC0C,$45550397571E7C0D,$989E9D1DAD3F35E8,$1AAAA8325DDD30B8,$9654F8A3F1451F0C
Data.q $6C6F3233B9C6B9CF,$2B514943D67552B4,$74E0022537379502,$50306F45A68E8878,$34CC3B1B1CE4D4D9
Data.q $848901FF5C128328,$0B0B03FF2084584A,$5EBC36167C505A57,$7FB0AFA2A82C5447,$DEF34A548D181D6B
Data.q $1BCDCFC50A724965,$4A6DED322BFAED9C,$40C71AD14CAAF9DF,$1FFD085D0E193E2C,$B90A28D5D586DBF4
Data.q $FA7C95D5839EBD7A,$90003264C9B233F4,$984F3BEB6C90336C,$7D05DACF423AC26C,$35BF5F290857EB63
Data.q $D971F632F5727635,$B6972C6608424994,$90F4BCD9F2B36565,$8CDD98ACDDCB1749,$B007BE852F8702D9
Data.q $FBF8ACEC5A35D36D,$C6CA198807AED890,$1A4B68CB6B99CABF,$C4D1371A4D04B369,$AA8CD05AD812C717
Data.q $AAA8EBC76582DE86,$CF1DC15F1C7D32A0,$BF3B5734D2559CF5,$0E603EB067165E2E,$05D66D12A5DDD009
Data.q $3D9B67C9BCAE5D8D,$D711289D8F1B34AE,$6ECD2055980022EE,$D21A452FB9FEC9BF,$7E56BDC32BEFE333
Data.q $046133852FD281A2,$80FEFD538BF66779,$06F9B934B9733995,$61699DCD4873E3A5,$9DEBF6C0BEF22598
Data.q $D2AA79F541DBDE1C,$19DEAE2A553FCC6C,$3B22952C67F4BA0F,$18E46CB3B476145D,$5441149AC0B3D2E2
Data.q $34BD9D5D069A1874,$685775073EA8F9D5,$9F14B1A1E3E78B8A,$FA09412FBC0456FC,$E987B7A32597C9ED
Data.q $BB76C97A554C3DBD,$10C5A48C610D08B1,$CA06E163818305C1,$03FF1850942F7F4E,$AB321ED7F6360D85
Data.q $444E454900000000,$826042AE
muteend:
EndDataSection
Edit :Modified for Mono files
Edit #2:Modified and added new feature