ww

ww

AudioMulch:开始吧

类似于Max,但没有Max更靠近底层和细节,好处是可以用一些现成的模块(姑且当成Max里被封装的模块吧)快速的实现一些东西,看起来还是满好玩的,而且从版本2开始支持Mac。。那么就一起学学试试吧。 1). AudioMulch是什么? 一个模块化实时音频软件。它的模块叫做contraption(珍奇的装置),他们可以连在一起产生或组织声音。每个contraption都有一个可视化面板,你可以在那里控制它们各自可被控制的参数。AudioMulch可以作为VST和VSTi插件的雇主软件使用。 由于AudioMulch的实时性,因此它可以对声音进行实时的控制,同时,它有很多自动化(automation)属性供你选择。你可以将你创造的声音录成并导出为声音文件。 其实还是通过官方站点提供的视频来了解它最直观: 2). 用户界面一览 1. 如图,AudioMulch的用户界面主要由三部分构成:Patcher(1)、属性(2)和自动化(3)面板。 2. 各个面板的尺寸可以用鼠标拖拉调整。同样通过点击查看工具栏内的这三个图标你亦可以打开或隐藏相应的面板:(Patcher)、(属性)、(自动化),或者使用相应的快捷键(F5, F6 and F7 /Windows, Command-5, Command-6 and Command-7 /Macintosh)。 Patcher面板 1. 在这个面板左册,是AudioMulch所有可使用的Contraption,选择其一并拖放到Patcher面板内将添加一个Contraption,当然你也可以通过在Patcher面板内鼠标右键选择并添加一个contraption 2. 和Max一样,一个个的contraption是通过连线来传递数据的。 3. 名为SoundOut的contraption是听到声音的必备装置(这个可以想得到)。 属性面板 没什么好讲。 自动化面板 几乎所有contraption的参数都有它们自己的自动化通道。在属性面板内,鼠标右键一个参数控制器,之后在弹出菜单中选择Automate,将在自动化面板中激活它的自动化通道。 3). Contraption 它们被分为以下几大类:输入输出、信号产生器、效果、滤波器、混音器和总线。AudioMulch同样支持VST和VSTi插件。(在下电脑内的这两种插件已被扫出并罗列出) 4). AudioMulch和MIDI 1. 要在AudioMulch里使用MIDI硬件或软件控制器,你首先需要点亮“允许MIDI”按钮,你可以在参数控制器里配置你的MIDI设备。同时,AudioMulch同样提供了一个快速设置映射的方式(将在以后说明)。你也可以使AudioMulch与外部MIDI音序同步(同样将在以后说明)。 5).…

Max:基础音序

1. #1:seq物件可载入一组midi音序,start按钮触发它,stop停止全部音符,后者是由midiflush物件造成的。midiflush是有维持note-on和note-off配对的作用,同时,当它收到一个bang信息的时候,它将发送一个note-off指令,停止音序中的全部音符。当音序跑完后,在seq物件的右输出口将发送一个bang信息,这可以通过挂在它右边那个大按钮看到。 2. #2:用于改变播放速率的一组小程序,1024为正常播放速度,这里我们使用了start消息框引数来实现这一改变。*1024物件上方的数字框,显而易见,是播放速率的倍数,如果它为0.5,则将以正常速率一半的速率播放,依此类推。注意两点:1、Go!消息框里的文字可以是任意文字,因为按钮物件可以转换一切消息为一个bang;2、这种变速方式仅仅能从开始播放时起作用,要在播放进行中变速,我们还需要tick消息。 3. #3:在播放时变速的两个关键消息:start -1和tick。前者使得音序脱离seq物件的中心时钟而等待tick发布的命令来改变速率。因此点击start -1消息框后,再勾选toggle物件,改变tempo物件上方数字框的值将实时控制音序回放的速率。用line物件替代这个数字框作为tempo物件tempo的输入值,那么可以产生平滑变速的效果。注意,这里勾选与取消勾选toggle物件,它的作用为暂停而不是停止,即:在演奏途中取消勾选,则暂停播放,再次勾选,则由上次暂停播放的点开始继续播放。 4. tempo物件三个引数的解释:120:默认速率,本例内为将默认速率设置为120bpm;1:默认拍子倍加器;96:每个全音符的脉动(pulse)。 5. seq_sc.midi文件位于装载本maxpat文件的同级目录下。 本例内新物件: seq:录制与播放MIDI数据的音序器 midiflush:为原始MIDI信号note-on发送note-off tempo:以一个节拍器的速度输出数字

Max:MIDI分析

1. midiparse物件可以对midiin物件收集到的原始MIDI信号进行捕捉分析,并输出多项控制数据,比如音符、力度、弯音(pitch bend)等等。 2. midiformat与之相反,它可以将各种输入的信息还原为MIDI流到输出。滑动一下例子下半部分中的slider试试,不过注意因为没有配备相应的note-off信息,所以一旦想起来,它就无法停止了。。(本人的遭遇) 3. 绝大多数情况下,MIDI控制器传送及接收的7比特值(0~128)对于处理合成器及采样器控制已经足够了。但是,在少数情况下,7比特值对于细微差别的信息还是不够用的,最普遍的例子便是完音控制。因此,我们使用能够提供14比特值的xbendin物件来解决这一问题。但不幸的是,即使是最稳定的MIDI控制器,在捕捉弯音控制延伸值的时候也会产生过度的MIDI信息──硬件无法长时间保持在一个单独的值上,这将使得我们的patch表现得不规律,或者至少,就加大我们对于那些复杂patch适当除错的能力。 4. 这个问题的解决方式正是speedlim物件,它可以获得任何物件的输出(本例中为xbendin),并且限制输出在指定的时间周期仅输出一个信息。在例子中,引数250告诉speelim物件至多250毫秒(1/4秒)输出一个信息。当你发送弯音信息给例子中的patch,你将看到xbendin物件的button和数字框比speedlim的更新要更频繁,speedlim仅仅是每1/4秒才更新一次。 5. 总结:midiparse和midiformat物件是一切大型复杂基于MIDI的系统的核心。用xbendin物件接收延伸的弯音信息将帮助我们用Max/MSP创建更稳定的声响合成器。但是,也许有的信息可能被接收的太快了,使用speedlim物件延缓接收这些信息的时间可以帮助我们控制那些过头数据的总量。 本例内新物件: midiparse:解释原始MIDI数据 midiformat:以MIDI信息的方式准备数据 xbendin:解释额外精确的MIDI弯音值 speedlim:限制消息通过的速度

Max:MIDI音符管理

1. makenote物件是Max中最好用的MIDI音符催生物件,因为它不但可以选择音高、力度和延音时间,而且还能在note-on(音符产生)信息后自动发送一个note-off(音符停止)信息,这样对于我们的使用来说就很简便。这里注意用物件检查器查看一下标注为“dur”那个滑动条的参数,这是用来向makenote物件发送音符延音时间的物件。 2. 中间部分:stripnote物件与notein物件相连,将仅通过note-on消息而抹去MIDI设备的note-off消息。flush物件干的便是发送note-off的事,它能创建一个内部没有接到note-off命令音符的note-on信息的表格,当它的左输入口接到一个bang信息后,它便发送还在延续的音符的note-off信息。 3. sustain物件,件如其名,作为延音用,类似键盘的延音踏板。 本例内新物件: makenote:伴随每个note-on信息生成一个note-off信息 stripnote:滤掉note-off信息,仅通过note-on信息 flush:为进行中的音符提供note-off信息 sustain:持有note-off信息,收到命令后输出它们

Max:基本的MIDI

1. MIDI为Musical Instrument Digital Interface(音乐乐器数字接口)的缩写。 2. midiin物件输出收到的外部MIDI信息,midiout物件传送MIDI信息到外部。双击它们将打开MIDI设备选择选单。 3. notein和noteout物件输出和传送MIDI音符信息。三个口从左至右分别为音符数字(音高)、力度和MIDI通道。如第三个例子所示:我们可以将这三个信息通过一个消息框一次传送给noteout发声。我们用将力度设为0的方式停止一个音符的声音。 4. ctlin和ctlout物件输出和传送MIDI控制值,例如MIDI控制器映射或者键盘延音踏板。 5. 灰色那个物件叫做gswitch2,自己玩玩就知道,它可以为一个输入分配不同的两个输出。左输入口为控制入口,如果进入的值为0则默认从左边的口输出,如果进入的值为1则默认从右边的口输出,你可以自己挂个数字框调整0和1看结果;右输入口为数据入口,为控制器的命令值通过。 6. 更多关于端口、通道等的信息,大家可以参见这几个物件里边的提取─inport.maxhelp,在里边有很详尽的介绍。 7. midiinfo物件是个很方便的midi端口选择器。用它与一个umenu物件相连,收到一个bang信息后,如果它连在左边,则会自动检测并将你可用的MIDI输出设备列印在umenu物件上;如果它连在右边,则会自动检测并将你可用的MIDI输入设备列印在umenu物件上。它的用法不止这一个,我们会在今后的课程中探讨更多。 8. 结论:输入MIDI流的基本内容可以通过midiin物件复原,一个MIDI流可以使用midiout’物件发送。但是,在大多数情况下,对待独立信息类型更简单的方式是使用它们的消息专用物件(message-specific objects)。notein/onteout物件和ctlin/ctlout物件为无需解码原始MIDI输入或创建原始MIDI输出的信息提供了简单的解决之道。midiinfo物件,是一个检测你当前MIDI设备状态的强大工具。 本例内新物件: midiin:输出收到的原始MIDI数据 midiout:传输原始MIDI数据 notein:输出收到的MIDI音符信息 noteout:传输MIDI音符信息 ctlin:输出收到的MIDI控制值 ctlout:传输MIDI控制信息 midiinfo:设置一个包含MIDI设备清单的下拉菜单 gswitch2:从两个输出口其中之一通过一个输入

Max:等式设计

1. 一看这些复杂的运算首先绝对有一种晕菜的感觉,但是本课相反没有过多可记录的东西。一共7个值:x, y, z, A, B, C, D, E,空格键(老伎俩)random出0~1000的四个数,然后scale这四个数到-4.~4.的范围,然后分别赋给A, B, C, D, E五个数,然后这五个数又分别套用一堆复杂的公式计算出x, y, z的值。这三个值在lcd上画线段和空心圆,同时通过名为changecolor的subpatch控制颜色的渐变。其实就这么简单。 2. 搞这么大阵势,其实这课主要要告诉我们,用一个物件便可以完成诸如像x = sin(A*y)-z*cos(B*x)或者y = z*sin(C*x)-cos(D*y)这样的复杂运算,这个物件便是─expr。试想要是没有它,我们要运算以上的公式得堆起多么高的一个建筑来。 3. 关于expr物件,有几点值得注意:表达式中$f1的意思是由第一输入口接收的浮点数,剩下接口依此类推。 4. 如果一个expr物件引数为int(exp($f1)*5.),我们该如何理解它呢?其实我们看不懂的仅为exp($f1)的部分,这个部分的意思是运用exp功能(function)创造一个新值。乘以5之后将之整数化。 5. 这里复习一下value物件,它在第16课:远程信息中第一次出现,同名value物件的值在整个patch甚至supatch中都是一致的,在本例中,x, y, z, A, B, C, D, E这几个数字的多次运用就是通过value物件实现的。 本例内新物件: expr:为一个数学表达式赋值 到这里,官方教程第一部分Basic全部学完,给自己一点掌声吧~下一篇进入MIDI。