登录模块加载中...
本站搜索
当前位置:首页 >> 音乐制作中心 >> 音乐技术 >> 音频 >> 声音合成 >> 正文>> 
用Max/MSP创建合成器 I

自从1992年或1993年起,我就开始使用Cycling 74公司的Max软件了(那时还叫Opcode),后来MSP概念出来时,我又跳到了MSP平台上。在最后的8年多的时间里,我一直在重写一些分步音序器与信号布置器——而这些是专门为我自己的作品而设计的。不过,通过最近对计算机的升级,一款新型的G4手提笔记本电脑,我又开始热衷于设计合成器了。

原作: Darwin Grosse
编译:csounds 通讯邮件:csounds@126.com

自从1992年或1993年起,我就开始使用Cycling 74公司的Max软件了(那时还叫Opcode),后来MSP概念出来时,我又跳到了MSP平台上。在最后的8年多的时间里,我一直在重写一些分步音序器与信号布置器——而这些是专门为我自己的作品而设计的。不过,通过最近对计算机的升级,一款新型的G4手提笔记本电脑,我又开始热衷于设计合成器了。

浏览Cycling 74讨论区时,我注意到有很多比较迷惑的初学者。Max与MSP的手册非常出色,而且还配有一套不错的教程。但是对于合成器设计这块,因为选项实在是太多了,因此一些朋友也就开始气馁了。

因此我打算写一套合成器建设的系列文章。当然这并非是说要取代Max/MSP的手册——实际上,我的书写的前提是你确实看过一遍手册了,而且使用他们来给你的MIDI系统设置了软件。另外,阅读一遍教程对于你的学习过程来说也是非常必要的,当然你也可以有选择性地跳跃阅读手册。本教程的重点在于——创建基于软件的合成器。

·Creating cs.synth_01

本教程的一些先决前提:
- 你已经看过一些教程,知道如何选择对象并连接它们
- 你已经设置了Max的MIDI系统(通过OMS)
- 你已经正确地设置了Max版本4与MSP版本2
- 具备一台连接的MIDI键盘

编者注:现在Max/Msp已经有了Windows版本,最新版本为4.5.1

另外,你还需要一个Max对象“ddg.mono”,你可以在以下链接中找到

http://www.cycling74.com/share/ddg

这是属于Cycling 74网站的共享内容,我也会在这里贴一些自定义对象,以及外构(External)。你下载了之后,应该将对象与帮助文件放到你的Max搜索路径中。
我们一开始来创建一个简单的合成器——可以接收我们的MIDI输入,并创建一个正弦波输出。正如合成器的简单,第一步我们要先让MIDI能够进入到我们的音图中(Patch)。

编者注:音图——Patch(可以解释为音色编程,但非音色)
音色)——Sound



打开一个新的音图器(Patcher),(Command-N,或者是 菜单File|New|New Patcher),增加一个notein(音符输入)对象。notein 对象是一种方便的从输入MIDI流来接收音符信息(note-on与note-of)的对象。为了让合成器构建更为简单些,我已经将我的主MIDI控制器键盘指定到MIDI device "a" (在Max的MIDI设置对话框中)。这样的话,当我开始一个新合成器时,便可以仅仅让“notein a” 来使用我的MIDI键盘了——对应起来——而不管其它的设置。 [page] 我们还需要限制输入到MIDI通道1,所以notein的第二个参数(argument)是所选的MIDI通道。因为我偏重于将重心放在合成器构建上(而不是MIDI处理),因此我几乎总是以“notein a 1”对象作为构建合成器的开始。

接下来的是我编写的自定义外构(external) - ddg.mono (在上面那个链接中可以获得)。这个对象简化了单声道合成器的创建过程,通过对最后音符优先以及note-on/note-off成对的处理。它使得简单的合成器创建过程非常轻松,当然我还是把重心放在合成器上。



接下来,我们需要增加一些振荡器——声音产生工具。对于这个简单的合成器来说,我们会使用cycle~ 对象(用于正弦波产生)。给它的音高定义为440Hz,以此在我们发送第一个MIDI信息前就具备有效的信号。而这并非是非常关键的地方,更重要的是,对于早期调试工作也非常关键(特别是如果你在具备VCA/amp-mod系统之前测试振荡器的话)。

为了将MIDI音符输出变成可以控制cycle~对象的频率,我们会使用mtof对象。这正如其名称所描述的——它可以将“m's”变成“f's”(即MIDI音符数字变成频率)。到这里,我们具备了合成器的最关键的几种因素——MIDI控制器附上振荡器——万变不离其宗(一般来说)。现在我们要添加音频输出,以及一些控制key-down与key-up事件的方式。



为了能够用键盘事件来控制合成器,我们需要根据键盘输出控制来确定合成器的输出。因为MIDI note-off事件其实是note-on事件的特殊现象(力度为0),我们可以使用signal multiplication (*~) 对象(信号相乘器)来调节输出电平。在音频领域内,相乘服务可以粗略地认为是混合——用一个数字来乘以音频信号,然后便可以改变其振幅。

那么,我们应该拿什么数来乘以振荡器输出呢?力度输出的数值范围为0 (note-off) 到 127 (完全力度)。如果我们以128除数字,我们可以得到的范围为从0 (仍然是note off)到o .9921875 – 在1.0以下,两个提示:

*为了从除对象“/”(divide)获得浮点数,参数(argument)需要设置为浮点数。这就是我们为什么用128.0而不是128的原因。 [page] *永远不要让输出信号到1.0位置。在我的经验中,不同的音频卡对全码(fullcode)的输出反应有所不同。而在这点上减少电平可能会“太早”,但是还是非常简便与有效。这也是我为什么选择用128.0除而不是127.0的原因。



最后,我们需要将音频信号发送到音频输出。将*~对象输出发送到信号电平推子(gain~对象),然后是ezdac~ 输出控制,这样我们便拥有了一个简单的输出音量与DSP on/off控制。若要听一下合成器的声音,你可以打开ezdac~ 对象(按一下按钮就可以了),升高音量并演奏一些音符。

如果一切连接无误的话,现在你便构建了一套简单的正弦波合成器,当然这绝对是非常简单的合成器,但这是我们开始发挥构建更为复杂与丰富的合成器的基础。

我们强烈推荐您从头开始琢磨构建,做学比读学更为容易理解事物的本质。

下一周,我们一块来探讨一下使用包络的输出控制。
责编:admin
版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的技术文章,如需使用,请与原作者联系,版权归原作者所有。
最新评论
发表评论
请您注意:
  • 不良评论请用报告管理员,以利管理员及时删除。
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站评论管理人员有权保留或删除其管辖评论中的任意内容
  • 您在本站发表的作品,本站有权在网站内转载或引用
  • 参与本评论即表明您已经阅读并接受上述条款
  • 打印 刷新 推荐给朋友 返回顶部 关闭
    关键字
    合成器
    相关文章

    用合成器创作管弦乐
    优秀的音乐合成器软件ORION
    解读合成器的和弦调谐(Hermode Tuning)技
    解读离子合成器『上』——坚果壳中的声音…
    解读离子合成器『下』——微粒的截取与组合
    解读FM合成器『1』--前言…
    解读FM合成器『2』--FM7初步…
    解读FM合成器『3』--FM7进阶…
    解读FM合成器『4』--FM奠基人…
    解读FM合成器『5』--FM理论基础…

    最新文章

    GRACE DESIGN M101 话放评测
    [原创兼讨论]音乐人---四项基本原则
    BFD 2.0 终极破解方法
    如何录制大型合唱
    09年上半年传统唱片市场面临崩盘
    张含韵定位分析:要不要转型?
    《珠江边上好乘凉》——关键
    如何作简易快速的音箱摆位以及空间处理?
    均衡的使用---非常精彩的译文!
    [原创音色]『HE-Bass-Fender-F1-v1.0』

    GOOGLE AD