Max / MSP / Jitter
Max是一種程式語言,這是在1980年左右開發的。在1990年左右成為,他們後來創立Cycle'74公司於1997年。原來的作者還發布了一個open source的版本,也就是Pure Data。雖然和Max有相當的不同,Pure Data仍可在多種作業系統使用 ,在某種程度上可以被看成是“開放”的Max(雖然發展到現在,Max和Pure Data已經很少有共同之處) 。
開啟Max時所顯示的基本模式環境,可以讓使用者存取硬體合成器藉由mide裝置輸入,也可自動執行某些功能的頻率合成器。
隨著時間Max也增加了許多功能模組,其中又以MSP模組最為出名,它提供了一種real time的數位音頻處理( MSP代表“Max Signal Processing” ) 。Cycling'74持續積極的加強模組開發,在2003年左右發布最新的模組:Jitter。Jitter提供了Max的real time的影像能力,2D/3D圖形和矩陣處理。
Max 6
2011年年底的最新版本:Max 6正式釋出。它包含了許多的變化,不僅在用戶界面上,音效引擎上得到加強,同時也支持64位元的作業系統和增加一個新的擴充:Gen。新的擴充Gen,可讓使用者可以藉由Max建立自己的模組,即時被Max引擎編譯處理。
用Max來寫程式
<圖1>
用Max來寫程式是用object來填滿視窗(在Max又叫'patcher')。這些object可以是任何東西,從button和slider,可用於設定一個用戶介面,也可以用來執行特定的功能。如右邊截圖的object,所顯示的“rewire~ 2”,粗體部分”rewire~”則是指向控制其他rewire的設備(之後會有更詳細的說明,先大概了解即可)。
object也可以彼此交互連結作用。為了簡單解釋,我在patch視窗中按一下滑鼠左鍵,可以切換”locked”模式(locked模式通常可以用來拿來執行程式;再按一下可以按回來編輯模式,可以方便編輯拖拉元件),所有object有所謂的inlets和outlets。Inlet是位於object的上方的連接插座,連接後object可以處理傳入的數據。
outlet,照字義解釋,是object為了發送輸出結果的連接插座。這些輸出信號的範圍可以從簡單的數據,如數字或字串,音頻信號,(例如圖1中)可以看出,黑/黃線表示的音頻信號通過。
接下來要注意的是workflow。Max是以從上到下,從右到左的順序來執行。
意指:如果一個object的outlet連接的其他object,那麼在右側的信號將首先被發送。因此,在這種情況下,右滑桿將比左滑桿優先得到信號。
這需要一些時間來適應,但一旦你得到了竅門,就可以開始編寫程式邏輯。
Max的使用者介面
<圖2>
圖2也許不是最好的例子,但它會給你想法是Max的Pather看起來像什麼。
每一個Max的Patcher有2種模式:Patching模式,Presentation模式。Patching模式你已經見過上面(圖1) ,你可以知道Patching模式,程式中的所有object是可見的,所有內部連接也是可見的。基本上,它表明你的程式內部的邏輯。
另一方面(圖2)是Presentation模式,通常隱藏了所有的基本邏輯,只呈現給最終用戶的介面,當然,這是完全可根據程式設計師的意願做調整。
但在這個例子中,你看到上面的圖片中的一些object仍然可見(例如“rewire”標誌),而其他如底部的滑桿已經大大改變 。
而且最重要的這個例子:有些對象是不再可見。例如“rewire〜”和“ loadbang ”的object是完全從圖中的左側移除。剩下的是,用來控制程式進行的object。
在一段時間裡,我沒有Max的license,只擁有Max for Live的license。由於Max提供完全自由使用的runtime,所以我基本上能夠用Max for live 來創造Max patches,然後順利的執行。然而在runtime執行時還是會有限制,例如你不能調整Max的DSP狀態窗口的選項(這窗口顯示你目前可用的音頻輸入和輸出通道 ),我決定自已寫一個patch來克服這些限制。
runtime指的是執行時的環境,可在該環境中執行程式。我能想出的最明顯的例子就是Java :為了使用它,你需要安裝Java。但你實際上是安裝Java runtime允許您使用在Java編寫好的程式。Max並不限於非runtime環境才能執行。Max的應用程式可以將相關環境元件封裝起來,以便能單獨執行。
我一直擁有Max for Live的license,對於Max,由於我使用了測試版在過期後遲遲沒有更新註冊,只好在這段期間中,研究Max的聲音引擎,看看兩個版本的差異,因此寫出上面的patch,也因為從頭到尾仔細研究Max引擎,才使我發現Max所帶來的體驗竟是無比美妙!
最終我還是擁有了完整的Max的license,但那又是一個完全不同的故事了。
Max for Live
在Ableton Live中,增加一個像Max的環境,你會得到什麼?Max for Live。
Cycling'74在Live音色庫有一些循環片段。,但我不認為Ableton公司和Cycling'74之間的關係是很不尋常。尤其在當你不認為Cycling'74 Ableton Live中有其自身的影響,甚至沒有Max的影子在。
<圖3>
在圖3,你可以在Cycling'74音色庫找到一個音頻循環的片段,並且是由Ableton Live所提供,在我看來, 這些素材算是相當的不錯。
從上面種種的敘述得知,這兩家公司最終決定一起合作,這決定將讓他們能夠互惠互利。
Live for Max
另一方面,Max的程式開發者,在應用他們的專業知識,到涉及音頻或MIDI處理時,對Live這樣的環境將能夠滿足他們的需求,感到十分有興趣。雖然Max是也能夠錄製音頻,但它需要花相當的功夫去設定。不過用Live基本上可能只要點擊滑鼠就能錄製音頻。如果你需要用Max處理錄音,使用Max for Live是絕佳的選擇。
Max for live
也有像我這樣的人是從Live開始用起,對Max根本沒有一點想法。用Max for Live時將帶來全新的體驗,而這些體驗可能令Live的使用者了解到,要做出這些體驗,光靠Live可能不夠用。這時Max就是接下來最好的選擇
對我來說,Max for Live 的出現對Live是一個非常好的事情。雖然我的經驗非常有限,但當我第一次接觸到了Max for Live時,我馬上就發現它的潛力,沒有太多的懷疑。那也是我第一次接觸到Max。我想我的經驗證明,一開始購買Max for live的license的策略是可行的,但最終我還是購買了完整的Max的license(包含Max/ MSP /Jitter) 。
當時利用Max for Live編輯後,可提供樂器, MIDI和音頻效果輕鬆搭配Live撥放使用。要注意運行Max時的runtime不存在。換句話說,為了使用Max的patch,你可以下載免費提供的runtime來使用patch。
為了使用Max for Live的patch,你需要Live Suite version(內含Max for Live) ,或購買一個單獨的Max for Live的license。我個人不認為擁有免費的runtime對公司或是早期購買的人有任何優勢可言。
用Max for Live編寫程式
一般來說使用Max for Live對比Max並沒有太多的不同。
<圖4>
最大的區別如(圖4),可看出的pacher窗口是灰色背景,但Max patcher窗口是白色背景。
但是,除此之外,你會發現,底部(圖5)的圖標欄,跟上面的圖片完全一樣。甚至一些ojbect都沒有不同,如灰色的“text fields”為例 。
在(圖4)中,你可以更清楚地看到幾個object的inlet和outlet。一個很好的例子是“P reset_values ”這個object,它有1個inlet和多達4個outlet。
我不介意改變菜單欄的方式,因為這是我故意設計的。我在嘗試並確保人們會注意到底部的閱讀發行說明。原因是,這個patch,是一個音調發生器,可以很容易地產生非常高,很煩人的噪音。(這可在下面my M4L Patches page下載patch)
然而,主要的區別是Live的object被輸入。請注意這個(圖5)的下拉菜單,如果您轉到文章一開始關於rewire控制器patch的相關介紹(請看圖1),你會發現,那裡的菜單和現在的菜單看起來完全不同。
由於Max for Live已經有一些新的object被增加到的Max的環境下。在(圖4)的選單上,可看到新增的從“ live。menu ”開始到“ live。dial ”和“ live。button ”,下方(圖5)的圖示,可以更清楚了解一些:
<圖5>
Max for Live 的現場即時功能
雖然Max for Live本身已經提供了足夠的武器來建立設備,以提高Live的可用性,除此之外,還確保Live模型可用於存取和控制Live的元件。例如,更加具體的音軌音量的元件,如加入或取消曲目的自由。
Max for Live( ' M4L ' )提供了一個完整成熟的編輯環境,可以用來執行任何的想法,特別是原來就不被Live支援的。
有了Max for Live之後
現在,我不認為我能夠習慣單獨的Live環境,沒有任何M4L的幫助。它的影響是非常微妙的,像提供一種快速停止某個動作或是執行更複雜的任務,如前面所提到的動作,但這次需要利用隨機因素來執行
最後
我希望這能給大家一些關於Max和Max for Live的一些想法。但是,如果你想要得到的詳盡的官方說明,建議可到Max或M4L相關網頁去瀏覽
我們需要寫一個非常具體以硬體為中心的Max Patch。我的希望是,這些想法和技術能能幫助你探索關於如何建立屬於自己的DMX專案。