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,你会同一个地址得到参数回覆,它是图层一当前使用的混合模式的整数值。