Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // --- Äänifunktioita by Valtzu (2007) --- //
- // --- Taajuudet + nuotit by misthema (2010) --- //
- /////////////////
- // //
- // Esimerkki //
- // //
- /////////////////
- start:
- For i=12 To 36 Step 24
- sndTMP = SinWave(GetFreq(i),1,90)
- Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
- PlaySound sndTMP // Soitetaan ääni
- Wait 100
- DeleteSound sndTMP // Ääni pois muistista
- Next i
- For i=13 To 37 Step 24
- sndTMP = SinWave(GetFreq(i),1,90)
- Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
- PlaySound sndTMP // Soitetaan ääni
- Wait 100
- DeleteSound sndTMP // Ääni pois muistista
- Next i
- For i=12 To 36 Step 24
- sndTMP = SinWave(GetFreq(i),1,90)
- Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
- PlaySound sndTMP // Soitetaan ääni
- Wait 100
- DeleteSound sndTMP // Ääni pois muistista
- Next i
- For i=10 To 34 Step 24
- sndTMP = SinWave(GetFreq(i),1,90)
- Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
- PlaySound sndTMP // Soitetaan ääni
- Wait 100
- DeleteSound sndTMP // Ääni pois muistista
- Next i
- Goto start
- WaitKey
- // --- Funktiot --- //
- // Ääni tietyltä taajuudelta
- Function SinWave(taajuus#, pituus#, voimakkuus#=100)
- fq=44100
- length=pituus*fq
- f=OpenToWrite("tmpwav.tmp")
- WriteInt f,$52494646
- WriteInt f,0
- WriteInt f,$57415645
- WriteInt f,$666d7420
- WriteInt f,16
- WriteShort f,1
- WriteShort f,1
- WriteInt f,fq
- WriteInt f,fq*2
- WriteShort f,2
- WriteShort f,16
- WriteInt f,$64617461
- WriteInt f,length*2
- vokke = voimakkuus/100*32767
- For i = 0 To length-1
- WriteShort f,Sin(360.0*taajuus/fq*(i Mod fq))*vokke
- Next i
- fs=FileOffset(f)-8
- SeekFile f,4
- WriteInt f,fs
- CloseFile f
- tmpsnd=LoadSound("tmpwav.tmp")
- 'DeleteFile "tmpwav.tmp"
- Return tmpsnd
- End Function
- // Turha 'raise-to-power' funktio
- Function pow(a#,b#)
- Return a^b
- EndFunction
- // Haetaan nuotti
- Function GetNote(note)
- Select note
- Case 254
- Return ""
- Case 255
- Return "---"
- Default
- Return Trim(Mid("C-C#D-D#E-F-F#G-G#A-A#B-",(note Mod 12)*2+1,2))+""+(note/12)
- EndSelect
- EndFunction
- Function GetFreq(note)
- Return 32.703 * pow(2.0, note/12.0)
- EndFunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement