Embedded music in Datasection example

Share your advanced PureBasic knowledge/code with the community.
firace
Addict
Addict
Posts: 946
Joined: Wed Nov 09, 2011 8:58 am

Embedded music in Datasection example

Post by firace »

Code: Select all


InitSound()
CatchMusic(2, ?S, 9908)
PlayMusic(2)

OpenWindow(0, 100, 100, 140, 80, "")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow 
end 

DataSection  ;;   Maktone
 S:
  Data.b $61,$6E,$6E,$69,$65,$27,$73,$20,$73,$6F,$6E,$67,$00,$00,$00,$00,$00,$00,$00,$00,$63
  Data.b $68,$69,$70,$76,$65,$72,$73,$69,$6F,$6E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$62,$79,$20,$6D,$61,$6B,$74,$6F,$6E,$65,$20
  Data.b $6F,$66,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$BF,$00,$40,$00,$00,$00,$00,$63
  Data.b $6C,$61,$73,$73,$26,$73,$75,$70,$65,$72,$73,$74,$61,$72,$73,$00,$00,$00,$00,$00
  Data.b $00,$00,$3E,$00,$40,$00,$06,$00,$38,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$D7,$00,$40,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$14,$00,$30,$00,$06,$00,$0E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$20,$00,$26,$00,$12,$00,$0E,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$14,$00,$40,$00,$06,$00,$0E,$6D,$61,$6B,$74,$6F,$6E,$65,$40,$63,$68,$69
  Data.b $70,$6D,$75,$73,$69,$63,$2E,$6E,$75,$00,$00,$00,$20,$00,$40,$00,$12,$00,$0E,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$00,$01,$02,$03,$04,$05,$06,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$4D
  Data.b $2E,$4B,$2E,$00,$D6,$84,$81,$01,$40,$3C,$00,$00,$00,$0C,$00,$00,$00,$0F,$04,$00
  Data.b $00,$04,$00,$00,$00,$04,$A2,$00,$00,$00,$00,$00,$D6,$8C,$1A,$00,$00,$06,$0A,$00
  Data.b $00,$06,$20,$00,$00,$00,$00,$00,$00,$04,$81,$00,$00,$04,$00,$00,$00,$06,$20,$00
  Data.b $00,$00,$00,$00,$00,$06,$0A,$00,$D6,$84,$00,$00,$00,$06,$20,$00,$00,$00,$00,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$00,$00,$06,$20,$00,$00,$00,$00,$00,$D6,$8C,$1A,$00
  Data.b $D6,$8C,$1E,$00,$00,$06,$20,$00,$00,$00,$00,$00,$00,$04,$00,$00,$00,$04,$00,$00
  Data.b $00,$06,$20,$00,$00,$00,$00,$00,$D6,$8C,$0C,$00,$E2,$84,$00,$00,$00,$06,$20,$00
  Data.b $00,$00,$00,$00,$00,$04,$00,$00,$00,$04,$00,$00,$00,$06,$20,$00,$00,$00,$00,$00
  Data.b $E2,$8C,$1A,$00,$D6,$8C,$1E,$00,$00,$06,$20,$00,$00,$00,$00,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$00,$00,$02,$10,$00,$00,$00,$00,$00,$D6,$8C,$0C,$00,$FE,$84,$00,$02
  Data.b $A6,$34,$A2,$00,$FE,$70,$37,$00,$00,$04,$00,$00,$00,$04,$00,$00,$00,$04,$00,$00
  Data.b $FE,$50,$37,$00,$FE,$8C,$1A,$00,$E2,$8C,$1E,$01,$53,$34,$00,$00,$7F,$70,$37,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$00,$00,$0D,$00,$00,$FE,$50,$37,$00,$E2,$8C,$0C,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$D6,$84,$81,$02,$80,$34,$A2,$01,$40,$60,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$01,$40,$7A,$08,$00
  Data.b $00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00,$FE,$7A,$08,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$00,$D6,$7A,$08,$00,$00,$06,$02,$02,$80,$34,$00,$01
  Data.b $40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$40,$60,$47,$01,$40,$60,$0C,$00
  Data.b $00,$02,$04,$00,$D6,$2C,$10,$01,$40,$50,$47,$00,$00,$00,$0C,$00,$D6,$8C,$1E,$02
  Data.b $80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00
  Data.b $D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01,$40,$50,$47,$00,$D6,$4C,$15,$00
  Data.b $E2,$84,$00,$02,$3A,$34,$00,$01,$1D,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$01,$1D,$7A,$08,$00,$00,$06,$02,$01,$1D,$34,$00,$00
  Data.b $8F,$70,$47,$00,$E2,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $BE,$7A,$08,$00,$00,$06,$02,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$20,$00,$01,$1D,$60,$47,$01,$1D,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01
  Data.b $1D,$50,$47,$00,$00,$00,$0C,$00,$E2,$8C,$1E,$02,$3A,$34,$00,$01,$1D,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$D6,$4C,$15,$00,$00,$06,$02,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$D6,$4C,$15,$00,$00,$0C,$00,$01,$FC,$34,$00,$00
  Data.b $FE,$60,$37,$00,$D6,$4C,$0A,$00,$00,$00,$00,$00,$00,$04,$00,$00,$FE,$50,$37,$00
  Data.b $FE,$7A,$08,$00,$00,$00,$00,$00,$FE,$34,$00,$00,$7F,$70,$37,$00,$D6,$7A,$08,$00
  Data.b $00,$00,$00,$00,$00,$04,$00,$00,$FE,$50,$37,$00,$AA,$7A,$08,$00,$00,$00,$00,$01
  Data.b $FC,$34,$00,$00,$FE,$70,$37,$00,$D6,$4C,$0A,$00,$00,$00,$00,$00,$00,$04,$00,$00
  Data.b $FE,$50,$37,$00,$00,$00,$00,$00,$00,$00,$00,$00,$D6,$20,$00,$00,$FE,$60,$37,$00
  Data.b $FE,$60,$0C,$00,$00,$00,$00,$00,$D6,$2C,$10,$00,$FE,$50,$37,$00,$00,$00,$0C,$00
  Data.b $FE,$84,$00,$01,$FC,$34,$00,$00,$FE,$70,$37,$00,$D6,$4C,$0A,$00,$00,$06,$0A,$00
  Data.b $00,$04,$00,$00,$FE,$50,$37,$00,$00,$00,$00,$00,$FE,$84,$00,$00,$FE,$34,$00,$00
  Data.b $7F,$70,$37,$00,$D6,$4C,$15,$00,$00,$06,$0A,$00,$00,$04,$00,$00,$FE,$50,$37,$00
  Data.b $D6,$4C,$15,$00,$FE,$84,$00,$02,$80,$34,$00,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01
  Data.b $40,$34,$00,$00,$A0,$70,$47,$00,$FE,$7A,$08,$00,$00,$06,$02,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$00,$D6,$7A,$08,$00,$E2,$83,$0F,$02,$80,$34,$00,$01,$40,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00
  Data.b $FE,$8C,$1E,$00,$D6,$20,$00,$01,$40,$60,$47,$01,$40,$60,$0C,$00,$00,$04,$00,$00
  Data.b $D6,$2C,$10,$01,$40,$50,$47,$00,$00,$00,$0C,$00,$D6,$83,$0F,$02,$80,$34,$00,$01
  Data.b $40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00
  Data.b $00,$00,$00,$00,$E2,$8C,$1E,$01,$40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$D6,$4C,$15,$01,$1D,$84,$00,$01
  Data.b $AC,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$01,$1D,$7A,$08,$00,$D6,$8C,$1E,$00,$D6,$34,$00,$00,$8F,$70,$59,$00
  Data.b $D6,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$01
  Data.b $53,$84,$00,$01,$AC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01
  Data.b $1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00
  Data.b $00,$00,$0C,$00,$00,$06,$02,$01,$AC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$D6,$4C,$15,$00,$00,$06,$02,$01,$C5,$34,$00,$01,$1D,$60,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00
  Data.b $00,$06,$02,$00,$E2,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$02,$04,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$01,$53,$8C,$2E,$01,$C5,$34,$A2,$01
  Data.b $1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$81,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00
  Data.b $00,$02,$04,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$01,$53,$8C,$1E,$01
  Data.b $C5,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$E2,$34,$00,$00,$8F,$70,$59,$00
  Data.b $D6,$4C,$15,$00,$00,$02,$04,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$01
  Data.b $53,$8C,$0E,$01,$FC,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00,$00,$06,$02,$00,$FE,$34,$00,$00
  Data.b $8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$02,$04,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $AA,$7A,$08,$01,$53,$8C,$07,$01,$FC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$06,$02,$00,$D6,$2C,$10,$01
  Data.b $1D,$50,$59,$00,$00,$00,$0C,$01,$1D,$84,$00,$01,$FC,$34,$00,$01,$1D,$70,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$06,$0A,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$01
  Data.b $1D,$84,$00,$00,$FE,$34,$00,$00,$8F,$70,$59,$00,$D6,$4C,$15,$00,$00,$06,$0A,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$01,$1D,$84,$00,$02,$3A,$34,$00,$01
  Data.b $1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01
  Data.b $1D,$7A,$08,$00,$00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00
  Data.b $00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$00,$FE,$84,$00,$02
  Data.b $3A,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$00,$00,$00,$01,$1D,$8C,$1E,$00,$D6,$20,$00,$01,$1D,$60,$59,$00
  Data.b $D6,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$00
  Data.b $E2,$83,$1F,$02,$3A,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$FE,$8C,$1E,$01,$1D,$34,$00,$00
  Data.b $8F,$70,$59,$00,$D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $D6,$4C,$15,$00,$D6,$83,$0F,$02,$80,$34,$00,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$03,$00,$00,$00,$04,$00,$01,$40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01
  Data.b $40,$34,$00,$00,$A0,$70,$47,$00,$FE,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$00,$D6,$7A,$08,$00,$00,$06,$02,$02,$80,$34,$00,$01,$40,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$00,$D6,$20,$00,$01,$40,$60,$47,$01,$40,$60,$0C,$00,$00,$02,$04,$00
  Data.b $D6,$2C,$10,$01,$40,$50,$47,$00,$00,$00,$0C,$00,$D6,$8C,$1E,$02,$80,$34,$00,$01
  Data.b $40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00
  Data.b $00,$06,$02,$00,$00,$04,$00,$01,$40,$50,$47,$00,$D6,$4C,$15,$00,$E2,$83,$0F,$02
  Data.b $A6,$34,$00,$01,$53,$60,$37,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $53,$50,$37,$01,$53,$7A,$08,$00,$00,$06,$02,$01,$53,$34,$00,$00,$AA,$70,$37,$01
  Data.b $1D,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$53,$50,$37,$00,$E2,$7A,$08,$00
  Data.b $00,$06,$02,$02,$A6,$34,$00,$01,$53,$70,$37,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$53,$50,$37,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01
  Data.b $53,$60,$37,$01,$53,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01,$53,$50,$37,$00
  Data.b $00,$00,$0C,$00,$E2,$8C,$1E,$02,$A6,$34,$00,$01,$53,$70,$37,$00,$D6,$4C,$0A,$00
  Data.b $00,$06,$02,$00,$00,$04,$00,$01,$53,$50,$37,$00,$00,$00,$00,$00,$00,$06,$02,$01
  Data.b $53,$34,$00,$00,$AA,$70,$37,$00,$D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01
  Data.b $53,$50,$37,$00,$D6,$4C,$15,$00,$00,$0C,$00,$02,$FA,$34,$00,$01,$7D,$60,$37,$00
  Data.b $D6,$4C,$0A,$00,$00,$00,$00,$00,$00,$04,$00,$01,$7D,$50,$37,$01,$7D,$7A,$08,$00
  Data.b $00,$00,$00,$01,$7D,$34,$00,$00,$BE,$70,$37,$01,$40,$7A,$08,$00,$00,$00,$00,$00
  Data.b $00,$04,$00,$01,$7D,$50,$37,$00,$FE,$7A,$08,$00,$00,$00,$00,$02,$FA,$34,$00,$01
  Data.b $7D,$70,$37,$00,$D6,$4C,$0A,$00,$00,$00,$00,$00,$00,$04,$00,$01,$7D,$50,$37,$00
  Data.b $00,$00,$00,$00,$00,$00,$00,$00,$D6,$20,$00,$01,$7D,$60,$37,$01,$7D,$60,$0C,$00
  Data.b $00,$00,$00,$00,$D6,$2C,$10,$01,$7D,$50,$37,$00,$00,$00,$0C,$00,$FE,$84,$81,$02
  Data.b $FA,$34,$A2,$01,$7D,$70,$37,$00,$D6,$4C,$0A,$00,$00,$06,$0A,$00,$00,$04,$00,$01
  Data.b $7D,$50,$37,$00,$00,$00,$00,$00,$FE,$84,$00,$01,$7D,$34,$00,$00,$BE,$70,$37,$00
  Data.b $D6,$4C,$15,$00,$00,$06,$0A,$00,$00,$04,$00,$01,$7D,$50,$37,$00,$D6,$4C,$15,$00
  Data.b $FE,$84,$00,$02,$80,$34,$00,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01,$40,$34,$00,$00
  Data.b $A0,$70,$47,$00,$FE,$7A,$08,$00,$00,$06,$02,$00,$00,$04,$00,$01,$40,$50,$47,$00
  Data.b $D6,$7A,$08,$00,$E2,$84,$00,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$FE,$8C,$1E,$00
  Data.b $D6,$20,$00,$01,$40,$60,$47,$01,$40,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01
  Data.b $40,$50,$47,$00,$00,$00,$0C,$00,$D6,$83,$0F,$02,$80,$34,$00,$01,$40,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00
  Data.b $E2,$8C,$1E,$01,$40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$00,$D6,$4C,$15,$00,$E2,$84,$00,$02,$3A,$34,$00,$01
  Data.b $1D,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$01
  Data.b $1D,$7A,$08,$00,$00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$E2,$7A,$08,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$BE,$7A,$08,$00,$00,$06,$02,$02
  Data.b $3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$47,$01
  Data.b $1D,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$47,$00,$00,$00,$0C,$00
  Data.b $00,$06,$02,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$01,$1D,$34,$00,$00
  Data.b $8F,$70,$47,$00,$D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $D6,$4C,$15,$00,$00,$06,$02,$02,$3A,$34,$00,$01,$1D,$60,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$01,$1D,$7A,$08,$00,$00,$06,$02,$01
  Data.b $1D,$34,$00,$00,$8F,$70,$47,$00,$E2,$7A,$08,$00,$00,$02,$04,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$BE,$7A,$08,$00,$E2,$8C,$2E,$02,$3A,$34,$00,$01,$1D,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$47,$01,$1D,$60,$0C,$00,$00,$02,$04,$00
  Data.b $D6,$2C,$10,$01,$1D,$50,$47,$00,$00,$00,$0C,$00,$E2,$8C,$1E,$02,$3A,$34,$00,$01
  Data.b $1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$D6,$4C,$15,$00
  Data.b $00,$02,$04,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$D6,$4C,$15,$00,$E2,$8C,$0E,$02
  Data.b $3A,$34,$00,$01,$1D,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$01,$1D,$7A,$08,$00,$00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00
  Data.b $E2,$7A,$08,$00,$00,$02,$04,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$BE,$7A,$08,$00
  Data.b $E2,$8C,$07,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01
  Data.b $1D,$60,$47,$01,$1D,$60,$0C,$00,$00,$06,$02,$00,$D6,$2C,$10,$01,$1D,$50,$47,$00
  Data.b $00,$00,$0C,$00,$D6,$84,$00,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$06,$0A,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$D6,$84,$00,$01
  Data.b $1D,$34,$00,$00,$8F,$70,$47,$00,$D6,$4C,$15,$00,$00,$06,$0A,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$D6,$4C,$15,$00,$D6,$84,$00,$02,$3A,$34,$00,$01,$1D,$60,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$01,$1D,$7A,$08,$00
  Data.b $00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$E2,$7A,$08,$00,$00,$06,$02,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$BE,$7A,$08,$00,$E2,$84,$00,$02,$3A,$34,$00,$01
  Data.b $1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $00,$00,$00,$00,$D6,$8C,$1E,$00,$D6,$20,$00,$01,$1D,$60,$47,$01,$1D,$60,$0C,$00
  Data.b $00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$47,$00,$00,$00,$0C,$00,$FE,$84,$00,$02
  Data.b $3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$00,$00,$00,$00,$E2,$8C,$1E,$01,$1D,$34,$00,$00,$8F,$70,$47,$00
  Data.b $D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$D6,$4C,$15,$00
  Data.b $D6,$83,$0F,$02,$80,$34,$A2,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$81,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01,$40,$34,$00,$00
  Data.b $A0,$70,$47,$00,$FE,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00
  Data.b $D6,$7A,$08,$00,$00,$06,$02,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$20,$00,$01,$40,$60,$47,$01,$40,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01
  Data.b $40,$50,$47,$00,$00,$00,$0C,$00,$D6,$8C,$1E,$02,$80,$34,$00,$01,$40,$70,$47,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00,$00,$06,$02,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$00,$D6,$4C,$15,$00,$E2,$83,$0F,$02,$3A,$34,$00,$01
  Data.b $1D,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$01
  Data.b $1D,$7A,$08,$00,$00,$06,$02,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$E2,$7A,$08,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$BE,$7A,$08,$00,$00,$06,$02,$02
  Data.b $3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$47,$01
  Data.b $1D,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01,$1D,$50,$47,$00,$00,$00,$0C,$00
  Data.b $E2,$8C,$1E,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$06,$02,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$01,$1D,$34,$00,$00
  Data.b $8F,$70,$47,$00,$D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $D6,$4C,$15,$00,$00,$0C,$00,$01,$FC,$34,$00,$00,$FE,$60,$37,$00,$D6,$4C,$0A,$00
  Data.b $00,$00,$00,$00,$00,$04,$00,$00,$FE,$50,$37,$00,$FE,$7A,$08,$00,$00,$00,$00,$00
  Data.b $FE,$34,$00,$00,$7F,$70,$37,$00,$D6,$7A,$08,$00,$00,$00,$00,$00,$00,$04,$00,$00
  Data.b $FE,$50,$37,$00,$AA,$7A,$08,$00,$00,$00,$00,$01,$FC,$34,$00,$00,$FE,$70,$37,$00
  Data.b $D6,$4C,$0A,$00,$00,$00,$00,$00,$00,$04,$00,$00,$FE,$50,$37,$00,$00,$00,$00,$00
  Data.b $00,$00,$00,$00,$D6,$20,$00,$00,$FE,$60,$37,$00,$FE,$60,$0C,$00,$00,$00,$00,$00
  Data.b $D6,$2C,$10,$00,$FE,$50,$37,$00,$00,$00,$0C,$00,$FE,$84,$00,$01,$FC,$34,$00,$00
  Data.b $FE,$70,$37,$00,$D6,$4C,$0A,$00,$00,$06,$0A,$00,$00,$04,$00,$00,$FE,$50,$37,$00
  Data.b $00,$00,$00,$00,$FE,$84,$00,$00,$FE,$34,$00,$00,$7F,$70,$37,$00,$D6,$4C,$15,$00
  Data.b $00,$06,$0A,$00,$00,$04,$00,$00,$FE,$50,$37,$00,$D6,$4C,$15,$00,$FE,$84,$00,$02
  Data.b $80,$34,$00,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00
  Data.b $FE,$7A,$08,$00,$00,$06,$02,$00,$00,$04,$00,$01,$40,$50,$47,$00,$D6,$7A,$08,$00
  Data.b $E2,$84,$00,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$FE,$8C,$1E,$00,$D6,$20,$00,$01
  Data.b $40,$60,$47,$01,$40,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01,$40,$50,$47,$00
  Data.b $00,$00,$0C,$00,$D6,$83,$0F,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$E2,$8C,$1E,$01
  Data.b $40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$00,$D6,$4C,$15,$01,$1D,$84,$00,$01,$AC,$34,$00,$01,$1D,$60,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00
  Data.b $D6,$8C,$1E,$00,$D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$01,$53,$84,$00,$01,$AC,$34,$00,$01
  Data.b $1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$59,$01,$1D,$60,$0C,$00
  Data.b $00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$00,$00,$06,$02,$01
  Data.b $AC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$34,$00,$00,$8F,$70,$59,$00
  Data.b $D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$00
  Data.b $00,$06,$02,$01,$C5,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00,$00,$06,$02,$00,$E2,$34,$00,$00
  Data.b $8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $AA,$7A,$08,$00,$00,$06,$02,$01,$C5,$34,$A2,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$81,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01
  Data.b $1D,$50,$59,$00,$00,$00,$0C,$01,$53,$8C,$2E,$01,$C5,$34,$00,$01,$1D,$70,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$81,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$00,$E2,$34,$00,$00,$8F,$70,$59,$00,$D6,$4C,$15,$00,$00,$02,$04,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$01,$53,$8C,$1E,$01,$FC,$34,$00,$01
  Data.b $1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01
  Data.b $1D,$7A,$08,$00,$00,$06,$02,$00,$FE,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00
  Data.b $00,$02,$04,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$01,$53,$8C,$0E,$01
  Data.b $FC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$59,$00
  Data.b $D6,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$01
  Data.b $53,$8C,$07,$01,$FC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$FE,$34,$00,$00
  Data.b $8F,$70,$59,$00,$D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $D6,$4C,$15,$01,$1D,$84,$00,$02,$3A,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$01,$53,$8C,$1E,$01
  Data.b $1D,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$AA,$7A,$08,$00,$FE,$84,$00,$02,$3A,$34,$00,$01,$1D,$70,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$01
  Data.b $1D,$8C,$1E,$00,$D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$04,$00,$00
  Data.b $D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$00,$E2,$84,$00,$01,$1D,$34,$00,$01
  Data.b $1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $00,$00,$00,$00,$FE,$8C,$1E,$02,$3A,$34,$00,$00,$8F,$70,$59,$00,$D6,$4C,$15,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$00,$D6,$83,$0F,$02
  Data.b $80,$34,$00,$01,$40,$60,$47,$00,$D6,$4C,$0A,$00,$00,$03,$0F,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$01,$40,$7A,$08,$00,$00,$06,$02,$01,$40,$34,$00,$00,$A0,$70,$47,$00
  Data.b $FE,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$D6,$7A,$08,$00
  Data.b $00,$06,$02,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01
  Data.b $40,$60,$47,$00,$D6,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01,$40,$50,$47,$00
  Data.b $00,$00,$0C,$00,$D6,$8C,$1E,$02,$80,$34,$00,$01,$40,$70,$47,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$40,$50,$47,$00,$00,$00,$00,$00,$00,$06,$02,$01
  Data.b $40,$34,$00,$00,$A0,$70,$47,$00,$D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01
  Data.b $40,$50,$47,$00,$D6,$4C,$15,$00,$E2,$83,$0F,$02,$A6,$34,$00,$01,$53,$60,$37,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$53,$50,$37,$01,$53,$7A,$08,$00
  Data.b $00,$06,$02,$01,$53,$34,$00,$00,$AA,$70,$37,$01,$1D,$7A,$08,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$53,$50,$37,$00,$E2,$7A,$08,$00,$00,$06,$02,$02,$A6,$34,$00,$01
  Data.b $53,$70,$37,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$53,$50,$37,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$53,$60,$37,$01,$53,$60,$0C,$00
  Data.b $00,$02,$04,$00,$D6,$2C,$10,$01,$53,$50,$37,$00,$00,$00,$0C,$00,$E2,$8C,$1E,$02
  Data.b $A6,$34,$00,$01,$53,$70,$37,$00,$D6,$4C,$0A,$00,$00,$06,$02,$00,$00,$04,$00,$01
  Data.b $53,$50,$37,$00,$00,$00,$00,$00,$00,$06,$02,$01,$53,$34,$00,$00,$AA,$70,$37,$00
  Data.b $D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01,$53,$50,$37,$00,$D6,$4C,$15,$00
  Data.b $00,$0C,$00,$02,$FA,$34,$00,$01,$7D,$60,$37,$00,$D6,$4C,$0A,$00,$00,$00,$00,$00
  Data.b $00,$04,$00,$01,$7D,$50,$37,$01,$7D,$7A,$08,$00,$00,$00,$00,$01,$7D,$34,$00,$00
  Data.b $BE,$70,$37,$01,$40,$7A,$08,$00,$00,$00,$00,$00,$00,$04,$00,$01,$7D,$50,$37,$00
  Data.b $FE,$7A,$08,$00,$00,$00,$00,$02,$FA,$34,$00,$01,$7D,$70,$37,$00,$D6,$4C,$0A,$00
  Data.b $00,$00,$00,$00,$00,$04,$00,$01,$7D,$50,$37,$00,$00,$00,$00,$00,$00,$00,$00,$00
  Data.b $D6,$20,$00,$01,$7D,$60,$37,$01,$7D,$60,$0C,$00,$00,$00,$00,$00,$D6,$2C,$10,$01
  Data.b $7D,$50,$37,$00,$00,$00,$0C,$00,$D6,$84,$81,$02,$FA,$34,$A2,$01,$7D,$70,$37,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$7D,$50,$37,$00,$00,$00,$00,$00
  Data.b $00,$04,$00,$01,$7D,$34,$00,$00,$BE,$70,$37,$00,$D6,$4C,$15,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$7D,$50,$37,$00,$D6,$4C,$15,$00,$E2,$84,$00,$02,$3A,$34,$00,$01
  Data.b $1D,$60,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$01
  Data.b $1D,$7A,$08,$00,$D6,$8C,$1E,$01,$1D,$34,$00,$00,$8F,$70,$47,$00,$E2,$7A,$08,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00,$BE,$7A,$08,$00,$D6,$84,$00,$02
  Data.b $3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$47,$00,$00,$00,$00,$00,$E2,$8C,$1E,$00,$D6,$20,$00,$01,$1D,$60,$47,$01
  Data.b $1D,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01,$1D,$50,$47,$00,$00,$00,$0C,$00
  Data.b $BE,$83,$0F,$02,$3A,$34,$00,$01,$1D,$70,$47,$00,$D6,$4C,$0A,$00,$00,$03,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$47,$00,$00,$00,$00,$00,$D6,$8C,$1E,$01,$1D,$34,$00,$00
  Data.b $8F,$70,$47,$00,$D6,$4C,$15,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$47,$00
  Data.b $D6,$4C,$15,$00,$D6,$84,$00,$01,$AC,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00,$00,$06,$02,$00
  Data.b $D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$AA,$7A,$08,$00,$00,$06,$02,$01,$AC,$34,$00,$01,$1D,$70,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00
  Data.b $00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$04,$00,$00
  Data.b $D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$00,$00,$06,$02,$01,$AC,$34,$00,$01
  Data.b $1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$4C,$15,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$00,$00,$06,$02,$01
  Data.b $AC,$34,$00,$01,$1D,$60,$57,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$57,$01,$1D,$7A,$08,$00,$00,$06,$02,$00,$D6,$34,$00,$00,$8F,$70,$57,$00
  Data.b $D6,$7A,$08,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$57,$00,$BE,$7A,$08,$00
  Data.b $00,$06,$02,$01,$AC,$34,$00,$01,$1D,$70,$57,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$57,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01
  Data.b $1D,$60,$57,$00,$D6,$60,$0C,$00,$00,$02,$04,$00,$D6,$2C,$10,$01,$1D,$50,$57,$00
  Data.b $00,$00,$0C,$00,$D6,$8C,$2E,$01,$AC,$34,$00,$01,$1D,$70,$57,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$81,$00,$00,$04,$00,$01,$1D,$50,$57,$00,$00,$00,$00,$00,$00,$06,$02,$00
  Data.b $D6,$34,$00,$00,$8F,$70,$57,$00,$D6,$4C,$15,$00,$00,$02,$04,$00,$00,$04,$00,$01
  Data.b $1D,$50,$57,$00,$D6,$4C,$15,$00,$D6,$8C,$1E,$01,$AC,$34,$00,$01,$1D,$60,$59,$00
  Data.b $D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00
  Data.b $00,$06,$02,$00,$D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$02,$04,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$00,$AA,$7A,$08,$00,$D6,$8C,$0E,$01,$AC,$34,$00,$01
  Data.b $1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $00,$00,$00,$00,$00,$06,$02,$00,$D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00
  Data.b $00,$02,$04,$00,$D6,$2C,$10,$01,$1D,$50,$59,$00,$00,$00,$0C,$00,$D6,$8C,$07,$01
  Data.b $AC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00,$00,$04,$00,$01
  Data.b $1D,$50,$59,$00,$00,$00,$00,$00,$00,$06,$02,$00,$D6,$34,$00,$00,$8F,$70,$59,$00
  Data.b $D6,$4C,$15,$00,$00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$4C,$15,$00
  Data.b $D6,$84,$00,$01,$AC,$34,$00,$01,$1D,$60,$59,$00,$D6,$4C,$0A,$00,$00,$04,$00,$00
  Data.b $00,$04,$00,$01,$1D,$50,$59,$01,$1D,$7A,$08,$00,$00,$06,$02,$00,$D6,$34,$00,$00
  Data.b $8F,$70,$59,$00,$D6,$7A,$08,$00,$00,$06,$02,$00,$00,$04,$00,$01,$1D,$50,$59,$00
  Data.b $AA,$7A,$08,$00,$E2,$84,$00,$01,$AC,$34,$00,$01,$1D,$70,$59,$00,$D6,$4C,$0A,$00
  Data.b $00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$00,$00,$00,$00,$D6,$8C,$1E,$00
  Data.b $D6,$20,$00,$01,$1D,$60,$59,$00,$D6,$60,$0C,$00,$00,$04,$00,$00,$D6,$2C,$10,$01
  Data.b $1D,$50,$59,$00,$00,$00,$0C,$00,$FE,$84,$00,$01,$AC,$34,$00,$01,$1D,$70,$59,$00
  Data.b $D6,$20,$00,$00,$00,$04,$00,$00,$00,$04,$00,$01,$1D,$50,$59,$00,$D6,$2C,$10,$00
  Data.b $E2,$8C,$1E,$00,$D6,$34,$00,$00,$8F,$70,$59,$00,$D6,$20,$00,$00,$00,$04,$00,$00
  Data.b $00,$0B,$01,$01,$1D,$50,$59,$00,$D6,$2C,$20,$28,$28,$38,$38,$E4,$0C,$10,$AC,$B4
  Data.b $D8,$18,$F8,$B0,$C4,$E4,$04,$E8,$D0,$0C,$B4,$E8,$34,$00,$20,$BC,$44,$CC,$BC,$E8
  Data.b $BC,$0C,$BC,$F0,$B8,$AC,$44,$C8,$30,$CC,$28,$10,$4C,$B8,$30,$EC,$40,$04,$00,$FC
  Data.b $40,$0C,$30,$24,$20,$28,$04,$F8,$C0,$B4,$B0,$E0,$D8,$00,$10,$BC,$C0,$04,$CC,$28
  Data.b $D8,$00,$1C,$34,$38,$30,$00,$28,$10,$08,$C0,$D8,$E4,$3C,$0C,$CC,$EC,$B8,$38,$EC
  Data.b $20,$44,$CC,$0C,$D8,$F8,$FC,$D4,$E4,$D4,$18,$F8,$CC,$F0,$38,$3C,$1C,$34,$30,$F8
  Data.b $28,$F8,$FC,$1C,$D0,$D8,$30,$B8,$08,$E0,$DC,$FC,$BC,$FC,$CC,$F4,$BC,$F8,$F0,$08
  Data.b $04,$E4,$F0,$20,$BC,$08,$FC,$48,$10,$28,$3C,$30,$00,$30,$D8,$30,$28,$B4,$24,$C8
  Data.b $F8,$C8,$B4,$B8,$20,$C4,$08,$D0,$D4,$C4,$BC,$EC,$DC,$30,$00,$B8,$3C,$B8,$00,$CC
  Data.b $E0,$00,$E4,$CC,$38,$D4,$F8,$EC,$30,$20,$38,$E8,$14,$28,$2C,$DC,$1C,$00,$1C,$B8
  Data.b $B8,$C0,$CC,$DC,$CC,$FC,$C4,$28,$D4,$10,$E0,$DC,$04,$1C,$2C,$34,$18,$F8,$DC,$00
  Data.b $FC,$E0,$D4,$04,$C4,$EC,$D4,$14,$DC,$F8,$24,$10,$34,$D8,$14,$D0,$BC,$B8,$B8,$C0
  Data.b $C4,$CC,$D0,$D8,$DC,$E0,$E8,$EC,$F0,$F8,$F8,$FC,$10,$08,$1C,$24,$24,$20,$24,$2C
  Data.b $30,$34,$38,$34,$2C,$7F,$7F,$7F,$7F,$7F,$10,$08,$08,$08,$F0,$EC,$E8,$E4,$DC,$DC
  Data.b $D8,$B8,$B8,$A0,$9C,$80,$80,$80,$80,$94,$A0,$A4,$B4,$B8,$C0,$C4,$D4,$D8,$DC,$E0
  Data.b $E0,$E4,$E4,$04,$08,$0C,$10,$14,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F
  Data.b $7F,$7F,$7F,$7F,$F4,$F0,$E8,$E4,$E0,$D8,$D4,$CC,$B8,$98,$98,$80,$80,$80,$80,$80
  Data.b $80,$80,$80,$80,$80,$80,$80,$80,$80,$FC,$04,$08,$10,$14,$18,$20,$24,$2C,$30,$34
  Data.b $58,$64,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$E0,$D8,$D4
  Data.b $CC,$C8,$C4,$BC,$B8,$A4,$94,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
  Data.b $80,$0C,$1C,$18,$1C,$24,$28,$30,$44,$44,$4C,$5C,$6C,$70,$74,$78,$7C,$7F,$7F,$7F
  Data.b $7F,$7F,$F8,$F0,$EC,$E8,$E0,$E8,$D4,$DC,$DC,$D0,$C0,$B8,$B8,$BC,$C4,$C8,$CC,$D4
  Data.b $D8,$E0,$E4,$E8,$F0,$F4,$F8,$FC,$00,$14,$0C,$1C,$28,$28,$24,$28,$B8,$B8,$B8,$38
  Data.b $38,$38,$38,$38,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$38,$40,$38,$44,$44,$44
  Data.b $7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$B8,$80,$80,$80,$80,$80,$80,$80,$80,$80
  Data.b $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$BC,$34,$34
  Data.b $34,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$64,$7F,$7F,$7F,$7F,$7F
  Data.b $7F,$7F,$7F,$7F,$7F,$7F,$30,$C0,$C0,$C0,$80,$80,$80,$80,$80,$80,$80,$E8,$E8,$E8
  Data.b $E8,$E8,$E8,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$7F,$7F,$7F,$7F,$7F
  Data.b $7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F
  Data.b $7F,$7F,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
  Data.b $80,$80,$80,$80,$80,$80,$80,$80,$80,$74,$74,$74,$74,$74,$74,$74,$74,$74,$74,$74
  Data.b $74,$74,$74,$74,$74,$74,$74,$74,$74,$70,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8
  Data.b $E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$C8,$F0,$18,$E0,$20
  Data.b $F8,$24,$1C,$20,$1C,$1C,$CC,$E0,$10,$08,$10,$F8,$08,$D8,$EC,$E0,$1C,$F0,$F8,$EC
  Data.b $20,$08,$D0,$E0,$18,$04,$10,$E8,$CC,$00,$E0,$EC,$D0,$D0,$00,$F8,$1C,$E4,$00,$0C
  Data.b $04,$14,$D8,$00,$F4,$2C,$00,$2C,$1C,$0C,$E0,$18,$00,$08,$E4,$E0,$CC,$00,$04,$10
  Data.b $00,$DC,$18,$0C,$24,$1C,$1C,$14,$FC,$FC,$DC,$F0,$EC,$D8,$DC,$E0,$08,$D4,$0C,$F8
  Data.b $D4,$E4,$F4,$0C,$D8,$D8,$D4,$08,$EC,$D8,$E0,$1C,$F4,$F0,$F0,$EC,$FC,$F8,$E8,$E8
  Data.b $04,$04,$E0,$E8,$E8,$FC,$D4,$08,$E8,$E0,$20,$20,$E8,$FC,$D8,$E0,$0C,$20,$F8,$F4
  Data.b $F0,$D8,$0C,$F8,$14,$04,$1C,$FC,$24,$1C,$F0,$F0,$FC,$D8,$E4,$10,$00,$EC,$FC,$E4
  Data.b $14,$E0,$0C,$14,$0C,$EC,$FC,$04,$1C,$14,$E8,$1C,$18,$00,$18,$F0,$08,$F8,$E8,$00
  Data.b $E4,$10,$08,$20,$F4,$1C,$1C,$10,$08,$10,$E8,$10,$FC,$F8,$0C,$E8,$1C,$FC,$14,$18
  Data.b $E0,$E4,$FC,$F0,$00,$14,$0C,$DC,$00,$DC,$E4,$F0,$E8,$0C,$0C,$E0,$DC,$00,$00,$DC
  Data.b $EC,$FC,$10,$E8,$F0,$DC,$00,$E8,$10,$0C,$08,$20,$F8,$F0,$FC,$F8,$F4,$00,$08,$E4
  Data.b $E8,$F8,$DC,$14,$F4,$C2,$C2,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3
  Data.b $C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$41,$4E,$4E,$4E,$4E,$4E,$4E,$4E
  Data.b $4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E,$4E
  Data.b $4E,$4E,$4E,$4F,$4F,$4F,$50,$50,$50,$1D,$FD,$F3,$50,$50,$50,$50,$50,$50,$50,$50
  Data.b $50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$50
  Data.b $50,$50,$50,$50,$50,$50,$50,$50,$50,$50,$4E,$4E,$4E,$4E,$BE,$BE,$BE,$BE,$BE,$BE
  Data.b $BE,$BE,$BE,$BE,$BE,$BE,$BE,$BE,$BE,$80,$80,$80,$7F,$A5,$80,$80,$80,$2B,$80,$80
  Data.b $7F,$80,$80,$7F,$00,$7F,$80,$7F,$80,$80,$80,$80,$7F,$80,$80,$80,$80,$7F,$80,$7F
  Data.b $80,$7F,$7F,$7F,$80,$7F,$80,$7F,$2B,$00,$D2,$7F,$7F,$7F,$7F,$7F,$7F,$2B,$A5,$80
  Data.b $80,$80,$80,$80,$00,$7F,$80,$80,$2B,$80,$7F,$80,$00,$7F,$7F,$7F,$7F,$00,$7F,$7F
  Data.b $58,$80,$80,$80,$7F,$7F,$80,$80,$80,$7F,$80,$7F,$7F,$80,$7F,$80,$A5,$D2,$80,$80
  Data.b $80,$7F,$A5,$80,$80,$7F,$7F,$7F,$7F,$7F,$A5,$7F,$A5,$D2,$7F,$80,$80,$7F,$80,$58
  Data.b $80,$80,$D2,$80,$D2,$80,$80,$80,$A5,$80,$58,$2B,$80,$80,$7F,$80,$58,$D2,$7F,$7F
  Data.b $7F,$7F,$7F,$00,$7F,$80,$7F,$7F,$80,$7F,$80,$A5,$80,$80,$80,$7F,$80,$58,$80,$80
  Data.b $80,$80,$80,$80,$7F,$00,$80,$7F,$80,$00,$80,$80,$00,$80,$80,$7F,$80,$A5,$80,$7F
  Data.b $7F,$7F,$80,$7F,$7F,$7F,$80,$7F,$00,$7F,$80,$80,$80,$80,$80,$80,$D2,$80,$7F,$80
  Data.b $7F,$80,$80,$2B,$7F,$7F,$7F,$7F,$A5,$80,$00,$D2,$80,$80,$2B,$80,$80,$80,$7F,$80
  Data.b $A5,$7F,$7F,$7F,$80,$80,$80,$7F,$A5,$80,$80,$80,$2B,$80,$80,$7F,$80,$80,$7F,$00
  Data.b $7F,$80,$7F,$80,$80,$80,$80,$7F,$80,$80,$80,$80,$7F,$80,$7F,$80,$7F,$7F,$7F,$80
  Data.b $7F,$80,$7F,$2B,$00,$D2,$7F,$7F,$7F,$7F,$7F,$7F,$2B,$A5,$80,$80,$80,$80,$80,$00
  Data.b $7F,$80,$80,$2B,$80,$7F,$80,$00,$7F,$7F,$7F,$7F,$00,$7F,$7F,$58,$80,$80,$80,$7F
  Data.b $7F,$80,$80,$80,$7F,$80,$7F,$7F,$80,$7F,$80,$A5,$D2,$80,$80,$80,$7F,$A5,$80,$80
  Data.b $7F,$7F,$7F,$7F,$7F,$A5,$7F,$A5,$D2,$7F,$80,$80,$7F,$80,$58,$80,$80,$D2,$80,$D2
  Data.b $80,$80,$80,$A5,$80,$58,$2B,$80,$80,$7F,$80,$58,$D2,$7F,$7F,$7F,$7F,$7F,$00,$7F
  Data.b $80,$7F,$7F,$80,$7F,$80,$A5,$80,$80,$80,$7F,$80,$58,$80,$80,$80,$80,$80,$80,$7F
  Data.b $00,$80,$7F,$80,$00,$80,$80,$00,$80,$80,$7F,$80,$A5,$80,$7F,$7F,$7F,$80,$7F,$7F
  Data.b $7F,$80,$7F,$00,$7F,$80,$80,$80,$80,$80,$80,$D2,$80,$7F,$80,$7F,$80,$80,$2B,$7F
  Data.b $7F,$7F,$7F,$A5,$80,$00,$D2,$80,$80,$2B,$80,$80,$80,$7F,$80,$A5,$7F,$7F,$7F,$FF
  Data.b $FF,$FF,$FF,$FF,$00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$DE,$D6,$D2,$D1
  Data.b $D1,$D1,$CF,$CF,$CF,$CF,$D1,$D2,$D6,$D9,$DC,$2D,$2C,$09,$FD,$FD,$FD,$FD,$FD,$00
  Data.b $00,$00,$00,$D3,$D3,$D0,$D0,$CF,$CF,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE
  Data.b $CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE,$CE
  Data.b $CE,$D6,$F3,$F3,$F3,$F3,$F3,$F3,$F2,$F0,$CE,$C2,$BB,$A2,$A1,$9F,$9D,$9C,$9C,$9A
  Data.b $9A,$C0,$2A,$FF,$FF,$FF,$FF,$FF,$00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01
  Data.b $DE,$D6,$D2,$D1,$D9,$31,$13,$06,$01,$CF,$D1,$D2,$D6,$D9,$DC,$2D,$2C,$09,$FD,$FD
  Data.b $FD,$FD,$FD,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$BB
  Data.b $BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB,$BB
  Data.b $BB,$BB,$BB,$BB,$BB,$C0,$2D,$30,$32,$32,$33,$34,$34,$34,$34,$33,$32,$30,$2B,$28
  Data.b $B6,$B4,$B2,$B2,$B3,$B4,$B6
 E:
EndDataSection
User avatar
mk-soft
Always Here
Always Here
Posts: 6204
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Embedded music in Datasection example

Post by mk-soft »

You can calc the sound length ...

Code: Select all

CatchMusic(2, ?S, ?E - ?S)
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
miso
Enthusiast
Enthusiast
Posts: 410
Joined: Sat Oct 21, 2023 4:06 pm
Location: Hungary

Re: Embedded music in Datasection example

Post by miso »

Here's my codewise ugly solution. It does not embedd the soundwaves, but generates them on the fly.
(Sorry, I'm not gonna be the next Rob Hubbard.)

Code: Select all

Global Dim sound(60)
Global Dim musicnotes(3,1000)
Global musicrow=0

Declare createsound(length.i,pitch.f)
Declare createsoundmedia()
Declare musicticker()

If InitSound() And InitKeyboard() And InitSprite()
  OpenWindow(0,10,10,400,100,"Chiptune, press Esc to quit")
  OpenWindowedScreen(WindowID(0),0,0,400,100)
  createsoundmedia()
  Define eventresult.i
  Repeat
    Repeat 
      eventresult = WindowEvent()
      If eventresult = #PB_Event_CloseWindow : End : EndIf
    Until eventresult=0
  
  If musicticker() 
    musicrow=musicrow+1
    If musicrow>130 : musicrow = 1:EndIf
    If musicnotes(1,musicrow)<>0 : If IsSound(sound(musicnotes(1,musicrow))):PlaySound(sound(musicnotes(1,musicrow))):EndIf:EndIf
    If musicnotes(2,musicrow)<>0 : If IsSound(sound(musicnotes(2,musicrow))):PlaySound(sound(musicnotes(2,musicrow))):EndIf:EndIf
    If musicnotes(3,musicrow)<>0 : If IsSound(sound(musicnotes(3,musicrow))):PlaySound(sound(musicnotes(3,musicrow))):EndIf:EndIf
  EndIf
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) : End : EndIf
  FlipBuffers()
  Delay(1)
  ForEver
EndIf

Procedure createsound(length.i,pitch.f)
  Define chunk.l = Int(((length/1000)*44100*16)/8) ;sample size (no of samples * bitrate * channels / 8)
  Define samples.i = Int((length/1000)*44100)      ;length *44100
  Define headersize.i = 40 , thing.i , output.w , i.i, result_id.i
  Define *buffer
  
  *buffer=AllocateMemory(headersize+4+(chunk*2))
  Define.i position=0
  ;Writing the Header
  PokeC(*buffer+position,82) : position = position+1  :  PokeC(*buffer+position,73) : position = position+1   :  PokeC(*buffer+position,70) : position = position+1
  PokeC(*buffer+position,70) : position = position+1  :  PokeC(*buffer+position,208) : position = position+1  :  PokeC(*buffer+position,59) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,87) : position = position+1
  PokeC(*buffer+position,65) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,69) : position = position+1
  PokeC(*buffer+position,102) : position = position+1 :  PokeC(*buffer+position,109) : position = position+1  :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,32) : position = position+1  :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,1) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,2) : position = position+1    :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,34) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,136) : position = position+1  :  PokeC(*buffer+position,88) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,4) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,100) : position = position+1 :  PokeC(*buffer+position,97) : position = position+1   :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,97) : position = position+1
  
  PokeL(*buffer+position,chunk) : position = position+4
  
  thing = 0
  For i=1 To samples
    thing=thing+pitch
    If thing>10000 :thing = 0 : EndIf
    output=thing
    PokeW(*buffer+position,output):position = position+2
  Next i
  
  result_id = CatchSound(#PB_Any,*buffer,headersize+4+(chunk*2))
  FreeMemory(*buffer)
  ProcedureReturn(result_id)
EndProcedure

Procedure createsoundmedia()
  #szun=0
  #GTE=5:#GTA=0:#GTD=15:#GTG=20:#GTH=24:#GTB=24:#GTE2=29:#GT1=5:#GT2=10:#GT3=15:#GT4=20:#GT5=24:#GTE6=29:
  #c0=1:#cu0=2:#D0=3:#Du0=4:#E0=5:#F0=6:#Fu0=7:#G0=8:#Gu0=9:#A0=10:#Au0=11:#B0=12:
  #C1=13:#cu1=14:#d1=15:#Du1=16:#E1=17:#F1=18:#Fu1=19:#G1=20:#Gu1=21:#A1=22:#Au1=23:#B1=24:
  #C2=25:#Cu2=26:#D2=27:#Du2=28:#E2=29:#F2=30:#Fu2=31:#G2=32:#Gu2=33:#A2=34:#Au2=35:#B2=36:
  #C3=37:#Cu3=38:#D3=39:#Du3=40:#E3=41:#F3=42:#Fu3=43:#G3=44:#Gu3=45:#A3=46:#Au3=47:#B3=48:
  #C4=49:#Cu4=50:#D4=51:#Du4=52:#E4=53:#F4=54:#Fu4=55:#G4=56:#Gu4=57:#A4=58:#Au4=59:#B4=60:
  #C5=61:#Cu5=62:#D5=63:#Du5=64:#E5=65:#F5=66:#Fu5=67:#G5=68:#Gu5=69:#A5=70:#Au5=71:#B5=72:
  #C6=73:#Cu6=74:#D6=75:#Du6=76:#E6=77:#F6=78:#Fu6=79:#G6=80:#Gu6=81:#A6=82:#Au6=83:#B6=84:
  #C7=85:#Cu7=86:#D7=87:#Du7=88:#E7=89:#F7=90:#Fu7=91:#G7=92:#Gu7=93:#A7=94:#Au7=95:#B7=96:
  #C8=97:#Cu8=98:#D8=99:#Du8=100:
  Define.i length = 145,length2=300, j=0
  Dim sound(60)  
  j=j+1:sound(j)=createsound(length,16.35):j=j+1:sound(j)=createsound(length,17.32)
  j=j+1:sound(j)=createsound(length,18.35):j=j+1:sound(j)=createsound(length,19.45)
  j=j+1:sound(j)=createsound(length,20.60):j=j+1:sound(j)=createsound(length,21.83)
  j=j+1:sound(j)=createsound(length,23.12):j=j+1:sound(j)=createsound(length,24.50)
  j=j+1:sound(j)=createsound(length,25.96):j=j+1:sound(j)=createsound(length,27.50)
  j=j+1:sound(j)=createsound(length,29.14):j=j+1:sound(j)=createsound(length,30.87)

  j=j+1:sound(j)=createsound(length,32.70):j=j+1:sound(j)=createsound(length,34.65)
  j=j+1:sound(j)=createsound(length,36.71):j=j+1:sound(j)=createsound(length,38.89)
  j=j+1:sound(j)=createsound(length,41.20):j=j+1:sound(j)=createsound(length,43.65)
  j=j+1:sound(j)=createsound(length,46.25):j=j+1:sound(j)=createsound(length,49.00)
  j=j+1:sound(j)=createsound(length,51.91):j=j+1:sound(j)=createsound(length,55.50)
  j=j+1:sound(j)=createsound(length,58.27):j=j+1:sound(j)=createsound(length,61.74)

  j=j+1:sound(j)=createsound(length,65.41):j=j+1:sound(j)=createsound(length2,69.30)
  j=j+1:sound(j)=createsound(length2,73.42):j=j+1:sound(j)=createsound(length2,77.78)
  j=j+1:sound(j)=createsound(length2,82.41):j=j+1:sound(j)=createsound(length2,87.31)
  j=j+1:sound(j)=createsound(length2,92.50):j=j+1:sound(j)=createsound(length2,98.00)
  j=j+1:sound(j)=createsound(length2,103.83):j=j+1:sound(j)=createsound(length2,110.00)
  j=j+1:sound(j)=createsound(length2,116.54):j=j+1:sound(j)=createsound(length2,123.44)

  j=j+1:sound(j)=createsound(length2,130.81):j=j+1:sound(j)=createsound(length,138.59)
  j=j+1:sound(j)=createsound(length2,146.83):j=j+1:sound(j)=createsound(length,155.56)
  j=j+1:sound(j)=createsound(length2,164.81):j=j+1:sound(j)=createsound(length,174.61)
  j=j+1:sound(j)=createsound(length2,185.00):j=j+1:sound(j)=createsound(length,196.00)
  j=j+1:sound(j)=createsound(length2,207.65):j=j+1:sound(j)=createsound(length,220.00)
  j=j+1:sound(j)=createsound(length2,233.08):j=j+1:sound(j)=createsound(length,246.97)

  j=j+1:sound(j)=createsound(length,261.63):j=j+1:sound(j)=createsound(length,277.18)
  j=j+1:sound(j)=createsound(length,293.66):j=j+1:sound(j)=createsound(length,311.13)
  j=j+1:sound(j)=createsound(length,329.63):j=j+1:sound(j)=createsound(length,349.23)
  j=j+1:sound(j)=createsound(length,369.99):j=j+1:sound(j)=createsound(length,392.00)
  j=j+1:sound(j)=createsound(length,415.30):j=j+1:sound(j)=createsound(length,440.00)
  j=j+1:sound(j)=createsound(length,466.16):j=j+1:sound(j)=createsound(length,493.88)

  Dim musicnotes(3,1000)
  Define ras=1
  
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=22:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=34:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
EndProcedure

Procedure musicticker()
  Static oldtime.i, diff.i=160
  If oldtime = 0
    oldtime = ElapsedMilliseconds()
    ProcedureReturn #False
  EndIf
  If ElapsedMilliseconds()-oldtime>diff
    oldtime=ElapsedMilliseconds()
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False
EndProcedure
User avatar
idle
Always Here
Always Here
Posts: 5836
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Embedded music in Datasection example

Post by idle »

miso wrote: Sun Oct 29, 2023 10:31 am Here's my codewise ugly solution. It does not embedd the soundwaves, but generates them on the fly.
(Sorry, I'm not gonna be the next Rob Hubbard.)

Code: Select all

Global Dim sound(60)
Global Dim musicnotes(3,1000)
Global musicrow=0

Declare createsound(length.i,pitch.f)
Declare createsoundmedia()
Declare musicticker()

If InitSound() And InitKeyboard() And InitSprite()
  OpenWindow(0,10,10,400,100,"Chiptune, press Esc to quit")
  OpenWindowedScreen(WindowID(0),0,0,400,100)
  createsoundmedia()
  Define eventresult.i
  Repeat
    Repeat 
      eventresult = WindowEvent()
      If eventresult = #PB_Event_CloseWindow : End : EndIf
    Until eventresult=0
  
  If musicticker() 
    musicrow=musicrow+1
    If musicrow>130 : musicrow = 1:EndIf
    If musicnotes(1,musicrow)<>0 : If IsSound(sound(musicnotes(1,musicrow))):PlaySound(sound(musicnotes(1,musicrow))):EndIf:EndIf
    If musicnotes(2,musicrow)<>0 : If IsSound(sound(musicnotes(2,musicrow))):PlaySound(sound(musicnotes(2,musicrow))):EndIf:EndIf
    If musicnotes(3,musicrow)<>0 : If IsSound(sound(musicnotes(3,musicrow))):PlaySound(sound(musicnotes(3,musicrow))):EndIf:EndIf
  EndIf
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) : End : EndIf
  FlipBuffers()
  Delay(1)
  ForEver
EndIf

Procedure createsound(length.i,pitch.f)
  Define chunk.l = Int(((length/1000)*44100*16)/8) ;sample size (no of samples * bitrate * channels / 8)
  Define samples.i = Int((length/1000)*44100)      ;length *44100
  Define headersize.i = 40 , thing.i , output.w , i.i, result_id.i
  Define *buffer
  
  *buffer=AllocateMemory(headersize+4+(chunk*2))
  Define.i position=0
  ;Writing the Header
  PokeC(*buffer+position,82) : position = position+1  :  PokeC(*buffer+position,73) : position = position+1   :  PokeC(*buffer+position,70) : position = position+1
  PokeC(*buffer+position,70) : position = position+1  :  PokeC(*buffer+position,208) : position = position+1  :  PokeC(*buffer+position,59) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,87) : position = position+1
  PokeC(*buffer+position,65) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,69) : position = position+1
  PokeC(*buffer+position,102) : position = position+1 :  PokeC(*buffer+position,109) : position = position+1  :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,32) : position = position+1  :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,1) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,2) : position = position+1    :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,34) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,136) : position = position+1  :  PokeC(*buffer+position,88) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,4) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,100) : position = position+1 :  PokeC(*buffer+position,97) : position = position+1   :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,97) : position = position+1
  
  PokeL(*buffer+position,chunk) : position = position+4
  
  thing = 0
  For i=1 To samples
    thing=thing+pitch
    If thing>10000 :thing = 0 : EndIf
    output=thing
    PokeW(*buffer+position,output):position = position+2
  Next i
  
  result_id = CatchSound(#PB_Any,*buffer,headersize+4+(chunk*2))
  FreeMemory(*buffer)
  ProcedureReturn(result_id)
EndProcedure

Procedure createsoundmedia()
  #szun=0
  #GTE=5:#GTA=0:#GTD=15:#GTG=20:#GTH=24:#GTB=24:#GTE2=29:#GT1=5:#GT2=10:#GT3=15:#GT4=20:#GT5=24:#GTE6=29:
  #c0=1:#cu0=2:#D0=3:#Du0=4:#E0=5:#F0=6:#Fu0=7:#G0=8:#Gu0=9:#A0=10:#Au0=11:#B0=12:
  #C1=13:#cu1=14:#d1=15:#Du1=16:#E1=17:#F1=18:#Fu1=19:#G1=20:#Gu1=21:#A1=22:#Au1=23:#B1=24:
  #C2=25:#Cu2=26:#D2=27:#Du2=28:#E2=29:#F2=30:#Fu2=31:#G2=32:#Gu2=33:#A2=34:#Au2=35:#B2=36:
  #C3=37:#Cu3=38:#D3=39:#Du3=40:#E3=41:#F3=42:#Fu3=43:#G3=44:#Gu3=45:#A3=46:#Au3=47:#B3=48:
  #C4=49:#Cu4=50:#D4=51:#Du4=52:#E4=53:#F4=54:#Fu4=55:#G4=56:#Gu4=57:#A4=58:#Au4=59:#B4=60:
  #C5=61:#Cu5=62:#D5=63:#Du5=64:#E5=65:#F5=66:#Fu5=67:#G5=68:#Gu5=69:#A5=70:#Au5=71:#B5=72:
  #C6=73:#Cu6=74:#D6=75:#Du6=76:#E6=77:#F6=78:#Fu6=79:#G6=80:#Gu6=81:#A6=82:#Au6=83:#B6=84:
  #C7=85:#Cu7=86:#D7=87:#Du7=88:#E7=89:#F7=90:#Fu7=91:#G7=92:#Gu7=93:#A7=94:#Au7=95:#B7=96:
  #C8=97:#Cu8=98:#D8=99:#Du8=100:
  Define.i length = 145,length2=300, j=0
  Dim sound(60)  
  j=j+1:sound(j)=createsound(length,16.35):j=j+1:sound(j)=createsound(length,17.32)
  j=j+1:sound(j)=createsound(length,18.35):j=j+1:sound(j)=createsound(length,19.45)
  j=j+1:sound(j)=createsound(length,20.60):j=j+1:sound(j)=createsound(length,21.83)
  j=j+1:sound(j)=createsound(length,23.12):j=j+1:sound(j)=createsound(length,24.50)
  j=j+1:sound(j)=createsound(length,25.96):j=j+1:sound(j)=createsound(length,27.50)
  j=j+1:sound(j)=createsound(length,29.14):j=j+1:sound(j)=createsound(length,30.87)

  j=j+1:sound(j)=createsound(length,32.70):j=j+1:sound(j)=createsound(length,34.65)
  j=j+1:sound(j)=createsound(length,36.71):j=j+1:sound(j)=createsound(length,38.89)
  j=j+1:sound(j)=createsound(length,41.20):j=j+1:sound(j)=createsound(length,43.65)
  j=j+1:sound(j)=createsound(length,46.25):j=j+1:sound(j)=createsound(length,49.00)
  j=j+1:sound(j)=createsound(length,51.91):j=j+1:sound(j)=createsound(length,55.50)
  j=j+1:sound(j)=createsound(length,58.27):j=j+1:sound(j)=createsound(length,61.74)

  j=j+1:sound(j)=createsound(length,65.41):j=j+1:sound(j)=createsound(length2,69.30)
  j=j+1:sound(j)=createsound(length2,73.42):j=j+1:sound(j)=createsound(length2,77.78)
  j=j+1:sound(j)=createsound(length2,82.41):j=j+1:sound(j)=createsound(length2,87.31)
  j=j+1:sound(j)=createsound(length2,92.50):j=j+1:sound(j)=createsound(length2,98.00)
  j=j+1:sound(j)=createsound(length2,103.83):j=j+1:sound(j)=createsound(length2,110.00)
  j=j+1:sound(j)=createsound(length2,116.54):j=j+1:sound(j)=createsound(length2,123.44)

  j=j+1:sound(j)=createsound(length2,130.81):j=j+1:sound(j)=createsound(length,138.59)
  j=j+1:sound(j)=createsound(length2,146.83):j=j+1:sound(j)=createsound(length,155.56)
  j=j+1:sound(j)=createsound(length2,164.81):j=j+1:sound(j)=createsound(length,174.61)
  j=j+1:sound(j)=createsound(length2,185.00):j=j+1:sound(j)=createsound(length,196.00)
  j=j+1:sound(j)=createsound(length2,207.65):j=j+1:sound(j)=createsound(length,220.00)
  j=j+1:sound(j)=createsound(length2,233.08):j=j+1:sound(j)=createsound(length,246.97)

  j=j+1:sound(j)=createsound(length,261.63):j=j+1:sound(j)=createsound(length,277.18)
  j=j+1:sound(j)=createsound(length,293.66):j=j+1:sound(j)=createsound(length,311.13)
  j=j+1:sound(j)=createsound(length,329.63):j=j+1:sound(j)=createsound(length,349.23)
  j=j+1:sound(j)=createsound(length,369.99):j=j+1:sound(j)=createsound(length,392.00)
  j=j+1:sound(j)=createsound(length,415.30):j=j+1:sound(j)=createsound(length,440.00)
  j=j+1:sound(j)=createsound(length,466.16):j=j+1:sound(j)=createsound(length,493.88)

  Dim musicnotes(3,1000)
  Define ras=1
  
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=22:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=34:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
EndProcedure

Procedure musicticker()
  Static oldtime.i, diff.i=160
  If oldtime = 0
    oldtime = ElapsedMilliseconds()
    ProcedureReturn #False
  EndIf
  If ElapsedMilliseconds()-oldtime>diff
    oldtime=ElapsedMilliseconds()
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False
EndProcedure
thanks that's pretty neat
firace
Addict
Addict
Posts: 946
Joined: Wed Nov 09, 2011 8:58 am

Re: Embedded music in Datasection example

Post by firace »

miso wrote: Sun Oct 29, 2023 10:31 am Here's my codewise ugly solution. It does not embedd the soundwaves, but generates them on the fly.
(Sorry, I'm not gonna be the next Rob Hubbard.)

Code: Select all

Global Dim sound(60)
Global Dim musicnotes(3,1000)
Global musicrow=0

Declare createsound(length.i,pitch.f)
Declare createsoundmedia()
Declare musicticker()

If InitSound() And InitKeyboard() And InitSprite()
  OpenWindow(0,10,10,400,100,"Chiptune, press Esc to quit")
  OpenWindowedScreen(WindowID(0),0,0,400,100)
  createsoundmedia()
  Define eventresult.i
  Repeat
    Repeat 
      eventresult = WindowEvent()
      If eventresult = #PB_Event_CloseWindow : End : EndIf
    Until eventresult=0
  
  If musicticker() 
    musicrow=musicrow+1
    If musicrow>130 : musicrow = 1:EndIf
    If musicnotes(1,musicrow)<>0 : If IsSound(sound(musicnotes(1,musicrow))):PlaySound(sound(musicnotes(1,musicrow))):EndIf:EndIf
    If musicnotes(2,musicrow)<>0 : If IsSound(sound(musicnotes(2,musicrow))):PlaySound(sound(musicnotes(2,musicrow))):EndIf:EndIf
    If musicnotes(3,musicrow)<>0 : If IsSound(sound(musicnotes(3,musicrow))):PlaySound(sound(musicnotes(3,musicrow))):EndIf:EndIf
  EndIf
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) : End : EndIf
  FlipBuffers()
  Delay(1)
  ForEver
EndIf

Procedure createsound(length.i,pitch.f)
  Define chunk.l = Int(((length/1000)*44100*16)/8) ;sample size (no of samples * bitrate * channels / 8)
  Define samples.i = Int((length/1000)*44100)      ;length *44100
  Define headersize.i = 40 , thing.i , output.w , i.i, result_id.i
  Define *buffer
  
  *buffer=AllocateMemory(headersize+4+(chunk*2))
  Define.i position=0
  ;Writing the Header
  PokeC(*buffer+position,82) : position = position+1  :  PokeC(*buffer+position,73) : position = position+1   :  PokeC(*buffer+position,70) : position = position+1
  PokeC(*buffer+position,70) : position = position+1  :  PokeC(*buffer+position,208) : position = position+1  :  PokeC(*buffer+position,59) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,87) : position = position+1
  PokeC(*buffer+position,65) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,69) : position = position+1
  PokeC(*buffer+position,102) : position = position+1 :  PokeC(*buffer+position,109) : position = position+1  :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,32) : position = position+1  :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,1) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,2) : position = position+1    :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,34) : position = position+1  :  PokeC(*buffer+position,86) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,136) : position = position+1  :  PokeC(*buffer+position,88) : position = position+1
  PokeC(*buffer+position,1) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1    :  PokeC(*buffer+position,4) : position = position+1
  PokeC(*buffer+position,0) : position = position+1   :  PokeC(*buffer+position,16) : position = position+1   :  PokeC(*buffer+position,0) : position = position+1
  PokeC(*buffer+position,100) : position = position+1 :  PokeC(*buffer+position,97) : position = position+1   :  PokeC(*buffer+position,116) : position = position+1
  PokeC(*buffer+position,97) : position = position+1
  
  PokeL(*buffer+position,chunk) : position = position+4
  
  thing = 0
  For i=1 To samples
    thing=thing+pitch
    If thing>10000 :thing = 0 : EndIf
    output=thing
    PokeW(*buffer+position,output):position = position+2
  Next i
  
  result_id = CatchSound(#PB_Any,*buffer,headersize+4+(chunk*2))
  FreeMemory(*buffer)
  ProcedureReturn(result_id)
EndProcedure

Procedure createsoundmedia()
  #szun=0
  #GTE=5:#GTA=0:#GTD=15:#GTG=20:#GTH=24:#GTB=24:#GTE2=29:#GT1=5:#GT2=10:#GT3=15:#GT4=20:#GT5=24:#GTE6=29:
  #c0=1:#cu0=2:#D0=3:#Du0=4:#E0=5:#F0=6:#Fu0=7:#G0=8:#Gu0=9:#A0=10:#Au0=11:#B0=12:
  #C1=13:#cu1=14:#d1=15:#Du1=16:#E1=17:#F1=18:#Fu1=19:#G1=20:#Gu1=21:#A1=22:#Au1=23:#B1=24:
  #C2=25:#Cu2=26:#D2=27:#Du2=28:#E2=29:#F2=30:#Fu2=31:#G2=32:#Gu2=33:#A2=34:#Au2=35:#B2=36:
  #C3=37:#Cu3=38:#D3=39:#Du3=40:#E3=41:#F3=42:#Fu3=43:#G3=44:#Gu3=45:#A3=46:#Au3=47:#B3=48:
  #C4=49:#Cu4=50:#D4=51:#Du4=52:#E4=53:#F4=54:#Fu4=55:#G4=56:#Gu4=57:#A4=58:#Au4=59:#B4=60:
  #C5=61:#Cu5=62:#D5=63:#Du5=64:#E5=65:#F5=66:#Fu5=67:#G5=68:#Gu5=69:#A5=70:#Au5=71:#B5=72:
  #C6=73:#Cu6=74:#D6=75:#Du6=76:#E6=77:#F6=78:#Fu6=79:#G6=80:#Gu6=81:#A6=82:#Au6=83:#B6=84:
  #C7=85:#Cu7=86:#D7=87:#Du7=88:#E7=89:#F7=90:#Fu7=91:#G7=92:#Gu7=93:#A7=94:#Au7=95:#B7=96:
  #C8=97:#Cu8=98:#D8=99:#Du8=100:
  Define.i length = 145,length2=300, j=0
  Dim sound(60)  
  j=j+1:sound(j)=createsound(length,16.35):j=j+1:sound(j)=createsound(length,17.32)
  j=j+1:sound(j)=createsound(length,18.35):j=j+1:sound(j)=createsound(length,19.45)
  j=j+1:sound(j)=createsound(length,20.60):j=j+1:sound(j)=createsound(length,21.83)
  j=j+1:sound(j)=createsound(length,23.12):j=j+1:sound(j)=createsound(length,24.50)
  j=j+1:sound(j)=createsound(length,25.96):j=j+1:sound(j)=createsound(length,27.50)
  j=j+1:sound(j)=createsound(length,29.14):j=j+1:sound(j)=createsound(length,30.87)

  j=j+1:sound(j)=createsound(length,32.70):j=j+1:sound(j)=createsound(length,34.65)
  j=j+1:sound(j)=createsound(length,36.71):j=j+1:sound(j)=createsound(length,38.89)
  j=j+1:sound(j)=createsound(length,41.20):j=j+1:sound(j)=createsound(length,43.65)
  j=j+1:sound(j)=createsound(length,46.25):j=j+1:sound(j)=createsound(length,49.00)
  j=j+1:sound(j)=createsound(length,51.91):j=j+1:sound(j)=createsound(length,55.50)
  j=j+1:sound(j)=createsound(length,58.27):j=j+1:sound(j)=createsound(length,61.74)

  j=j+1:sound(j)=createsound(length,65.41):j=j+1:sound(j)=createsound(length2,69.30)
  j=j+1:sound(j)=createsound(length2,73.42):j=j+1:sound(j)=createsound(length2,77.78)
  j=j+1:sound(j)=createsound(length2,82.41):j=j+1:sound(j)=createsound(length2,87.31)
  j=j+1:sound(j)=createsound(length2,92.50):j=j+1:sound(j)=createsound(length2,98.00)
  j=j+1:sound(j)=createsound(length2,103.83):j=j+1:sound(j)=createsound(length2,110.00)
  j=j+1:sound(j)=createsound(length2,116.54):j=j+1:sound(j)=createsound(length2,123.44)

  j=j+1:sound(j)=createsound(length2,130.81):j=j+1:sound(j)=createsound(length,138.59)
  j=j+1:sound(j)=createsound(length2,146.83):j=j+1:sound(j)=createsound(length,155.56)
  j=j+1:sound(j)=createsound(length2,164.81):j=j+1:sound(j)=createsound(length,174.61)
  j=j+1:sound(j)=createsound(length2,185.00):j=j+1:sound(j)=createsound(length,196.00)
  j=j+1:sound(j)=createsound(length2,207.65):j=j+1:sound(j)=createsound(length,220.00)
  j=j+1:sound(j)=createsound(length2,233.08):j=j+1:sound(j)=createsound(length,246.97)

  j=j+1:sound(j)=createsound(length,261.63):j=j+1:sound(j)=createsound(length,277.18)
  j=j+1:sound(j)=createsound(length,293.66):j=j+1:sound(j)=createsound(length,311.13)
  j=j+1:sound(j)=createsound(length,329.63):j=j+1:sound(j)=createsound(length,349.23)
  j=j+1:sound(j)=createsound(length,369.99):j=j+1:sound(j)=createsound(length,392.00)
  j=j+1:sound(j)=createsound(length,415.30):j=j+1:sound(j)=createsound(length,440.00)
  j=j+1:sound(j)=createsound(length,466.16):j=j+1:sound(j)=createsound(length,493.88)

  Dim musicnotes(3,1000)
  Define ras=1
  
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=22:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=29:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=29:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=30:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1

  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=22:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=22:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=25:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=32:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=34:musicnotes(3,ras)=5:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=25:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=20:musicnotes(2,ras)=32:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=18:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=17:musicnotes(2,ras)=30:musicnotes(3,ras)=3:ras=ras+1
  musicnotes(1,ras)=15:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
  musicnotes(1,ras)=13:musicnotes(2,ras)=25:musicnotes(3,ras)=1:ras=ras+1
  musicnotes(1,ras)=0:musicnotes(2,ras)=0:musicnotes(3,ras)=0:ras=ras+1
EndProcedure

Procedure musicticker()
  Static oldtime.i, diff.i=160
  If oldtime = 0
    oldtime = ElapsedMilliseconds()
    ProcedureReturn #False
  EndIf
  If ElapsedMilliseconds()-oldtime>diff
    oldtime=ElapsedMilliseconds()
    ProcedureReturn #True
  EndIf
  ProcedureReturn #False
EndProcedure
Nice one - Thanks for sharing!
Post Reply