欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    数字化音乐毕业设计.doc

    • 资源ID:10225454       资源大小:58.50KB        全文页数:5页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字化音乐毕业设计.doc

    摘 要 针对数字化音乐教学的需要,提出了基于VB环境开发五线谱作曲工具的可行性,并对其中技术原理、关键问题给出了具体的解决方法,实现了一个基本的可视化作曲工具,对一般音乐教育工作者具有很好的启发性。关键词 数字化音乐;五线谱;音乐软件目前在数字化音乐教学过程中需要用到许多编辑软件和作曲软件。许多音乐教育工作者对如何开发自己的数字音乐工具很感兴趣,而一般的计算机类书刊对此类问题探讨和介绍的比较少,本文试图从这一领域做些原理性的研究工作,以供音乐教育工作者和其他相关爱好者发挥、扩展,起到抛砖引玉的作用。因此本文以业余程序员最熟悉的开发工具VB为平台,开发设计了一个基本的五线谱编辑工具,并实现了数字音乐的合成、播放、保存和读写。可视化图形界面的设计首先在VB环境中建立一个新的窗体并保存,然后在窗体中建立菜单和工具条,为简便起见,工具条用Option控件组来实现(需要把风格设为 Graphical模式),并把事先做好的图标加载到控件上。图1是五线谱作曲工具的主界面,其中Picture1控件作为可视化编辑工具的客户操作区, Picture2控件中所加载的位图包含了作曲过程中需要的基本音符,在操作过程中通过位图提取的方式来获得相应的音符,然后插入到所需的位置。图1 VB环境中的设计界面五线谱作曲功能的实现在工具条上的五个Option控件构成一个控件组,根据Option控件本身的特性,其中一个选中时其它的自动设为非选择项,因此操作起来很方便。当选中其中的一个音符图标后,自动触发相应的事件。事件处理代码如下:Private Sub Option1_Click(Index As Integer)Picture1.SetFocus 焦点集中到客户区Yinfu = Index 获得音符序号End Sub其中整型数Yinfu是一个全局变量,通过控件组中的索引Index可以知道哪个音符按钮被选中。为了记录作曲过程中的操作,定义一个二维数组 Music用来存放数据,光标点取在Picture1客户区中的坐标经过圆整后作为数组的行、列序号,数组元素记录所选的音符。整个处理过程放在 Picture1控件的MouseDown事件中进行,代码如下:Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim LineY&, ColoumX&LineY& = Round(Y - 13) / 5) 行圆整ColoumX& = Round(X - 30) / 16) 列圆整If Not (ColoumX& > 0 And LineY& > 0) ThenExit SubEnd IfIf Music(LineY&, ColoumX& + HScroll1.Value) = 0 ThenMusic(LineY&, ColoumX&+ HScroll1.Value) = Selection 记录音符End IfDisplayNotes 在客户区显示当前音符End Sub当程序运行时,首先通过主窗体的Form Load事件在Picture1的客户区绘出五线谱的五条平行的水平线,作曲者便可以根据不同的音高在相应位置插入音符。插入音符的过程是通过上面的 DisplayNotes函数来实现的,利用Windows系统的API(应用程序接口)函数Bitblt所具有的内存数据传送的功能将Picture2 中位图的一部分提取出来并按照一定的变换后插入到Picture1的客户区制定位置,主要代码如下:Select Case IDCase 1BitBlt Picture1.hdc, X& - 7, Y& - 18, 20, 30, Picture2.hdc, 66, 0, SRCANDCase 2BitBlt Picture1.hdc, X& - 5, Y& - 18, 20, 30, Picture2.hdc, 0, 0, SRCAND图2 五线谱作曲工具的运行效果曲谱的保存和读取在可视化编辑工具中所作的曲目应当能够保存为数据文件。保存和读取的操作是通过通用对话框CommonDialog来实现的,设计程序界面时在窗体上加载一个通用对话框控件。当点取程序菜单上的“保存”时,弹出文件保存对话框,然后设置文件路径对音乐数据进行保存,其代码如下:CommonDialog1.FileName = App.Path & "*.txt"CommonDialog1.ShowOpen 显示保存对话框If CommonDialog1.FileName = App.Path & "*.txt" Then Exit SubMe.MousePointer = 11For LineY& = 1 To 40OutputS = "Tone" & LeadingZeros$(LineY&, 2) & ": "For ColoumX = 1 To 150A = Chr(Music(LineY&, ColoumX) + Asc("0")OutputS = OutputS & A 写入文件Next ColoumXWhole$ = Whole$ & OutputS & vbCrLfNext LineYOpen CommonDialog1.FileName For Output As #1Print #1, Whole$Close #1 关闭文件文件的读取过程与保存过程类似,只要通过Input语句将文件中的数据加载到二维数组Music中去就可以了。曲谱的合成与播放曲谱的合成是通过Windows自带的多媒体API函数来实现的,这些API函数在winmm.dll文件中,因此需要把该文件引用到程序中。该动态链接库中包含了多个数字音乐(Midi)输入、输出、合成等方面的库函数。在对曲谱进行Midi合成播放时,首先将二维数组Music中的数据转化为数字音频信号,然后通过计算机的声卡播放出来,其中的关键代码如下:For LineY& = 1 To 30If Music(LineY&, X) <> 0 And Not ISAgainFlag Thenmidimsg = &H90 + (46 + LineY&) * &H100) + (volume * &H10000) + TempChannel 定义音高midiOutShortMsg hmidi, midimsg 输出音频End IfNext LineY结束语本文介绍了一种利用VB环境实现五线谱作曲的可视化编辑工具,目的在于探讨数字音乐技术的基本原理。从功能上说这还是一个原型系统,在此基础上还可进一步扩展功能,如多行编辑、音色选择、乐器选择等。

    注意事项

    本文(数字化音乐毕业设计.doc)为本站会员(土8路)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开