Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. // --- Äänifunktioita by Valtzu (2007) --- //
  2. // --- Taajuudet + nuotit by misthema (2010) --- //
  3.  
  4.  
  5. /////////////////
  6. // //
  7. // Esimerkki //
  8. // //
  9. /////////////////
  10.  
  11. start:
  12. For i=12 To 36 Step 24
  13. sndTMP = SinWave(GetFreq(i),1,90)
  14. Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
  15. PlaySound sndTMP // Soitetaan ääni
  16. Wait 100
  17. DeleteSound sndTMP // Ääni pois muistista
  18. Next i
  19. For i=13 To 37 Step 24
  20. sndTMP = SinWave(GetFreq(i),1,90)
  21. Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
  22. PlaySound sndTMP // Soitetaan ääni
  23. Wait 100
  24. DeleteSound sndTMP // Ääni pois muistista
  25. Next i
  26. For i=12 To 36 Step 24
  27. sndTMP = SinWave(GetFreq(i),1,90)
  28. Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
  29. PlaySound sndTMP // Soitetaan ääni
  30. Wait 100
  31. DeleteSound sndTMP // Ääni pois muistista
  32. Next i
  33. For i=10 To 34 Step 24
  34. sndTMP = SinWave(GetFreq(i),1,90)
  35. Print "note: "+GetNote(i+12)+", freq: "+GetFreq(i)
  36. PlaySound sndTMP // Soitetaan ääni
  37. Wait 100
  38. DeleteSound sndTMP // Ääni pois muistista
  39. Next i
  40. Goto start
  41.  
  42. WaitKey
  43.  
  44.  
  45.  
  46. // --- Funktiot --- //
  47.  
  48. // Ääni tietyltä taajuudelta
  49. Function SinWave(taajuus#, pituus#, voimakkuus#=100)
  50. fq=44100
  51. length=pituus*fq
  52. f=OpenToWrite("tmpwav.tmp")
  53. WriteInt f,$52494646
  54. WriteInt f,0
  55. WriteInt f,$57415645
  56. WriteInt f,$666d7420
  57. WriteInt f,16
  58. WriteShort f,1
  59. WriteShort f,1
  60. WriteInt f,fq
  61. WriteInt f,fq*2
  62. WriteShort f,2
  63. WriteShort f,16
  64. WriteInt f,$64617461
  65. WriteInt f,length*2
  66. vokke = voimakkuus/100*32767
  67. For i = 0 To length-1
  68. WriteShort f,Sin(360.0*taajuus/fq*(i Mod fq))*vokke
  69. Next i
  70. fs=FileOffset(f)-8
  71. SeekFile f,4
  72. WriteInt f,fs
  73. CloseFile f
  74. tmpsnd=LoadSound("tmpwav.tmp")
  75. 'DeleteFile "tmpwav.tmp"
  76. Return tmpsnd
  77. End Function
  78.  
  79. // Turha 'raise-to-power' funktio
  80. Function pow(a#,b#)
  81. Return a^b
  82. EndFunction
  83.  
  84. // Haetaan nuotti
  85. Function GetNote(note)
  86. Select note
  87. Case 254
  88. Return ""
  89. Case 255
  90. Return "---"
  91. Default
  92. Return Trim(Mid("C-C#D-D#E-F-F#G-G#A-A#B-",(note Mod 12)*2+1,2))+""+(note/12)
  93. EndSelect
  94. EndFunction
  95.  
  96. Function GetFreq(note)
  97. Return 32.703 * pow(2.0, note/12.0)
  98. EndFunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement