频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

利用VB6.0实现五线谱作曲工具

来源:计算机与信息技术 作者:王蓓蓓 王燕 出处:巧巧读书 2007-01-01 进入讨论组
上一页 1 2 
曲谱的保存和读取

  在可视化编辑工具中所作的曲目应当能够保存为数据文件。保存和读取的操作是通过通用对话框CommonDialog来实现的,设计程序界面时在窗体上加载一个通用对话框控件。当点取程序菜单上的“保存”时,弹出文件保存对话框,然后设置文件路径对音乐数据进行保存,其代码如下:

CommonDialog1.FileName = App.Path & "\*.txt"
CommonDialog1.ShowOpen ‘显示保存对话框
If CommonDialog1.FileName = App.Path & "\*.txt" Then Exit Sub
 Me.MousePointer = 11
 For LineY& = 1 To 40
  OutputS = "Tone" & LeadingZeros$(LineY&, 2) & ": "
  For ColoumX = 1 To 150
   A = Chr(Music(LineY&, ColoumX) + Asc("0"))
   OutputS = OutputS & A ‘写入文件
  Next ColoumX
  Whole$ = Whole$ & OutputS & vbCrLf
  Next LineY
  Open CommonDialog1.FileName For Output As #1
  Print #1, Whole$
  Close #1 ‘关闭文件

  文件的读取过程与保存过程类似,只要通过Input语句将文件中的数据加载到二维数组Music中去就可以了。

  曲谱的合成与播放

  曲谱的合成是通过Windows自带的多媒体API函数来实现的,这些API函数在winmm.dll文件中,因此需要把该文件引用到程序中。该动态链接库中包含了多个数字音乐(Midi)输入、输出、合成等方面的库函数。在对曲谱进行Midi合成播放时,首先将二维数组Music中的数据转化为数字音频信号,然后通过计算机的声卡播放出来,其中的关键代码如下:

For LineY& = 1 To 30
 If Music(LineY&, X) <> 0 And Not ISAgainFlag Then
  midimsg = &H90 + ((46 + LineY&) * &H100) + (volume * &H10000) + TempChannel ‘定义音高
  midiOutShortMsg hmidi, midimsg ‘输出音频
 End If
Next LineY

  结束语

  本文介绍了一种利用VB环境实现五线谱作曲的可视化编辑工具,目的在于探讨数字音乐技术的基本原理。从功能上说这还是一个原型系统,在此基础上还可进一步扩展功能,如多行编辑、音色选择、乐器选择等。来自:http://www.qqread.com/vb/k291453.html进入讨论组讨论。
上一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章