📄 10240.html
字号:
<html>
<head>
<title>Re: 如何改变声音的长短及音调的高低??</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>Re: 如何改变声音的长短及音调的高低??</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:honey0@tcts1.seed.net.tw">Honey</a> on February 22, 1999 at 20:44:28:<p>
In Reply to: <a href="10198.html">如何改变声音的长短及音调的高低??</a> posted by jake xu on February 20, 1999 at 22:48:22:<p>
从简单说起当然是改变波形啦<br>若要改变音调的高低<br>举个例子<br>假设有个声波图形是<br>Y=Sin(X)<br>只要改成<br>Y=Sin(X/2)<br>音调就会比较高<br>这理论知道问题一定可以解决<p>若要改变声音的长短<br>无可避免的 得先对声<br>音的档头有点了解<br>标准的PCM音档档头长度使44Bytes,<br>这个部分不要修改<br>在档头35~36Bytes储存的是档案位元数<br>读取方法如下<br>Dim StrFileName As String '储存档名<br>Dim IntCost As Integer '储存 位元数<br>StrFileName="C:\windows\media\ding.wav _<br>" '设定要读取的档案<br>Open StrfileName For Random As #1 _<br>Len = 2 '设定每笔资料长度为 2 bytes<br>get #1,18,IntCost '取得第18笔资料 _<br>即档头35~36 bytes位置的"位元数"<br>close<p>若IntCost值为16表示<br>这是16位元的音档<br>若为8表示这是8位元的音档...<p>将这个值除以8会得到每笔资料<br>的长度 声音档可以看成'随机档'<br>位元数除以8即是每笔资料长度(bytes)<br>假设这值是K<br>再将档案开启<br>Open StrfileName For Random As #2 _<br>Len = K '设定每笔资料长度为 K bytes<br>一样用get从45bytes取得资料<br>假设取到的值是<br>8 , 2 , 2 , 3 ,5 ,7 ,7 .....<br>有两种方法可增长声音<br>1.改成<p>8,0,2,0,2,0,3,0,5,0,7,0,7,0......<br>中间都加上一笔资料0<br>2.改成<br>8,8,2,2,2,2,3,3,5,5,7,7.........<br>中间都重复一笔资料<p>最后由于档案长度改变了 还需要修改档头<br>Open strFileName For Random Access Read Write As _<br>#23 Len = 4<br>Dim LngG As Long<br>LngG = LOF(23)'档案长度<br>Put #23, 2, (LngG - 8)<br>Put #23, 11, (LngG - 44)<br>Close<br>这样就可以了<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 10240-->
<!--top: 10254--><li><a href="10254.html">Thanks for helping me. </a> <b>jake xu</b> <i>01:33:40 2/23/99</i>
(<!--responses: 10254-->0)
<ul><!--insert: 10254-->
</ul><!--end: 10254-->
</ul><!--end: 10240-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -