include multisound.inc
windowtitle XProfan Demo Group *gg*
windowstyle 1024 | 16 | 8
window (maxx/2-100),(maxy/2-100) - 200,100
casenot ms.init() : end
string song:=8,6,6,6,10,1,8||||6,6|||6,6,10|||||||1||||||6,10|||||||6,6|||||||1||||||10|||||||6,6|||||||5,5,5,8,12||||||10,10,8|||||||12,12,12|||||||2,5,2,8|||3,3|||10,5,10,2|||||||10|||||||5,5,2||||||6,10,6,10|||||||5,3,3,6,3,5|||||||6||||||3,3,10|||||||3,3,3,6|||||||3,3||||||10|||||||6|||||||1,1,1||||||11,11,11|||||||3|||||||3,3,6|||3,3|||11,3|||||||1,1,1,5,1,8,1|||||||11,11,5|||10,10|||8|||||||8,1,8,5|||||||11,6,6,6,10,1,11||||||10|||||||10,6,10,1|||||||10,6,10,10||||||6|||||||1|||||||10||||||8,1,6,8|||||||6,8,8,8,12,3,6|||||||12||||||10,10,3|||||||8,8,8,12|||||||1,8,1,5||||||1|||||||5|||||||3,1,3,1||||||6,11,11,6,11,3,6|||||||6|||||||10,6,10,6,10,1,10||||||10,6,10,6|||||||1|||||||6||||||10|||||||6,6|||||||8,6,6,6,10,1,8|||6,6|||6,6,10|||||||1|||||||6,10||||||6,6|||||||1|||||||10||||||6,6|||||||5,5,5,8,12|||||||10,10,8||||||12,12,12|||||||2,5,2,8|||||||3,10,5,10,2,3||||||5,5,10|||||||2|||||||6,10,6,10||||||5,3,3,6,3,5|||||||6|||3,3||||3,3,10||||||3,6|||||||3,3|||||||10||||||6|||||||1,1,1|||||||11,11,11||||||3|||||||3,3,6|||3,3||||11,3||||||1,1,1,5,1,8,1|||||||12,12,5|||||||10,10,8||||||8,1,8,5|||||||11,6,6,6,10,1,11|||||||10||||||10,6,10,1|||||||10,6,10,10|||||||6||||||1|||||||10|||||||8,1,6,8||||||6,8,8,8,12,3,6|||||||12|||||||10,10,3||||||8,8,8,12|||||||1,8,1,5|||||||1||||||5|||||||3,1,3,1|||||||6,11,11,6,11,3,6||||||6|||||||10,6,10,6,10,1,10|||||||10,6,10,6||||||1|||||||6|||||||10||||||6,6|||||||10,10,8,10,3,12,10|||||||12||||||3|||||||10,8|||||||10,10,10,2,5,10||||||2|||||||5|||||||10,2||||||3,3,3,3,6,3||||6|||10|||||||5,1,1,8,1,5,5|||5|||8|||||||6,11,11,6,11,3,6|||3||||6||||||5,10,10,10,6,5||||3|||3,3,6|||||||5,8,8,8,11,5||||||11|||||||3|||||||3,8,3,11||||||1,1,8,1,5,1|||||||1|||||||3,3,5||||||10,1,10,1|||||||6,6,6,10|||||||10||||||1|||||||6,10|||||||6,6||||||1|||||||10|||||||6,6||||||10,10,8,10,3,12,10|||||||12|||||||3||||||10,8|||||||10,10,10,2,5,10|||||||2||||||5|||||||10,2|||||||3,3,3,3,6,3|||6|||10|||||||5,1,1,8,1,5,5|||5||||8||||||6,11,11,6,11,3,6||||3|||6|||||||5,10,10,10,6,5|||3|||3,3,10|||||||5,8,8,8,11,5|||||||11||||||3|||||||3,8,3,11|||||||1,1,8,1,5,1||||||1|||||||5,5,5|||||||1,1||||||6,6,6,6,10,6|||||||10|||||||1,1,1||||||6,10|||||||11,6,6,11|||||||1||||||10,10,10|||||||6,6|||||||8,6,6,6,10,1,8|||6,6|||6,6,10|||||||1|||||||6,10||||||6,6|||||||1|||||||10||||||6,6|||||||5,5,5,8,12|||||||10,10,8||||||12,12,12|||||||2,5,2,8|||3,3||||10,5,10,2||||||10|||||||5,5,2|||||||6,10,6,10||||||5,3,3,6,3,5|||||||6|||||||3,3,10||||||3,3,3,6|||||||3,3|||||||10||||||6|||||||1,1,1|||||||11,11,11||||||3|||||||3,3,6|||3,3||||11,3||||||1,1,1,5,1,8,1|||||||11,11,5|||10,10||||8||||||8,1,8,5|||||||11,6,6,6,10,1,11|||||||10||||||10,6,10,1|||||||10,6,10,10|||||||6||||||1|||||||10|||||||8,1,6,8||||||6,8,8,8,12,3,6|||||||12|||||||10,10,3||||||8,8,8,12|||||||1,8,1,5|||||||1||||||5|||||||3,1,3,1|||||||6,11,11,6,11,3,6||||||6|||||||10,6,10,6,10,1,10|||||||10,6,10,6||||||1|||||||6|||||||10||||||6,6|||||||10,10,8,10,3,12,10|||||||12||||||3|||||||10,8|||||||10,10,10,2,5,10||||||2|||||||5|||||||10,2||||||3,3,3,3,6,3||||6|||10|||||||5,1,1,8,1,5,5|||5|||8|||||||6,11,11,6,11,3,6|||3||||6||||||5,10,10,10,6,5||||3|||3,3,6|||||||5,8,8,8,11,5||||||11|||||||3|||||||3,8,3,11||||||1,1,8,1,5,1|||||||1|||||||3,3,5||||||10,1,10,1|||||||6,6,6,10|||||||10||||||1|||||||6,10|||||||6,6||||||1|||||||10|||||||6,6||||||10,10,8,10,3,12,10|||||||12|||||||3||||||10,8|||||||10,10,10,2,5,10|||||||2||||||5|||||||10,2|||||||3,3,3,3,6,3|||6|||10|||||||5,1,1,8,1,5,5|||5||||8||||||6,11,11,6,11,3,6||||3|||6|||||||5,10,10,10,6,5|||3|||3,3,10|||||||5,8,8,8,11,5|||||||11||||||3|||||||3,8,3,11|||||||1,1,8,1,5,1||||||1|||||||5,5,5|||||||1,1||||||6,6,6,6,10,6|||||||10|||||||1,1,1||||||6,10|||||||11,6,6,11|||||||1||||||10,10,10|||||||6,6|||||||8,6,6,6,10,1,8|||6,6|||6,6,10|||||||1|||||||6,10||||||6,6|||||||1|||||||10||||||6,6|||||||5,5,5,8,12|||||||10,10,8||||||12,12,12|||||||2,5,2,8|||3,3||||10,5,10,2||||||10|||||||5,5,2|||||||6,10,6,10||||||5,3,3,6,3,5|||||||6|||||||3,3,10||||||3,3,3,6|||||||3,3|||||||10||||||6|||||||1,1,1|||||||11,11,11||||||3|||||||3,3,6|||3,3||||11,3||||||1,1,1,5,1,8,1|||||||11,11,5|||10,10||||8||||||8,1,8,5|||||||11,6,6,6,10,1,11|||||||10||||||10,6,10,1|||||||10,6,10,10|||||||6||||||1|||||||10|||||||8,1,6,8||||||6,8,8,8,12,3,6|||||||12|||||||10,10,3||||||8,8,8,12|||||||1,8,1,5|||||||1||||||5|||||||3,1,3,1|||||||6,11,11,6,11,3,6||||||6|||||||10,6,10,6,10,1,10|||||||10,6,10,6||||||1|||||||6|||||||10||||||6,6|||||||6,1,6,1,6,10,6|||||||10||||||10,10,1|||||||1,10|||||||8,12,8,12,3,8,8||||||12|||||||3,3,3|||||||10,12||||||6,11,11,11,6,6|||||||3|||||||10,6,6,10,1,10||||||10,6,10,10|||||||1|||||||6|||||||||||||6|||||||6||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
long c:=len(song,|),p1,p2,p3,mpos=1,pc,pcc
string s
declare piano&[11]
whileloop 0,10 {
piano&[loop]:=ms.load(cs4.wav)
ms.setvol(piano&[loop],1000)
}
mem freqs=13*8// octave
long freqs#,0=17514,18555,19659,20828,22066,23378,24768,26241,27802,29455,31206,33062,35028
settimer 30
usepen 5,0,0
do {
waitinput
case %wmtimer : playmysong()
case (%key==2) : break
}
ms.close
dispose freqs
end
playmysong{
case (mpos==c) : mpos:=1
s:=substr$(song,mpos,|)
ifnot (s==) {
pcc:=0
whileloop len(s,,) {
ms.setfreq(piano&[pc],long(freqs,mod(val(substr$(s,loop,,)),13)*4))
ms.playhard(piano&[pc],false)
pc++
pcc++
case (pc==10) : pc:=0
}
copybmp 20,0 - width(hwnd),height(hwnd) > 0,0;0
usebrush 1,rgb(pcc*25,255-pcc*25,255-pcc*25)
pcc:=height(hwnd)/10*pcc
rectangle (width(hwnd)-19),(height(hwnd)-pcc) - width(hwnd),height(hwnd)
usebrush 1,$00FFFFFF
rectangle (width(hwnd)-19),0 - width(hwnd),(height(hwnd)-pcc)
copybmp 20,0 - (width(hwnd)-20),height(hwnd) > 0,0;0
}
mpos++
}