OSC

OSC 給你整個Resolume中最極緻的控制。

OSC 是Open Sound Control的縮寫。你可以閱讀它的來源了解更多。

最重要的是你可以透過網絡發送OSC訊號,以及透過MIDI及DMX去得到更好的控制。你可以在Resolume中的偏好設定欄列啓用OSC訊號。

OSC 地址

Resolume中每一個項目皆可以透過OSC地址控制。除了點擊滑鼠控制外,你亦可以使用發送訊息到控制地址來控制項目。 就像發送郵件至Resolume,告訴它設置特定的控制至特定的參數值。

所有的地址是固定及已設置好。這意味只有要OSC訊號,你就可以立刻開始控制所有的選項。不像MIDI及鍵盤快捷鋌,它需要你先連結控制項至特定的快捷鍵。

例奴,如果你想把圖層一的不透明度設成25%,你就需要發送OSC訊號至地址 "/composition/layers/1/video/opacity",而指定不透明度值為0.25。

/composition/layers/1/video/opacity 0.25

就是這樣! 這就是整個流程了。不需要指定任何快捷鍵或載入預設。你可以經常使用這個OSC訊息去設置圖層一的不透明度。任何時間,每一部運行Resolume的電腦都可以使用。。

你亦可以同樣地控制所有使用者介面的項目。

假設我們現在想把圖層2的片段8播放頭移至最前。我們可以發送以下訊息:

/composition/layers/2/clips/8/transport/position 0.0

要如何知道特定控制項的OSC地址呢?雖然它有一定的邏輯,但最簡單的方法還是進入OSC 快捷鍵模式(快捷鍵 > 編緝 OSC),然後點選你想用的控制項。

快捷鍵欄列會顯示正確的地址。你可以點擊地址,複製貼上地址。

"但為什麼Resolume不提供所有OSC 地址的列表? 應該會十分有用! "

是的,某程度上可以,但不是如你所想的。地址會因你的合成設置而改變。而且,它會很快加長。給你這個概念,這裡有一個在一個合成裡一個圖層中的一個片段,這裡是沒有任何特效之下的OSC地址列表。慢慢細心欣賞。

多重地址

有一些控制可以使用多於一個地址。例如,以下有兩個地址都可以控制圖層一中Goo特效的速度參數。

你需要使用哪一個取決於你想使用哪個。

第一個我們稱為絕對地址。它控制第一個圖層中的Goo特效,僅第一個圖層而已。

第二個我們稱為相對地址。它經常用於控制Goo特效,但是可以是不同圖層,取決於你當前所選的是哪個圖層。如果你的Goo特效是每個圖層都有,你可以使用相同的地址控制每一個圖層。你只需切換至你選定的圖層便可。You just need to switch the selected layer first.

如果在當前選定的圖層裡沒有Goo特效,它仍可完整可全地發送至該地址。只是不會發生任可事而已。 

類型標識及範圍

當你選擇一個使用者介面選項,你可以看到他的類型標識。類型標識是一個夢幻的術語,它決定你發到地址的數值類型及結果。

浮點

例如,

/composition/video/effects/transform/scale 寫著浮點類型標識 範圍值是 0.0 - 1.0 (參數範圍 0.0 - 1000.0). 

這代表你可以發送由0至1之間的小數值 between 0 and 1。設定合成的大小值由0% 至1000%。所以發送0會設成0%,發送 0.1 會設成我100%。0.5 是 500% 與 1.0 是 1000%.

同樣地, /composition/video/effects/transform/rotationz 有浮點類型標識 範圍值是(0.0 - 1.0 (參數範圍 -180.0 - 180.0). 這意味參數值範圍是由逆時針180度至順時針180度旋轉。發送0.5 會旋轉至正中間。

整數

有些地址的類型標識是整數。

例如,圖層1的混合模式地址是 /composition/layers/1/video/mixer/blendmode 。你可以發送0-50間的整數數字。

每一個整數數字代表著51種可使用的混合模式。

"等等。51? 但你不是說數字到50嗎?"

是的。我們的電腦類型喜歡由0算起,所以數到50,就有51個選項。我明白這可能蠻愚蠢的,不過儘管取笑我們吧。

技術宅注意! 如果你比較堅持,想發送浮點值至整數值地址。它會使用直線轉化,把浮點值從0.0與1.0範圍間轉化為地址參數值。

顏色

作為特別例子,你可以發送OSC色彩值至 顏色拾取器。

OSC 顏色值有類形識別 r 跟著一個未指定的整數值代表著 32 位元 RGBA 顏色。你可以透過位元轉換它的RGBA值使寫入顏色的值為整數。如果這一切對你來說大過技術宅,你可以去看看Vezer這個軟件,它可以幫到你。

字串

你可以發送文字至文字輸入。這樣,你可以即時更新文字塊及文字動畫的來源。

字串類型標識是 s 跟隨著其輸入的文字。

絶對值

"等等, Resolume. 全部這些類型標識好像太過複雜了。為什麼我需要做這些運算及對應那個混合模式是什麼數字呢?誰會由 0 開始數數或者把顏色轉位元?這些都是超級電腦狂的世界! 我可否像個普通人要求我想要的?"

好的,你可以。你是一名VJ,理論上你也是一名普通人。你可以說出你所需要的。就像普通人一樣。

例如,混合模式,你可以直接用字串的方法,發送名字至混會模式的地址。

/composition/selectedlayer/video/mixer/blendmode "Alpha"

這樣會把選了的圖層混合模式設成阿爾法。

如果你用來發送OSC訊息的應用程式可以讓你發送多個引數,你可以對絶對值做同樣的事情。

如果你想把一條片段放於指定的x及y的像素值,上述的做法就有用了。想要使用這個做法,你要先指定你現在要使用的是絕對值。你需要在地址上的第一個引數前加入 "a",然後就輸入那個絕對值。

/composition/layers/1/clips/1/video/effects/transform/positionx "a" 320

這樣會把圖層1中的片段1的X軸設為320像素。

相對值

還有更好的! 你可以為值指定相對改變。

例如,你可以使用 "+", "-", 或 "*" 去以輸入值加、減或乘當前的參數值:

/composition/layers/1/video/opacity "+" 0.2

會增加圖層一的不透明度20%。 

好,其實... 它加了固定的20%至不透明值。它不是真的增加其值20%. 如要這樣,地址應如下: /composition/layers/1/video/opacity "*" 1.2. 但我真的不知道如何用一句解釋如此水深奧難明的事。

發送OSC訊號至Resolume

好的,你現在大概了解OSC在Resolume是如何運作的了吧。但你如何發送OSC訊號呢?

好問題! 有很多應用程序可以發送OSC訊號的。

有些比較有名的應用程序像 TouchOSCLemur,它們在 iOS 及 Android 裝置上都可使用。 TouchOSC 與 Lemur 都可讓你創製自己的介面,讓它們與Resolume固定地址適配。這意味任何人都可以載入你所創建的介面及直接使用。

在OSX系統,Vezer也是十分驚艷的。Vezer 非常邪惡因為它讓你創建複雜的關鍵影格動畫,然後就可以控制任可Resolume使用介面中的項目。

Resolume 的高手用家 Zoltan Palffy 有創建他自己的應用程序,他加入了更多的功能讓Resolume更適合舞台表演控制。

OSC在組合使用創意編程語言時特別適用。這可讓你自己創建自己的邏輯或從不同的過程中萃取資料及輸入至Resolume中。

Processing, openFrameworks, Arduino, TouchDesigner, JUCE, Max/MSP 及一堆其他的創意編程軟件都有支持收發OSC訊號的資料庫。你可以使用Max4Live從Ableton Live發送OSC訊號。在瀏覽器中亦有 javascript 資料庫發送OSC訊號。

選項其實源源不絕。作為開始,這裡有兩個例子,告訴你如何使用OSC訊號:TouchOSCProcessing

網絡連接

OSC訊息可透過網絡發送。如果你希望在兩台電腦間使用OSC,你必需確保它們是在同一個網絡裡面。OSC訊息的容量很小,所以如果你不是每秒發送超過1000個訊息,基本上無線網絡也可以了。

提示! WIFI網絡的强度是會因流量而減低的,像同一時間有在派對有5000人在使用像snapchap的通訊軟件這種狀況。

如果你想從一台電腦發送OSC訊號到另一台電腦,發送電腦需要知道發送地址。當你在Resolume開啓了OSC輸入,它會讓其他電腦知道它的OSC地址。它是透過一個叫做ZeroConf的通訊協議,在Mac中稱之為Bonjour。如果發送程序支持這個通訊協議, Resolume 會於目的地中彈出。

如果發送程序不支持 ZeroConf/Bonjour通訊協議,你就會手動填寫IP地址及閘口數字。

IP地址是一串數字讓電腦知道如何在網絡中找到對方。Resolume會在OSC偏好設定中,告知你現在運行電腦的IP地址。

每一個應用程序都可指定閘口數字去接收OSC訊號。Resolume預設的閘口數字是7000。 你可以修改成任何你喜歡的數字。

OSC偏好設定欄列有一個展開視窗可看到Resolume最近收到的200個OSC訊號。在這裡你可以檢查到你是否在接收訊息及訊息的內容是什麼。

OSC輸出

除了接收OSC訊息,Resolume亦可以透過OSC回訊。OSC輸出可於偏好設定中開啓。

你有數種方法管理Resolume發送什麼訊息。最簡單的便是使用OSC快捷鍵預設。

透過 快捷鍵>編緝OSC, 你可以進入OSC快捷鍵模式。快捷鍵欄列會出現。在這裡你可以檢查你當前的OSC輸出設定,及在數個預設中切換。選擇"輸出全部OSC訊息"預設,Resolume會輸出全部的OSC訊息。

這意味全部在介面中有變化的參數訊息都會被送出。片段觸發、滑鼠及MIDI輸入,參數自動化、片段播放頭位置。任何參數,所有地址,絕對值及相對值都會被發送。

這是不錯的,因為你可監督著你Resolume當前狀態。例如,你可能需要設計一個程序,裡一面會因應片段觸發執行一些特定的動作。使用輸出全部預設,你就可以很容易從輸入資料中篩選出你想使用的地址,然後發展你的程序邏緝。

這也意味你可能很快會訊息滿滿。當你透過不穩定的無線網絡發送訊息,蠻有可能你會遺失一些訊息

你可以創建預設確保你只獲取你想要的訊息。從預設下拉選單中選擇 新建... 。在你給了它一個好名字之後(我喜歡使用 "Leia"。因為它代表預設中的公主。),你可選擇性地從所有使用者介面的物件中選取你想發送的OSC訊息。 

假設你只對你的總略過按鈕有沒有開啓有興趣。例如你想讓你的控制應用知道,當Resolume總略過按鈕啓動時,是否可以作出改變。

要做到這點,找出左上角的總略過按鈕。右擊它,你可以只對這按鈕啓動OSC輸出。另外,你亦可同時對使用者介面啓動OSC輸出,而你這個做法就需要到OSC快捷鍵欄列。

選取有興趣的項目及啓動其OSC輸出,你可以大大減少網絡流量的使用。

外卡

等等, Resolume. 我有興趣知道我12個圖層的不透明度,以及在我轉盤上472個片段所有的片段觸發。我真的沒有時間慢慢一個個去設置。我生命中還有很多更好的事等著我去做。例如去追看每季的瑞克和莫蒂。

好的,我知道你在說什麼。那個解決方法很重要。所以我在這裡介紹外卡。對於片段、圖層及群組,你可以同時啓動這些項目的OSC輸出。

假設我們對每個圖層的不透明度都有興趣。當你為一個圖層創建了一個OSC Output輸出快捷鍵,我們可以把它的範圍改變成 '所有圖層'。

就是這樣,一鍵啓動所有圖層的OSC輸出。你亦可以對你的片段觸發使用相同的方法,甚至片段還沒有加進去也可。

自訂OSC訊息

有些時候,你會對Resolume介面的狀態及訊息沒有任何興趣。有些時候你可能只想發送一個小訊息至其他應用程序。 或者你想在Resolume某片段觸發時,Vezer也同時觸發一個指令。 或者你想連接Resolume中一個片段的播放頭至Processing程序裡的一個物理參數。

我不知道這些是不是好的例子。這些創意應來自你的腦袋。我已不能夠再用OSC做出任何酷的事因為我還在辦公室中寫著一份沒有人閱讀的使用手冊。

這可以透過自訂地址完成。

當你為某物件創建了OSC輸出,你就可以在下拉選單中選擇這個選項。

Resolume會幫你填上現時的地址,但你可以隨時更改。Resolume 會發送在Resoulme介面上的數值及項目至一個新的地址,而不是固有的地址。

目的地

就像其他應用程序需要發送OSC訊號至Resolume指定的位置一樣,OSC輸出也需要知道Resolume發送訊息的目的地。

 OSC係好設定裡,你可以選擇所有在網絡上使用ZeroConf/Bonjour宣稱它們能接受OSC訊息的應用程序。

你亦可以選擇只發送到本機 (本機) 或所有網絡上的電腦 (廣播)。

如果你想發送至不支援ZeroConf/Bonjour的應用程序,你可以手動設置IP地址。

除了設置本機、廣播及手動設置IP,你亦需要設置發送閘口。這當然是另外一個應用程序的輸入閘口。

打包還是不打包

切換使用打包按鈕,讓你把你訊息全部打包及發送出去。大部分OSC應用程序不太在意你發送的訊息有沒有打包,但有一些卻偏愛他們有打包或不打包。

輪詢

你亦可以詢問Resolume某個參數到底如何設置。當你在建立錯綜複雜控制程序時,這個方法相當有用。

使用這個方法是當你有需要時才詢問Resolume,而不是不斷監控著Resolume發送出什戈麼訊息。

只要在你想詢問的地址訊息的最後加入 "?" 即可。

例如,當發送

/composition/layers/1/video/mixer/blendmode "?"

至Resolume,你會同一個地址得到參數回覆,它是圖層一當前使用的混合模式的整數值。

相關文章