Max:手势捕捉

Gesture Capture
Gesture Capture

1. 鸟瞰一下手痒一下,再结合标题,就可以知道这是一个可以捕捉鼠标手势的程序。不过看到key和sel物件的搭配便可知,我们可以用键盘按键来控制它。32, 114和112分别是空格、r和p的ASCII码,空格清除画布内容,r开始记录鼠标手势(再按一次则停止记录),p开始回放(再按一次则停止回放)。

2. 这种记录不仅能记录你绘制的东西,还能记录你鼠标实际的运动包括时间,并将这一切重放。

3. 整个程序共有3个coll物件,但他们都共享同样的数据—thegest。双击它,可以看到它所记录的数据(每记录一次,里边的数据便更新一次,当然)。它以20毫秒的间隔抓取我们的运动。

4. 录制部分:选中toggel开启trigger物件(复习一下:其中引数i为int的缩写),trigger俩口,左边设定metro为20毫秒进入WTHITM,意为以20毫秒的“采样率”捕捉鼠标行为。另外,metro还进入了int物件(缩写为i)。WTHITM提取scale出的两个值进入一个名为draw的子patch(bucket物件的作用是什么?自己看看它的help档)后在lcd物件上绘制出图案。

5. int和+物件,作用简单来说,就是一个没有时间上限的计时器(counter)。它可以给你鼠标行为记录的时间。这个值,以及WTHITM的两个值被pack后一起送入coll物件,第一个值是时间轴,后两个值是鼠标X、Y的位置,这三个值以20毫秒的间隔被coll物件记录,这里,coll物件其实是充当了一个数据记录的角色。

6. 为什么每次点击record(或者按r键)后,lcd面板内的图像都会被清除掉呢?这里我认为sel 1下边那个trigger用得很妙,每次点击,都会有两个clear命令通过t物件被分别送入lcd(s lcd)和coll物件内,因此没次点击,都会清空(及重写)lcd以及coll里边的内容。另外两个0分别被送入绿色的toggle物件(PLAY)及int物件,关闭绿色toggle(停止任何回放),并将计时器清零。当收到一个bang猴,trigger物件从右至左输出它的引数,更多内容请自行参阅它的help档。

7. 回放部分:原理同录制部分,而且更简单。有一点有意思,就是你可以改变这部分metro的快慢,以实现快进或慢放的效果。

8. 深蓝框的coll物件是告诉我们,我们可以依此让coll读取(read)外部的文档或者将它的记录存储(write)到外部以供以后使用。它存储的文档为普通的txt文件,可以用任何相关软件打开或编辑。

本里内关键物件:
coll:保存并编辑一个不同消息的集合。

疑问:
每次回放,都会有一个填充为黑色的三角形(如图),每次位置大小都不一样,不知道为什么,也不知道是不是这个例子的bug,有知情者谢谢告知。

Max:数据测量

Data Scaling
Data Scaling

1. 新物件iter:点击消息框后看Max窗口就很清楚了,它能将输入其的信息列转为一组数据流,信息列中的各个数据被打散,每个一行。

2. 新物件trough和peak:自己一试便知,trough捕捉并输出目前为止最小的输入,peak捕捉并输出目前为止最大的输入。注意这里的“目前为止”四个字,这两个物件的工作并不是以每一次的动作为基础,而是以全程为基础,比如你一开始将例子中的数字框从1拖到12,那么这两个物件就会认为1是最小,12是最大,即使你今后又在1~12的范围内改变了无数次数字框的值,但是trough和peak的输出永远都是1和12。因为他们并不以每一次的操作为基础,而是以全程作为基础判断最大和最小值。

3. 新物件slide:平滑一组数据的输出。教程唧唧歪歪讲了一大堆,不清不楚。实践出真知:引数为两个值,第一个值决定上升的速度,第二个值决定下降的速度,值越小,速度越快,反之亦然。这里边用到一个除法,具体我认为没必要深究。在拖动的过程中,发现一些很有意思但不好解释的现象,发觉已超越吾之智商所及,或者需要静心冥想,这里就不表了,诸位看官请自便。

4. 大家伙:这是一个基于天气数据的patch。开启程序最上方的toggle,先看右边那一溜:counter从0数到364,代表一年的天数,这个值被输入其下方的coll无建中,双击它,我们可以看到,这是一组以天数限定月输出的数据,比如说,第90天,就是四月的第一天,依此类推,这个coll输出相应天数对应的月份后,进入红框的coll物件,双击它,发现里边包含的是一组四个地区(纽约,巴黎,布宜诺斯艾利斯和东京)月平均气温的值,这四个值被unpack后送入四个浮点(f)物件后转为小数后送入slide。这里slide上行和下行都设为了15,意即一个相同的气温值至多被发送31次(一个月的天数),而这个发送的次数,实际上还是由蓝框coll里的数据决定,比如二月,它就只会被发送28次。slide出来的数字被pack入multislider形成柱状图,multislider左下方的出口输出它的值后送入iter拆解后,每次形成一个个由四个音符组成的合声发送出来。

5. multislider右上方那个写着peakhold…的消息框,是这么个意思,multislider有个属性叫做Peak Hold(教程上写的,但我一直没在物件检查器里照着过…),开启它,就会在柱状图每根柱子顶端放一条横线,到最大值的时候,柱子往下走,而横线还放在那,用于标示每个阶段的最大值。他举这个例子就是告诉我们,我们可以使用这样的方式来对检查器类型的消息进行控制。后边还跟了个peakreset,用于在toggle关闭开启后更新最大值。

6. 现在来看大家伙左边那一溜,它用来设定multislider的范围。一切都很好理解,这里我们可以看到coll搭配iter以及trough和peak的用法、用途。trough和peak这么设初始值(最小值1000,最大值0)的原因是,可以让任何输入他们的新值马上建立起一个新的标准。coll物件的消息框dump的作用是:设置coll物件一次输出一个list。

7. 注意,这里trough和peak出来的最小和最大值32、81进入的不再是pack物件,而是pak(念作pock)。二者的区别教程里没写,这里我copy英文help档原文在这吧,因为我已经很晕了,,而且他写得非常绕,所以懒得翻了:PACK:pack takes separate items and combines them into an output list. PAK:The pak object (pronounced “pock”) offers much of the functionality of its big brother, pack, but works like a combination of the pack and bondo objects–output of the entire stored list occurs whenever input is received in any inlet.

本里内新物件:
iter:将一个list打散为一系列数字
peak:如果一个数字大于之前的数字,输出它
trough:如果一个数字小于之前的数字,输出它
slide:用对数法过滤一个输入值

wDVDR03

A_Made_Up_Sound-Shortcuts-2008-BCC
Aidan_Baker-Thisquietarmy–A_Picture_Of_A_Picture-2009-1way
Angel-Hedonism-2008-BCC
Aube-Reworks_Stefano_Gentile_II-Limited_Edition-2008-D2H
B6 – In The Mix 01
Bauhaus-In_The_Flat_Field_and_4AD_EP-Remastered_Audiophile-Vinyl-2008-FWYH
Bauhaus-Mask-Remastered_Audiophile-Vinyl-2008-FWYH
Boris_With_Michio_Kurihara-Cloud_Chamber-2008-hXc
Boscoe-Selftitled-LP-2007-BCC
Brassica-Illness_from_Awareness-Vinyl-2008-BCC
Charlemagne_Palestine–Alloy-2000-i8
Charlemagne_Palestine–Continuous_Sound_Forms-2000-i8
Charlemagne_Palestine–Manifestations-1996-i8
Cosmologic–Eyes_In_The_Back_Of_My_Head-2008-i8
Cro-Magnon-III-2008-JUST
Dalla-Rooz-2007-ETHNiC
David_Cunningham_and_Yasuaki_Shumizu–One_Hundred-2009-i8
David_Lang–The_Passing_Measures-2001-i8
Dead_Mans_Hill-Songs_From_The_Forthcoming_Apocalypse-2009-FWYH
Death_In_June-Lesson_1_Misanthropy-Limited_Edition-2009-FWYH
Deladap-Sara_La_Kali-2008-ETHNiC
Dietmar_Dath_and_Kammerflimmer_Kollektief–Im_Erwachten_Garten-2009-i8
Dreamend-The_Long_Forgotten_Friend-2008-FNT
Elane-The_Silver_Falls-Limited_Edition-2008-FWYH
Expo_70-Audio_Archive_001_Music_From_Inaudible_Depths-CDR-2007-hXc
Gunter_Hampel–Music_From_Europe-2008-i8
Isotope–Golden_Section-2008-i8
Jasper_TX_-_Closet_Ghosts-CDR_EP-2008-ZzZz
John_R._Carlson-In_November-3inch_CDR-2008-BCC
Julie_Doiron-I_Can_Wonder_What_You_Did_With_Your_Day-2009-FNT
Keith_Tippett_Tapestry_Orchestra–Live_At_Le_Mans-2CD-2007-i8
Kenneth_Kirschner-Filaments_and_Voids-2CD-2008-BCC
Kieran_Hebden_and_Steve_Reid-NYC-LP-2008-BCC
Klaus_Schulze_Feat._Lisa_Gerrard-Rheingold-2CD-2008-FWYH
Konntinent–Degrees_Integers-2009-i8
Lancy_Falta_Gypsy_Stream-In_The_Fields-2008-ETHNiC
Legowelt-Dark_Days_2-CDR-2008-BCC
Lukes_Anger-Funk_Of_The_Rural_Neverness-(TBASS11)-2008-pyt
Mathieu_Ruhlmann_and_Celer-Mesoscaphe-2008-BCC
Northerner–The_Ridings-2CD-2009-i8
Omnia–Pagan_Folk_Lore-DVD-2008-1way
Our_Love_Will_Destroy_The_World–Stillborn_Plague_Angels-Vinyl-2009-i8
Paul_Bley_Quintet–Barrage-2008-i8
Philip_Glass-Circles-Remastered-2008-SNOOK
Pierre_Akendengue-Verite_Dafrique-GA-2008-ETHNiC
Prefuse_73-Everything_She_Touched_Turned_Ampexian-Promo-2009-hbZ
Radiohead-Amnesiac_(Collectors_Edition)-2CD-2009-SiRE
Radiohead-Hail_to_the_Thief_(Collectors_Edition)-2CD-2009-ONe
Radiohead-OK_Computer-(Reissue)-2CD-2009-404
Radiohead-Pablo_Honey-(Reissue)-2CD-2009-404
Radiohead-The_Bends-(Reissue)-2CD-2009-404
Rapoon-Obscure_Objects_of_Desire-2008-BCC
Relaxation_Harmony_And_Wellness-Beauty_And_Positive_Vibrations_Of_Asian_Spirit-2008-VAG
Relaxation_Harmony_And_Wellness-Beauty_And_Positive_Vibrations_Of_Nature_Sounds_Vol_6-2008-VAG
Revolutionary_Snake_Ensemble–Forked_Tounge-2008-1way
Richard_Chartier-Further_Materials-2008-BCC

Max:数据观察

Data Viewing
Data Viewing

1. 例1:自己捣鼓一下就知道,你开启那个toggle,也就是打开metro,counter从1数到16,然后经过prepend到那个空白块顺序fetch输出,这个东西叫做multislider物件,可粗译为“多滑块”物件,点击右边的按钮,每点一下,multislider里的图形就变换一次,并且改变整个音序的声音输出。uzi和drunk物件创造16个随机的值(0~127,标准MIDI音符范围),然后prepend 将他们逐一fetch出去发声。你也可以在multislider物件上拖动,指定每一个滑块的值。

2. 为什么说它是多滑块物件?我看不出来呀。。。没关系,这是这个例子滑块视图样式造成的。进入它的物件检查器,倒数第二行Slider Style那里,将“Thin Line”改为”Bar”,再返回去看,如何?现在能看出一条条的滑块了吧?是的,和你一样,我觉得这其实更像“多柱状图”物件。。。当然,顺物件检查器里各参数向上看,你能无师自通它很多的属性设置,比如滑块的数量、颜色、范围、间距、厚度、bla bla…这里我就不多费口舌了。

3. 例2:开启toggle,无限被使用的提取WTHITM再次登场(整个Max教程中最红的程序)。。看到这个模块意味着什么?意味着这又是一个与记录鼠标轨迹有关的程序。的确如此,WTHITM模块下方的两个multislider显示的正是你鼠标的位置,它们使用的样式是Line Scroll,你也可以尝试其他样式,不过对于表述鼠标移动,这个样式应该是最明显的了。

4. 鼠标X、Y值(0~1)被scale到-1与1之间,然后分别送入pack物件的两个输入,另两个输入,是它们scale后值的极坐标值(分别为点距和角度),然后一同被pack后送入最下方的multislider物件,这四个数据流以四条滑块的方式被展现出来。

5. 别忘了用物件检查器看看例2中的三个multislider的参数,你会发现一些有趣并需要注意的东西。

6. 在连线上鼠标右键,可以加入观察点(watchpoint),它可以显示数剧的流动,两个选项:监视(Monitor)和中断(Break)。前者可以监测消息的值,后者在一个消息在被选中的连线被看到时强制patch停止运行(force the patch to stop running when ever a message is seen on the selected patch cord,这话貌似比较难理解..)。

7. Debug -> Watchpoints将打开观察点窗口。
第一列:观察点标识
第二列:附加到观察点上的动作类型
第三列:传送消息的物件的类
第四列:包含观察点的子patcher的名字(在主patcher的时候此栏为空)
第五列:与最后一次收到消息关联的值
第六列:此观察点收到消息的计数器
第七列:最后在此观察点看到的三个值的历史记录

8. 当你开启Debugging(通过Debug菜单),并且将观察点设为break,则任何被此观察点看到的消息都将使得程序暂停,使你能够在除错模式步进你的整个patch。当patch一旦暂停,除错窗口将打开,这时你便可以每次一个消息的进度步进你的patch。

本例内新物件:
multislider:多滑块滚动显示

Max:进阶音序

Advanced Sequencing
Advanced Sequencing

1. MIDI录制,不单能够录入音符,并且还能录入诸如弯音信息、连续控制器\程序转换等MIDI数据。在seq物件下方加入了上一课的midiflush物件,用以在我们停止音序之后将所有剩余的note-on消息静音。

2. patch右边,我们可以看到存储及读取MIDI音序的方式,write存储,read读。两种方式读:read打开文件选择窗口选择文件读;read+文件名(文件需位于该maxpat同级目录下)直接读。

3. 让音序loop起来。这里运用了seq物件结束后在右输出口输出bang讯息的特性。右下角:这个灰色的玩意叫做gswitch2(图形门),当toggle物件被选中的时候,它会将通路打开,结果就是seq物件结束后发送的bang讯息又会被返送回start消息框重新触发音序,因此使得这个音序不断循环。这只是seq物件右部bang输出的简单应用,它同样可以被用于载入另一个音序,开启第二个seq物件或者甚至是全部打开Max中的另一个进程。

AudioMulch:装置基本使用

1. 双击Patcher面板内的任一装置,将在属性面板内打开其相应控制界面。点击问号将出现它的帮助文档;点击“–”可以打开或存储预设;点×关闭其在属性面板内的控制界面。

2. 鼠标右键单击控制界面内任一控制器可以打开其参数设置下拉菜单,在那里,你可以对其进行参数控制,MIDI控制或自动化等处理。

3. 鼠标双击控制界面内任一控制器将打开其值控制窗口。按住Command+鼠标双击将打开其参数控制窗口;按住Option+鼠标双击将打开快速MIDI控制窗口。

4. 你可以任意重命名任何AM中的装置,这个名字将伴随其显示在软件中任何与其相关的地方,但是它默认的名字始终是保持不变的。这里我们可以看到,这与Max是完全不同的,在AM里装置的名称并不像物件名称在Max中那样会完全决定一个物件的属性。在AM中,装置的名字并不改变装置的任何性质。但是这里还是建议初学者最好尽量别乱改那些默认的名称,因为在你不熟悉它们(无论外观还是作用)的时候对它们的名字进行修改,这无疑是一种自我混淆的愚蠢行为。

5. 使用常规装置控制,其他没什么好说,说说范围滑杆(Range Slider)的一些快捷键操作,下图说明在鼠标拖动两个按钮的同时加上各种健,范围滑杆的按钮将如何运动:

动作

最小值钮

最大值钮

空白部分

什么也不做

最小值

最大值

二者

shift

二者

二者

最大值

alt

最大值

最小值

最小值

shift + alt

二者/向相反方向

二者/向相反方向

二者/向相反方向

6. 在滑动任何按钮或滑块时按住command键,将减缓数值变化速率,从而使你确定精确的值。

7. 在AM中,每个装置都有20组预置可用。点击“–”可以打开预置下拉菜单,点击下箭头按钮存储一个预置,点击×删除一个预置。

8. AM同样能够存储VST插件的预置并支持VST fxb预置文件格式。