I was experimenting to create c64 sid like music. You will need Ian's matrix1 to compile the snippet.
#constant szun=0
#Constant GTE=5:#Constant GTA=A0:#Constant GTD=15:#Constant GTG=20:
#Constant GTH=24:#Constant GTB=24:#Constant GTE2=29:
#Constant GT1=5:#Constant GT2=10:#Constant GT3=15:#Constant GT4=20:
#Constant GT5=24:#Constant GTE6=29:
#constant c0=1:#constant cu0=2:#constant D0=3:#constant Du0=4:
#constant E0=5:#constant F0=6:#constant Fu0=7:#constant G0=8:
#constant Gu0=9:#constant A0=10:#constant Au0=11:#constant B0=12:
#constant C1=13:#constant cu1=14:#constant d1=15:#constant Du1=16:
#constant E1=17:#constant F1=18:#constant Fu1=19:#constant G1=20:
#constant Gu1=21:#constant A1=22:#constant Au1=23:#constant B1=24:
#constant C2=25:#constant Cu2=26:#constant D2=27:#constant Du2=28:
#constant E2=29:#constant F2=30:#constant Fu2=31:#constant G2=32:
#constant Gu2=33:#constant A2=34:#constant Au2=35:#constant B2=36:
#constant C3=37:#constant Cu3=38:#constant D3=39:#constant Du3=40:
#constant E3=41:#constant F3=42:#constant Fu3=43:#constant G3=44:
#constant Gu3=45:#constant A3=46:#constant Au3=47:#constant B3=48:
#constant C4=49:#constant Cu4=50:#constant D4=51:#constant Du4=52:
#constant E4=53:#constant F4=54:#constant Fu4=55:#constant G4=56:
#constant Gu4=57:#constant A4=58:#constant Au4=59:#constant B4=60:
#constant C5=61:#constant Cu5=62:#constant D5=63:#constant Du5=64:
#constant E5=65:#constant F5=66:#constant Fu5=67:#constant G5=68:
#constant Gu5=69:#constant A5=70:#constant Au5=71:#constant B5=72:
#constant C6=73:#constant Cu6=74:#constant D6=75:#constant Du6=76:
#constant E6=77:#constant F6=78:#constant Fu6=79:#constant G6=80:
#constant Gu6=81:#constant A6=82:#constant Au6=83:#constant B6=84:
#constant C7=85:#constant Cu7=86:#constant D7=87:#constant Du7=88:
#constant E7=89:#constant F7=90:#constant Fu7=91:#constant G7=92:
#constant Gu7=93:#constant A7=94:#constant Au7=95:#constant B7=96:
#constant C8=97:#constant Cu8=98:#constant D8=99:#constant Du8=100:
global sinner as float
global length as integer
global length2 as integer
global ticklenght as integer
global tick as integer
global maxraw as integer
global ras as integer
global rawer as integer
global aa$
maximize window
setupretromusic()
sync
do
cls
center text 240,200+(15*sin(sinner)),"-"
center text 280,200+(15*sin(sinner+40)),"R"
center text 300,200+(15*sin(sinner+60)),"E"
center text 320,200+(15*sin(sinner+80)),"T"
center text 340,200+(15*sin(sinner+100)),"R"
center text 360,200+(15*sin(sinner+120)),"O"
center text 400,200+(15*sin(sinner+160)),"+"
center text 320,235,str$(ticklength)
sinner=sinner+0.3
if sinner>360 then sinner=1
updateretromusic()
text 20,10,"Music started"
text 20,30,str$(rawer)
text 20,50,"FPS:"+str$(screen fps())
sync
loop
Function updateretromusic()
if ticker(tick)=1
rawer=rawer+1
if rawer=maxraw then rawer=0
if musicnotes(1,rawer)>0
if rawer>1 then if musicnotes(1,rawer-1)>0 then if sound exist(musicnotes(1,rawer-1))=1 then stop sound musicnotes(1,rawer-1)
play sound musicnotes(1,rawer)
Endif
if musicnotes(2,rawer)>0 then play sound musicnotes(2,rawer)
if musicnotes(3,rawer)>0 then play sound musicnotes(3,rawer)
Endif
Endfunction
function setupretromusic()
sinner=0:length=300:length2=450:ticklength=160
createsoundmedia()
dim musicnotes(3,1000) as integer
tick=find free ticker():make ticker tick,ticklength
maxraw=createmusic1()
Endfunction
function createsoundmedia()
createsound("c0",c0,length,16.35):createsound("cu0",cu0,length,17.32)
createsound("d0",d0,length,18.35):createsound("du0",du0,length,19.45)
createsound("e0",E0,length,20.60):createsound("F0",F0,length,21.83)
createsound("Fu0",Fu0,length,23.12):createsound("G0",G0,length,24.50)
createsound("Gu0",Gu0,length,25.96):createsound("A0",A0,length,27.50)
createsound("Au0",Au0,length,29.14):createsound("B0",B0,length,30.87)
createsound("c1",c1,length,32.70):createsound("cu1",cu1,length,34.65)
createsound("d1",d1,length,36.71):createsound("du1",du1,length,38.89)
createsound("e1",E1,length,41.20):createsound("F1",F1,length,43.65)
createsound("Fu1",Fu1,length,46.25):createsound("G1",G1,length,49.00)
createsound("Gu1",Gu1,length,51.91):createsound("A1",A1,length,55.50)
createsound("Au1",Au1,length,58.27):createsound("B1",B1,length,61.74)
createsound("c2",c2,length,65.41):createsound("cu2",cu2,length2,69.30)
createsound("d2",d2,length2,73.42):createsound("du2",du2,length2,77.78)
createsound("e2",E2,length2,82.41):createsound("F2",F2,length2,87.31)
createsound("Fu2",Fu2,length2,92.50):createsound("G2",G2,length2,98.00)
createsound("Gu2",Gu2,length2,103.83):createsound("A2",A2,length2,110.00)
createsound("Au2",Au2,length2,116.54):createsound("B2",B2,length2,123.44)
createsound("c3",c3,length2,130.81):createsound("cu3",cu3,length,138.59)
createsound("d3",d3,length2,146.83):createsound("du3",du3,length,155.56)
createsound("e3",E3,length2,164.81):createsound("F3",F3,length,174.61)
createsound("Fu3",Fu3,length2,185.00):createsound("G3",G3,length,196.00)
createsound("Gu3",Gu3,length2,207.65):createsound("A3",A3,length,220.00)
createsound("Au3",Au3,length2,233.08):createsound("B3",B3,length,246.97)
createsound("c4",c4,length,261.63):createsound("cu4",cu4,length,277.18)
createsound("d4",d4,length,293.66):createsound("du4",du4,length,311.13)
createsound("e4",E4,length,329.63):createsound("F4",F4,length,349.23)
createsound("Fu4",Fu4,length,369.99):createsound("G4",G4,length,392.00)
createsound("Gu4",Gu4,length,415.30):createsound("A4",A4,length,440.00)
createsound("Au4",Au4,length,466.16):createsound("B4",B4,length,493.88)
endfunction
function createmusic1()
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
endfunction ras
function resetdallam()
ras=1
maxraw=1
endfunction
function addnotes(a,b,c)
musicnotes(1,ras)=a:musicnotes(2,ras)=b:musicnotes(3,ras)=c:ras=ras+1
maxraw=ras
endfunction
function createsound(name$,soundnumber,length#,pitch#)
if file exist(name$+".wav")=1
load sound name$+".wav",soundnumber
exitfunction
endif
open to write 1,name$+".wav"
chunk=int(((length#/1000)*44100*16)/8) `sample size (no of samples * bitrate * channels / 8)
samples=int((length#/1000)*44100) `length *44100
restore
for x=1 to 40
read byte2
write byte 1, byte2
next x
write long 1,chunk
rem generate and write wave
thing# = 0
for x=1 to samples
inc thing#,pitch#
if thing#>10000 then thing#=0
output#=thing#
write word 1,output#
next x
close file 1
load sound name$+".wav",soundnumber
data 82:data 73:data 70:data 70:data 208:data 59:data 1:data 0:data 87
data 65:data 86:data 69:data 102:data 109:data 116:data 32:data 16
data 0:data 0:data 0:data 1:data 0:data 2:data 0:data 34:data 86:data 0
data 0:data 136:data 88:data 1:data 0:data 4:data 0:data 16:data 0
data 100:data 97:data 116:data 97
endfunction
No place like 127.0.0.1 .